- Ammar Sathar
- Charrat Mohamed Taha
- Navnit Chittoo
- Joey Chan
- Nicolas Lopez Callupe
- Paulina Aguayo Dupin
The objective of this project is to develop a web app that allows students to plan meals, track groceries, and propose recipes.
The web app will have 5 key features:
- Feature 1: User account management
- Feature 2: Recipe management
- Feature 3: Weekly meal planner
- Feature 4: TBA
The web app will be completed in 4 sprints:
- Sprint 1: Setup Github; prepare sprint plan, prepare user stories with task breakdown, and implement code for Feature 1
- Sprint 2: Setup continuous integration pipepline in repository; create 2 acceptance tests for user stories in Sprint 1; prepare user stories with task breakdown, and implement code for Feature 2
- Sprint 3: Create unit tests for Feature 1 and Feature 2; prepare user stories with task breakdown, and implement code for Feature 3; determine Feature 4 and prepare user stories with task breakdown and implement code
- Sprint 4: Create unit tests for Feature 3; TBA
- Frontend: React 19 + TypeScript
- Build Tool: Vite 6
- Styling: Tailwind CSS 4
- Testing: Vitest + React Testing Library
- Routing: React Router DOM 7
- Node.js 18+
- npm
From the project root:
npm installThis installs dependencies for all workspaces (frontend, backend, shared).
Start both frontend and backend:
npm run devOr run individually:
npm run dev:frontend # Frontend only (port 3000)
npm run dev:backend # Backend only (port 4000)- Frontend: http://localhost:3000
- Backend: http://localhost:4000
npm test # Run frontend tests
npm run test:frontend # Same as abovenpm run build # Build all workspaces
npm run build:frontend
npm run build:backendnpm run lint # Lint frontend and backendfrontend/
├── src/
│ ├── components/
│ │ └── ui/
│ │ └── Navbar/
│ │ ├── Navbar.tsx
│ │ ├── Navbar.test.tsx
│ │ └── styles.css
│ ├── pages/
│ │ └── Home/
│ │ ├── Home.tsx
│ │ └── Home.test.tsx
│ ├── lib/
│ │ ├── utils.ts
│ │ └── icons/
│ ├── test/
│ │ └── setup.ts
│ ├── App.tsx
│ ├── main.tsx
│ └── index.css
├── index.html
├── vite.config.ts
├── vitest.config.ts
└── package.json
backend/
├── src/
│ ├── index.ts # Server entry point
│ ├── app.ts # Express app configuration
│ ├── config/
│ │ └── index.ts # Environment variables, constants
│ ├── routes/
│ │ └── index.ts # Route aggregator
│ ├── controllers/ # Request handlers
│ ├── services/ # Business logic layer
│ ├── middleware/
│ │ └── error-handler.ts # Global error handling
│ ├── models/ # Database models
│ ├── types/
│ │ └── index.ts # Shared TypeScript types
│ └── utils/ # Helper functions
└── package.json
Run all commands from the project root:
| Script | Description |
|---|---|
npm run dev |
Start frontend and backend together |
npm run dev:frontend |
Start frontend only (port 3000) |
npm run dev:backend |
Start backend only (port 4000) |
npm run build |
Build all workspaces |
npm run build:frontend |
Build frontend only |
npm run build:backend |
Build backend only |
npm test |
Run frontend tests |
npm run lint |
Lint frontend and backend |