https://github.com/evandrocalado/fast_zero
course fastapi
https://github.com/evandrocalado/fast_zero
alembic docker factoryboy fastapi flyio freezegun jwt postgresql psycopg pydantic pytest python ruff sqlalchemy taskipy testcontainers
Last synced: about 1 month ago
JSON representation
course fastapi
- Host: GitHub
- URL: https://github.com/evandrocalado/fast_zero
- Owner: EvandroCalado
- Created: 2024-10-13T01:08:15.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2024-10-17T13:40:51.000Z (7 months ago)
- Last Synced: 2025-02-13T10:19:32.879Z (3 months ago)
- Topics: alembic, docker, factoryboy, fastapi, flyio, freezegun, jwt, postgresql, psycopg, pydantic, pytest, python, ruff, sqlalchemy, taskipy, testcontainers
- Language: Python
- Homepage: https://todo-app-fastapi.fly.dev/docs
- Size: 230 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Todo App FastAPI
**Todo App** é um aplicativo TODO desenvolvido como parte de um curso sobre FastAPI. Este projeto demonstra como construir uma API RESTful utilizando FastAPI, SQLAlchemy e outras bibliotecas populares do ecossistema Python.
## Tecnologias Utilizadas
- **FastAPI**: Um moderno framework web para construção de APIs com Python 3.7+ baseado em tipos de dados.
- **SQLAlchemy**: Um ORM (Object Relational Mapper) para interação com o banco de dados.
- **Alembic**: Uma ferramenta de migração de banco de dados para SQLAlchemy.
- **Pydantic**: Validação de dados usando modelos de dados.
- **JWT (JSON Web Tokens)**: Para autenticação.
- **PostgreSQL**: Sistema de gerenciamento de banco de dados.## Instalação
Para instalar as dependências do projeto, utilize o **Poetry**. Certifique-se de que você tem o Poetry instalado em seu sistema. Siga os passos abaixo:
1. Clone o repositório:
```bash
git clone [email protected]:EvandroCalado/fast_zero.git
cd fast-zero
```2. Instale as dependências:
```bash
poetry install
```3. Ative o ambiente virtual:
```bash
poetry shell
```## Executando o Projeto
Para iniciar o servidor FastAPI, utilize o comando:
```bash
task dev
```O servidor estará disponível em `http://localhost:8000`. Você pode acessar a documentação da API em `http://localhost:8000/docs`.
## Executando Testes
Para executar os testes do projeto, utilize o seguinte comando:
```bash
task test
```Os testes são realizados com **pytest** e os resultados de cobertura são gerados.
## Linting e Formatação
Para garantir a qualidade do código, utilize o comando:
```bash
task lint
```E para formatar o código, utilize:
```bash
task format
```## Estrutura do Projeto
```plaintext
fast-zero/
│
├── fast_zero/
│ ├── __init__.py
│ ├── app.py # Arquivo principal da aplicação FastAPI
│ ├── models.py # Modelos de dados usando SQLAlchemy
│ ├── schemas.py # Schemas de validação usando Pydantic
│ ├── database.py # Configuração do banco de dados
│ ├── routes.py # Rotas da API
│ └── services.py # Lógica de negócios
│
├── alembic/ # Diretório para migrações do Alembic
│
├── tests/ # Diretório para testes
│ ├── __init__.py
│ └── test_app.py # Testes da aplicação
│
├── pyproject.toml # Configurações do projeto
├── README.md # Este arquivo
└── .gitignore # Arquivo para ignorar arquivos no Git
```## Contribuição
Se você deseja contribuir para este projeto, sinta-se à vontade para fazer um fork e enviar pull requests.
## Licença
Este projeto é licenciado sob a MIT License. Veja o arquivo `LICENSE` para mais detalhes.
## Autor
**Evandro Calado**
[[email protected]](mailto:[email protected])