The project idea is inspired by McBroken.com made by rashiq.
- View the status of ice machines for McFlurry, McSundae, and milkshake products at McDonald's locations in the US, EU, and Australia.
- Turborepo - Monorepo build system
- Serverless - Backend framework
- Prisma - ORM
- Next.js - Frontend framework (App Router)
- TailwindCSS - Styling
- Radix UI & shadcn/ui - UI Components
- pnpm - Package manager
This project uses a monorepo structure managed by Turborepo:
apps/frontend: Next.js application (UI)mcall,mcau,mcus: Serverless functions for different regions
packages/database: Prisma schema and clientmclogik: Shared logic and services*-config: Shared configurations (ESLint, TypeScript, Serverless)
- Prerequisites: Ensure you have pnpm installed.
- Tokens: You need to have basic tokens from the McDonald's app to use their API.
- Environment: Fill out the
.env.distfile and rename it to.envin the root (and potentially in specific app directories if needed). - Install: Run
pnpm installto install all dependencies across the monorepo. - Database: Run
docker-compose -f docker-compose.dev.yml up -dto start your local PostgreSQL database. - Development:
- To run the entire stack:
pnpm dev(uses Turborepo) - To run a specific app (e.g., frontend):
pnpm --filter @mcbroken/frosty dev - To invoke a serverless function locally:
cd apps/mcall pnpm invoke -f functionName # To invoke with data (e.g., for getItemStatus with specific countries) pnpm invoke -f getItemStatus --data '{"countryList": ["US"]}'
- To run the entire stack:
You can find more information about the APIs here.