todoapp-xht8o2/README.md
Automated Action fd0d96616b Initial setup of FastAPI Todo Application
- Set up project structure
- Create FastAPI app with SQLite database
- Implement Todo API with CRUD operations
- Set up Alembic for database migrations
- Add health endpoint
- Create README with documentation
2025-05-27 10:47:50 +00:00

95 lines
2.2 KiB
Markdown

# FastAPI Todo Application
This is a FastAPI application bootstrapped by BackendIM, the AI-powered backend generation platform. The application provides a RESTful API for managing todo items.
## Features
- RESTful API for CRUD operations on todo items
- FastAPI with automatic API documentation
- SQLite database with SQLAlchemy ORM
- Alembic for database migrations
- Health check endpoint
- CORS support
## Project Structure
```
todoapp/
├── alembic.ini
├── app/
│ ├── __init__.py
│ ├── api/
│ │ ├── __init__.py
│ │ └── v1/
│ │ ├── __init__.py
│ │ ├── api.py
│ │ ├── health.py
│ │ └── todos.py
│ ├── core/
│ │ ├── config.py
│ │ └── database.py
│ ├── models/
│ │ ├── __init__.py
│ │ └── todo.py
│ └── schemas/
│ ├── __init__.py
│ └── todo.py
├── main.py
├── migrations/
│ ├── README
│ ├── env.py
│ ├── script.py.mako
│ └── versions/
│ └── 9c42f1a4a5a7_create_todos_table.py
└── requirements.txt
```
## Installation
1. Clone the repository:
```bash
git clone <repository-url>
cd todoapp
```
2. Install dependencies:
```bash
pip install -r requirements.txt
```
3. Run migrations to create the database:
```bash
alembic upgrade head
```
## Running the Application
Start the application with:
```bash
uvicorn main:app --host 0.0.0.0 --port 8000 --reload
```
The API will be available at http://localhost:8000. You can access the API documentation at http://localhost:8000/docs.
## API Endpoints
- **GET /api/v1/todos**: Get all todos
- **POST /api/v1/todos**: Create a new todo
- **GET /api/v1/todos/{todo_id}**: Get a specific todo
- **PUT /api/v1/todos/{todo_id}**: Update a specific todo
- **DELETE /api/v1/todos/{todo_id}**: Delete a specific todo
- **GET /health**: Health check endpoint
## Development
- The database is stored at `/app/storage/db/db.sqlite`
- Use Alembic to manage database migrations
- The API has CORS enabled for development purposes
## License
MIT