# 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 ```