Inspiration

Safe eating out is hard when you have dietary restrictions; menus and review sites don’t reliably filter for needs like vegan/gluten-free/halal.

What it does

SafeBite exposes an API that finds nearby restaurants by location (lat/lon + radius) and optionally filters by dietary preferences. It also provides basic health/status endpoints.

How we built it

TypeScript + Express backend with middleware (CORS, compression, helmet, rate limiting) and request logging in development. Controllers validate query params and call a service layer to fetch restaurant results.

Challenges we ran into

TypeScript/ESM module resolution issues and missing typings; tightening input validation (lat/lon/radius) and handling dietary query edge cases cleanly.

Accomplishments that we're proud of

Clear validation and consistent API responses; modular controller/service structure; automated tests for controller behaviour.

What we learned

Better handling of query parsing/validation, ESM + TypeScript config pitfalls, and testing async Express controller logic.

What's next for SafeBite

Better dietary tagging accuracy, richer filtering (price, open now), caching, and a frontend UX that guides users through restrictions and preferences.

Share this project:

Updates