
- Set up project structure and FastAPI application - Create configuration and security modules - Add API routers and endpoint placeholders - Add health check endpoint - Update README.md with project details
78 lines
1.9 KiB
Markdown
78 lines
1.9 KiB
Markdown
# Food Delivery API
|
|
|
|
A backend API for a food delivery application built with FastAPI and SQLite.
|
|
|
|
## Features
|
|
|
|
- User authentication and registration
|
|
- Restaurant management
|
|
- Menu item management
|
|
- Order processing
|
|
- Delivery tracking
|
|
- Role-based access control
|
|
|
|
## Tech Stack
|
|
|
|
- **FastAPI**: Modern, fast web framework for building APIs
|
|
- **SQLite**: Lightweight, file-based relational database
|
|
- **SQLAlchemy**: SQL toolkit and Object-Relational Mapping (ORM)
|
|
- **Alembic**: Database migration tool
|
|
- **Pydantic**: Data validation and settings management
|
|
- **JWT**: JSON Web Tokens for authentication
|
|
- **Uvicorn**: ASGI server for running FastAPI applications
|
|
|
|
## Project Structure
|
|
|
|
```
|
|
.
|
|
├── app
|
|
│ ├── api
|
|
│ │ └── v1
|
|
│ │ ├── api.py
|
|
│ │ └── endpoints
|
|
│ │ ├── auth.py
|
|
│ │ ├── deliveries.py
|
|
│ │ ├── menu_items.py
|
|
│ │ ├── orders.py
|
|
│ │ ├── restaurants.py
|
|
│ │ └── users.py
|
|
│ ├── core
|
|
│ │ ├── config.py
|
|
│ │ └── security.py
|
|
│ ├── crud
|
|
│ ├── db
|
|
│ │ └── session.py
|
|
│ ├── models
|
|
│ ├── schemas
|
|
│ ├── services
|
|
│ └── utils
|
|
├── main.py
|
|
└── requirements.txt
|
|
```
|
|
|
|
## Getting Started
|
|
|
|
1. Clone the repository
|
|
2. Install dependencies:
|
|
```bash
|
|
pip install -r requirements.txt
|
|
```
|
|
3. Run the application:
|
|
```bash
|
|
uvicorn main:app --reload
|
|
```
|
|
|
|
## API Documentation
|
|
|
|
Once the application is running, you can access the API documentation at:
|
|
|
|
- **Swagger UI**: [http://localhost:8000/docs](http://localhost:8000/docs)
|
|
- **ReDoc**: [http://localhost:8000/redoc](http://localhost:8000/redoc)
|
|
|
|
## Environment Variables
|
|
|
|
Create a `.env` file in the root directory with the following variables:
|
|
|
|
```
|
|
SECRET_KEY=your_secret_key
|
|
``` |