- Backend: FastAPI, SQLModel, Asyncpg
- Database: PostgreSQL
- ORM: SQLModel
- Migration: Alembic
- Testing: Pytest
- Package Manager: uv
- Development: Docker, Docker Compose
.
├── .postgres-data/
├── app/
│ ├── database/
│ ├── routes/
│ ├── schemas/
│ ├── services/
│ └── utils/
├── migrations/
├── tests/
│ ├── routes/
│ └── services/
├── Dockerfile
├── compose.yaml
├── alembic.ini
├── pyproject.toml
└── README.md
- Python 3.12+
- Docker and Docker Compose
- uv package manager
-
Clone the repository:
git clone https://github.com/1cadumagalhaes/globant-test cd globant-test
-
Install uv if you haven't already:
pip install uv
-
Install dependencies:
uv sync
Start the application and its dependencies:
- Obs: If there is no
.postgres-data
directory, create it before running the application. We choose to let its path set so this can be easily implemented in production.
docker compose up
For development with auto-reload:
docker compose up --build --watch
Start the application and its dependencies:
- Obs: This requires the installation of dependencies with
uv sync
.
task docker-up
For development with auto-reload:
task docker-dev
Stop the application:
task docker-down
Check the logs:
task docker-logs
-
Start the development server:
task dev
Run tests:
task test
Generate coverage report:
task post_test
Lint the code:
task lint
Format the code:
task format
Run all checks (lint, format, test):
task check
Clean project directory:
task clean
Create postgres-data folder
task init
API documentation is available at /docs
when the server is running