Skip to content

martinbombin/rindus-technical-test

Repository files navigation

🧪 Rindus Technical Test

This is a technical test project built using FastAPI, MySQL, Docker, and Kubernetes. It provides a simple user management API with tests.


🚀 Tech Stack

  • Python 3.13+
  • FastAPI
  • SQLAlchemy
  • MySQL
  • Docker & Docker Compose
  • Kubernetes
  • Pytest
  • Poetry

📦 Local Development

1. Clone the repository

git clone https://github.com/yourusername/rindus-technical-test.git
cd rindus-technical-test

2. Set up the environment

Create a .env file with necessary environment variables (see .env.template).

3. Run the app

make up

4. Tear down (with cleanup)

make down
make prune

🐳 Docker

Build and Push Image

make build
make push

🧪 Running Tests

Using Docker Compose

make test

Or run specific services like test DB and then pytest:

make test-mysql
make pytest

☁️ Kubernetes Deployment

Ensure your Kubernetes cluster is running and kubectl is configured.

make kube-apply

And forward the service to use it.

make kube-forward

📖 API Documentation

FastAPI automatically provides interactive documentation:

🧱 Project Structure

.
├── 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

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors