https://github.com/fvergaracl/game
GAME (Goals And Motivation Engine) - Gamification framework
https://github.com/fvergaracl/game
api api-rest gamification gamification-engine gamification-framework
Last synced: 10 months ago
JSON representation
GAME (Goals And Motivation Engine) - Gamification framework
- Host: GitHub
- URL: https://github.com/fvergaracl/game
- Owner: fvergaracl
- License: apache-2.0
- Created: 2023-11-16T14:16:29.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2025-06-09T09:19:55.000Z (about 1 year ago)
- Last Synced: 2025-06-09T09:20:01.450Z (about 1 year ago)
- Topics: api, api-rest, gamification, gamification-engine, gamification-framework
- Language: Python
- Homepage: https://fvergaracl.github.io/GAME/
- Size: 56.3 MB
- Stars: 4
- Watchers: 1
- Forks: 1
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Changelog: changelog.cz.toml
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# GAME (Goals And Motivation Engine) ๐ฎ

## Welcome to GAME! ๐
**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.
## Key Features โจ
- ๐ **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.
## Quick Start โก
To get started quickly, follow these steps to set up the project locally.
### 1. Clone the repository
```bash
git clone https://github.com/fvergaracl/GAME.git
cd GAME
```
### 2. Install dependencies with Poetry
Make sure you have Poetry installed, then run:
```bash
poetry install
```
### 3. Setup environment variables
Copy the sample environment variables file and configure it as needed:
```bash
cp .env.sample .env
```
### 4. Run the application
Start the FastAPI development server:
```bash
poetry run uvicorn app.main:app --reload
```
You can access the application at `http://localhost:8000`.
### 5. Access the API documentation
Swagger UI is available at `http://localhost:8000/docs` for easy API interaction and testing.
## Project Structure ๐
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](SETUP.md) file.
## Want to Contribute? ๐ก
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](CONTRIBUTING.md) guide for more details on how to contribute.
## Running Tests ๐งช
The project includes a suite of unit and integration tests to ensure code quality. To run the tests, use:
```bash
poetry run pytest
```
For coverage reporting, use:
```bash
poetry run pytest --cov=app --cov-report=term-missing
```
You can find more detailed information on testing in the [TESTING.md](TESTING.md) file.
## Deployment ๐
### Docker
For local development and production environments, you can use Docker. To bring up the application with Docker Compose, run:
```bash
docker-compose up --build
```
For more details, refer to the [DOCKER_SETUP.md](DOCKER_SETUP.md) file.
### Kubernetes
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](KUBERNETES_SETUP.md) for detailed instructions.
## License ๐
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
## Contact
For any questions or feedback, feel free to open an issue or start a discussion in the [GitHub Issues](https://github.com/fvergaracl/GAME/issues) section. You can also check out our official documentation: [GAME Docs](https://fvergaracl.github.io/GAME).
---