pantri is a meal-generation app that helps university students reduce food waste by suggesting meal ideas based on ingredients they already have in their fridge or pantry.
This repository contains:
mobile: Expo + React Native + TypeScript clientserver: Node.js + Express + TypeScript backend with PostgreSQL + Prisma
- Add ingredients currently in the pantry (optionally with expiration date)
- View the list of ingredients
- Generate meal ideas from available ingredients
- Mark ingredients as used or remove them
- Mobile: Expo, React Native, TypeScript, React Navigation
- Backend: Node.js, Express, TypeScript, Prisma, PostgreSQL
- Node.js (LTS recommended)
- npm, pnpm, or yarn
- PostgreSQL instance
- Expo CLI (optional but recommended)
cd server- Install dependencies:
npm install - Copy
.env.exampleto.envand setDATABASE_URLfor PostgreSQL - Run migrations and generate Prisma client:
npx prisma migrate dev
- Start the dev server:
npm run dev
The API will run on http://localhost:4000 by default.
cd mobile- Install dependencies:
npm install - Start the Expo dev server:
npm start
Update the API base URL in src/services/api.ts if your backend is not running on http://localhost:4000.
-
Mobile app
navigation: React Navigation setup and route typesscreens: Feature screens (Pantry,AddIngredient,MealIdeas)components: Reusable UI componentsservices: API client for talking to the backendhooks: Feature-specific hooks for state and data fetchingtheme: Colors, spacing, and typography tokens
-
Backend
src/index.ts: Express app entrypointsrc/routes: Feature-oriented route modules (pantry,mealIdeas)src/prisma.ts: Prisma client singletonprisma/schema.prisma: Database schema definition