Khaana Express app is a full-stack food delivery/ordering and restaurant management platform. It features a secure and scalable backend built with Node.js, Express, and PostgreSQL (Dockerized), and a modern mobile frontend using React Native (Expo Router).
##. 🚀 Tech Stack
- Backend: Node.js, Express.js
- Database: PostgreSQL (Dockerized)
- Frontend: React Native (Expo Router)
- Others: Docker Compose, Bcrypt for password hashing, Axios
- Add, update, and delete menu items
- Manage restaurants, users, and order statuses
- Secure login with hashed passwords
- Dockerized backend for easy deployment
- Browse restaurants and food categories
- Create account / Login securely
- Place food orders through a mobile-friendly UI
- Track order status (Pending → Confirmed → Served)
- Modern tabbed navigation and onboarding screens
git clone https://github.com/salmanazamdev/restaurant-fullstack-app.git
cd restaurant-fullstack-app/backendStart Docker services:
docker compose up -dCreate and seed the database:
docker exec -i restaurant-api-container psql -U root -d postgres -c "CREATE DATABASE restaurant_db;"
docker exec -i restaurant-api-container psql -U root -d restaurant_db < database-schema.sql
docker exec -i restaurant-api-container psql -U root -d restaurant_db < db-seed.sqlInstall dependencies and run the server:
npm install
nodemon index.jsNavigate to the frontend folder:
cd ../frontendInstall dependencies and start the app:
npm install
npx expo startScan the QR code using the Expo Go app to run it on your phone.
restaurant-fullstack-app/
├── backend/
│ ├── functions/
│ ├── database/
│ ├── index.js
│ ├── database-schema.sql
│ ├── db-seed.sql
│ └── docker-compose.yml
├── frontend/
│ ├── app/
│ │ ├── (auth)/
│ │ ├── (tabs)/
│ │ ├── categories/
│ │ ├── onboarding/
│ │ └── ...
│ ├── components/
│ ├── constants/
│ ├── hooks/
│ ├── assets/
│ └── ...
└── README.md
- (auth): Authentication screens (login, signup)
- (tabs): Main tabbed navigation (home, orders, profile, etc.)
- categories/: Category browsing
- onboarding/: Onboarding/welcome screens
- components/: Reusable UI components
| Code | Description |
|---|---|
| 200 | OK |
| 201 | Created |
| 400 | Bad Request |
| 401 | Unauthorized |
| 403 | Forbidden |
| 404 | Not Found |
| 500 | Internal Server Error |
- 🔔 Push notifications for order updates
- 💳 Payment integration
- 📊 Admin analytics dashboard
- 🧾 Order history and reordering features
Muhammad Salman Azam
GitHub • LinkedIn
🥘 Khaana Express – Your meal, one tap away.