Repository dedicated to storing the backend code of the To-Do List project.
- Overview
- Requirements
- Running Locally (Python)
- Running with Docker
- Project Architecture
- MySQL Database
- API Documentation
- License
The backend was developed in Python 3.11 using the FastAPI framework and the MySQL 8 database.
It provides a RESTful API for task management (to-do list), organized by projects and associated with users authenticated via JWT.
- Python 3.11
- MySQL 8
- Docker & Docker Compose
pip(for dependency installation)
-
Create and activate a virtual environment:
python -m venv venv source venv/bin/activate # Linux / Mac venv\Scripts\activate # Windows
-
Install dependencies:
pip install -r requirements.txt
-
Run the backend as a Python module:
python -m src.main
-
Access:
- API: http://127.0.0.1:8000
- Swagger Docs: http://127.0.0.1:8000/docs
docker compose -f docker/docker-compose.yaml -p todolist up --buildAccess points:
- API → http://localhost:8000
- MySQL Database →
localhost:3307
Stop containers:
docker compose -f docker/docker-compose.yaml -p todolist downRestart environment and delete volumes (reset database):
docker compose -f docker/docker-compose.yaml -p todolist down -vUseful commands:
docker compose -p todolist logs -f
docker compose -p todolist restart api
docker exec -it api-container bash
docker exec -it todolist-mysql bashRead more in
docker_compose_documentation.md
The project follows a modular architecture based on the microservices pattern, ensuring scalability and maintainability.
src/
├── main.py # Application entry point
├── models/ # ORM models (SQLAlchemy)
├── schemas/ # Pydantic schemas for validation
├── routes/ # API endpoints
├── modules/ # Database connections and helper modules
├── utils/ # Utility functions
└── database/ # SQL scripts (schema and seed)
Full details:
api_project_architecture.md
The database is configured via Docker and initialized automatically with schema and sample data.
Image: mysql:8.0
User: app
Password: app_pass
Database: todolist
Local port: 3307
Complete documentation:
mysql_docker_documentation.md
The API image is based on python:3.11-slim, configured to copy the project, install dependencies, and run the application.
Read more:
api_docker_documentation.md
The API provides RESTful endpoints for managing users, projects, and tasks.
Detailed endpoints:
backend_proposal_todo_list.md
This project is under the MIT License.
All additional documents can be found in the
docs/en/folder:
Repositório dedicado ao armazenamento do código backend do projeto To-Do List.
- Visão Geral
- Requisitos
- Como Executar Localmente (Python)
- Executando com Docker
- Arquitetura do Projeto
- Banco de Dados MySQL
- Documentação da API
- Licença
O backend foi desenvolvido em Python 3.11 utilizando o framework FastAPI e o banco de dados MySQL 8.
O sistema fornece uma API RESTful para o gerenciamento de tarefas (to-do list), organizadas por projetos e associadas a usuários autenticados via JWT.
- Python 3.11
- MySQL 8
- Docker & Docker Compose
pip(para instalação de dependências)
-
Crie e ative um ambiente virtual:
python -m venv venv source venv/bin/activate # Linux / Mac venv\Scripts\activate # Windows
-
Instale as dependências:
pip install -r requirements.txt
-
Execute o backend como módulo Python:
python -m src.main
-
Acesse:
- API: http://127.0.0.1:8000
- Swagger Docs: http://127.0.0.1:8000/docs
docker compose -f docker/docker-compose.yaml -p todolist up --buildAcessos:
- API → http://localhost:8000
- Banco MySQL →
localhost:3307
Parar containers:
docker compose -f docker/docker-compose.yaml -p todolist downReiniciar ambiente e apagar volumes (resetar banco):
docker compose -f docker/docker-compose.yaml -p todolist down -vComandos úteis:
docker compose -p todolist logs -f
docker compose -p todolist restart api
docker exec -it api-container bash
docker exec -it todolist-mysql bashLeia mais em
docker_compose_documentation.md
O projeto segue uma arquitetura modular, baseada no padrão de microsserviços, garantindo escalabilidade e manutenibilidade.
src/
├── main.py # Ponto de entrada da aplicação
├── models/ # Modelos ORM (SQLAlchemy)
├── schemas/ # Schemas Pydantic para validação
├── routes/ # Endpoints da API
├── modules/ # Conexão com banco e módulos auxiliares
├── utils/ # Funções utilitárias
└── database/ # Scripts SQL (schema e seed)
Detalhes completos:
api_project_architecture.md
O banco de dados é configurado via Docker e inicializado com schema e dados de exemplo automaticamente.
Imagem: mysql:8.0
Usuário: app
Senha: app_pass
Banco: todolist
Porta local: 3307
Documentação completa:
mysql_docker_documentation.md
A imagem da API é baseada em python:3.11-slim, configurada para copiar o projeto, instalar dependências e executar:
Leia mais:
api_docker_documentation.md
A API fornece endpoints RESTful para gerenciamento de usuários, projetos e tarefas.
Endpoints detalhados:
backend_proposal_todo_list.md
Este projeto está sob a Licença MIT.
Todos os documentos adicionais encontram-se na pasta
docs/pt-br/.