FoodDash is a short-form video food delivery platform (similar to Instagram Reels + Swiggy).
This repository contains both the frontend and backend architectures for the platform.
backend/: A Modular Monolith Go application using Gin, PostgreSQL, and Redis. Designed for high scalability and easy future extraction into independent microservices.frontend/: A Feature-First Flutter frontend application for the FoodDash platform.docs/: System documentationdocker-compose.yml: Global docker-compose file (if you have one in the root, or you can use the backend's compose file).
- Git
- Docker & Docker Compose
- Go 1.25+ (For running backend locally without Docker)
- Air (Optional, for backend hot-reloading)
git clone https://github.com/your-username/FoodDash.git
cd FoodDashSetup the environment variables for the backend:
cd backend
cp .env.example .envYou can spin up the backend application along with its dependencies (PostgreSQL and Redis) using Docker Compose.
cd backend
docker-compose -f deployments/docker-compose.yml up -dThe backend server will be running on http://localhost:8080.
If you prefer developing locally on your host machine with hot-reloading:
- Ensure your local PostgreSQL and Redis servers are running.
- Update the
.envfile in thebackend/directory to point to your local Postgres and Redis instances. - Start the application using Air:
cd backend
make air(Alternatively, you can just run make run or go run cmd/server/main.go)
Swagger API documentation is configured for the backend. Once the server is running, you will be able to find the generated specs at backend/docs/swagger. To regenerate the swagger docs after making changes, run:
cd backend
make swagger