GAME (Goals And Motivation Engine) is an open-source system designed to help individuals and organizations achieve their goals through gamification. This project aims to enhance motivation and engagement by introducing game-like mechanics in non-game contexts.
Built with FastAPI (Python) and utilizing PostgreSQL as the database, the project is managed with Poetry for dependency management. Docker and Kubernetes configurations are provided to simplify deployment and scaling.
- 🚀 FastAPI-based: High-performance API with Python’s FastAPI framework.
- 🛠️ Modular Design: Clean architecture, easily extendable.
- 🐋 Docker Support: Ready-to-use Docker and Docker Compose setups.
- ☸️ Kubernetes Ready: Configuration provided for Kubernetes deployment.
- ✅ Comprehensive Testing: Fully integrated testing suite with
pytest
and Codecov for coverage tracking.
To get started quickly, follow these steps to set up the project locally.
git clone https://github.com/fvergaracl/GAME.git
cd GAME
Make sure you have Poetry installed, then run:
poetry install
Copy the sample environment variables file and configure it as needed:
cp .env.sample .env
Start the FastAPI development server:
poetry run uvicorn app.main:app --reload
You can access the application at http://localhost:8000
.
Swagger UI is available at http://localhost:8000/docs
for easy API interaction and testing.
The GAME project follows a clean and modular structure to ensure maintainability and scalability. Below is an overview of the main components:
.
├── app # Main application directory
│ ├── api # API route definitions
│ ├── core # Core configurations and utilities
│ ├── models # Database models
│ ├── schemas # Pydantic schemas for validation
│ ├── services # Business logic and service layer
│ └── tests # Unit and integration tests
├── docker # Docker-related files
├── k8s # Kubernetes configuration files
├── migrations # Alembic migrations
├── pyproject.toml # Poetry configuration file
└── README.md # Project documentation
For a more detailed explanation of the project structure, check out the SETUP.md file.
We welcome contributions of all kinds! Whether you want to fix a bug, improve the documentation, or add a new feature, we encourage you to join the project.
Check out the CONTRIBUTING.md guide for more details on how to contribute.
The project includes a suite of unit and integration tests to ensure code quality. To run the tests, use:
poetry run pytest
For coverage reporting, use:
poetry run pytest --cov=app --cov-report=term-missing
You can find more detailed information on testing in the TESTING.md file.
For local development and production environments, you can use Docker. To bring up the application with Docker Compose, run:
docker-compose up --build
For more details, refer to the DOCKER_SETUP.md file.
The project is ready to be deployed to Kubernetes. You can find the configuration files in the kubernetes/
directory. Follow the steps in the KUBERNETES_SETUP.md for detailed instructions.
This project is licensed under the MIT License - see the LICENSE file for details.
For any questions or feedback, feel free to open an issue or start a discussion in the GitHub Issues section. You can also check out our official documentation: GAME Docs.