A modern, SvelteKit-powered web application to explore, filter, and analyze the nutritional values of McDonald's menu items. Instantly see calories, proteins, carbohydrates, lipids, and more for each product, with support for multiple languages and beautiful, responsive UI.
- Browse & Search: Quickly find McDonald's products and view their detailed nutritional information.
- Filter & Sort: Filter by categories, sort by nutritional values or name.
- Nutritional Breakdown: See calories, proteins, carbs, sugars, lipids, saturated fats, fibers, salt, and Nutri-Score for each product.
- Selection & Totals: Select products and quantities to see total nutritional values for your meal.
- Internationalization (i18n): Supports multiple languages with easy translation management.
- Responsive Design: Looks great on desktop and mobile.
- Accessible: Keyboard navigation and ARIA-friendly.
- Dockerized: Easy to build and deploy anywhere.
- Database Migrations: Managed with SQL migration scripts.
- Automated Image Processing: Product images are downloaded and converted to optimized WebP format.
- SvelteKit & Svelte
- TypeScript
- Tailwind CSS for styling
- PostgreSQL for data storage
- Docker for containerization
- Sharp for image processing
- Lucide Icons for SVG icons
git clone https://github.com/Angus-Paillaugue/McDoCalorieTracking.git
cd McDoCalorieTracking
bun installCopy .env.example to .env and fill in the required variables (see .env).
Start PostgreSQL (locally or via Docker):
docker compose up -dRun migrations:
bun run db:migrateStart the development server:
bun run devTranslations are managed in src/lib/i18n/messages/.
Check for missing translations:
bun run i18n:check