This is a technical test project built using FastAPI, MySQL, Docker, and Kubernetes. It provides a simple user management API with tests.
- Python 3.13+
- FastAPI
- SQLAlchemy
- MySQL
- Docker & Docker Compose
- Kubernetes
- Pytest
- Poetry
git clone https://github.com/yourusername/rindus-technical-test.git
cd rindus-technical-testCreate a .env file with necessary environment variables (see .env.template).
make upmake down
make prunemake build
make pushmake testOr run specific services like test DB and then pytest:
make test-mysql
make pytestEnsure your Kubernetes cluster is running and kubectl is configured.
make kube-applyAnd forward the service to use it.
make kube-forwardFastAPI automatically provides interactive documentation:
- Swagger UI: http://localhost:8000/docs
- ReDoc: http://localhost:8000/redoc
.
├── app/
│ ├── main.py # FastAPI app entrypoint
│ ├── models.py # SQLAlchemy models
│ ├── schemas/ # Pydantic schemas
│ ├── services/ # Business logic
│ ├── repositories/ # DB access
│ ├── routers/ # API routes
│ ├── config.py # App config
│ └── exceptions.py # Custom exceptions
├── tests/ # Unit & integration tests
├── kubernetes/ # K8s manifests
├── Dockerfile
├── docker-compose.yml
├── Dockerfile_test
├── docker-compose.test.yml
├── pyproject.toml
└── README.md