One single project structure containing Backend + Frontend together (monorepo style).
All files contain only comments describing what each file should do. No real application code is written — you implement later.
- Backend: FastAPI (Python) + Uvicorn
- Frontend: React (Vite recommended)
- Database: PostgreSQL / SQLite / MongoDB
- Container: Docker + Docker Compose
.
├── backend/ # FastAPI Backend
│ ├── app/
│ │ ├── main.py # Entry point
│ │ ├── api/
│ │ │ ├── deps.py
│ │ │ └── api_v1/
│ │ │ ├── api.py
│ │ │ └── endpoints/
│ │ │ ├── auth.py
│ │ │ └── users.py
│ │ ├── core/
│ │ │ ├── config.py
│ │ │ └── security.py
│ │ ├── models/
│ │ ├── schemas/
│ │ ├── services/
│ │ ├── db/
│ │ └── utils/
│ ├── requirements.txt
│ ├── Dockerfile
│ └── .env.example
│
├── frontend/ # React Frontend
│ ├── public/
│ ├── src/
│ │ ├── components/
│ │ ├── pages/
│ │ ├── services/
│ │ ├── hooks/
│ │ ├── context/
│ │ ├── utils/
│ │ ├── App.jsx
│ │ └── main.jsx
│ ├── index.html
│ ├── package.json
│ ├── Dockerfile
│ └── .env.example
│
├── docker-compose.yml # Run backend + frontend together
├── .gitignore
└── README.md
- Unzip
- Implement logic following the comments inside each file
- Backend:
cd backend python -m venv venv source venv/bin/activate # Windows: venv\Scripts\activate pip install -r requirements.txt cp .env.example .env uvicorn app.main:app --reload
- Frontend:
cd frontend npm install npm run dev - Or run everything with Docker:
docker-compose up --build
- Backend runs on port 8000 (docs: http://localhost:8000/docs)
- Frontend usually on port 3000 or 5173
- Keep secrets in
.envfiles (never commit them) - Every file has clear comments explaining its task