GAME (Goals And Motivation Engine) is a gamification engine
9.5K
GAME (Goals And Motivation Engine) is a system designed to foster motivation and achievement of goals through gamification. This open-source project utilizes a PostgreSQL database and is developed with FastAPI in Python, managed via Poetry for environment handling.
It's an open-source project. Code available in https://github.com/fvergaracl/GAME
The GAME system is designed to drive user motivation and goal achievement through gamification. These environment variables control its behavior, including database connections, API settings, and key operational configurations.
| Variable | Type | Description |
|---|---|---|
VERSION_APP | String | Specifies the version of the GAME API (e.g., 1.0.0). |
ENV | String | Defines the environment for the application (e.g., dev, prod). |
DB_ENGINE | String | The database engine used, typically postgresql in this case. |
DB_NAME | String | The name of the database that GAME connects to. |
DB_USER | String | The database user required for authentication. |
DB_PASSWORD | String | Password for the database user. |
DB_HOST | String | Host where the database is running (e.g., localhost). |
DB_PORT | Integer | The port where the PostgreSQL database is accessible (e.g., 5432). |
DATABASE_URL | String | The full connection URL for the database, including credentials and host. |
DEFAULT_CONVERSION_RATE_POINTS_TO_COIN | Integer | Default conversion rate from points to coins in the gamification system. |
API_URL_KPI | String | URL of the API endpoint for KPI (Key Performance Indicators) and health checks. |
Additional Notes:
DATABASE_URL) integrates the engine, user, password, host, and port into a single string, making it easier to configure and connect to the database.Keycloak is an open-source identity and access management tool used to secure the GAME system's API. The variables in this section define how the GAME system interacts with Keycloak for authentication and authorization.
| Variable | Type | Description |
|---|---|---|
KEYCLOAK_ADMIN | String | Username for the Keycloak administrator. |
KEYCLOAK_ADMIN_PASSWORD | String | Password for the Keycloak administrator. |
KEYCLOAK_REALM | String | The realm used in Keycloak for authentication purposes. |
KEYCLOAK_AUDIENCE | String | The audience for Keycloak authentication tokens. |
KEYCLOAK_CLIENT_ID | String | The ID of the client that GAME uses to communicate with Keycloak. |
KEYCLOAK_CLIENT_SECRET | String | Client secret for authenticating the GAME API in Keycloak. |
KEYCLOAK_URL | String | Base URL of the Keycloak server. |
KEYCLOAK_URL_DOCKER | String | Keycloak URL specific to a Docker environment (e.g., http://keycloakGame:8080). |
Additional Notes:
KEYCLOAK_REALM variable ensures that the correct user domain is referenced.KEYCLOAK_CLIENT_ID and KEYCLOAK_CLIENT_SECRET are essential for API-to-API communications, ensuring that only authorized clients can access secure endpoints.These variables configure the deployment of GAME within a Kubernetes cluster. They handle routing, database connections, and TLS security. The Kubernetes configuration ensures scalability and reliability for production environments.
| Variable | Type | Description |
|---|---|---|
GAMIFICATIONENGINE_CERT_ISSUER | String | Certificate issuer for TLS (e.g., letsencrypt). |
GAMIFICATIONENGINE_INGRESS_NAME | String | The name of the Kubernetes Ingress resource for routing traffic. |
GAMIFICATIONENGINE_NAMESPACE | String | Kubernetes namespace for isolating GAME components. |
GAMIFICATIONENGINE_INGRESS_HOST | String | Hostname used by the Ingress for external traffic (e.g., example.com). |
GAMIFICATIONENGINE_BACKEND_SERVICE_NAME | String | Name of the backend service for the GAME API. |
GAMIFICATIONENGINE_BACKEND_SERVICE_PORT | Integer | Port used by the backend service (e.g., 8000). |
GAMIFICATIONENGINE_TLS_SECRET_NAME | String | Kubernetes secret name for storing TLS certificates. |
GAMIFICATIONENGINE_SERVICE_NAME | String | General service name for the GAME API within Kubernetes. |
GAMIFICATIONENGINE_SERVICE_NAME_POSTGRES | String | PostgreSQL service name in Kubernetes. |
GAMIFICATIONENGINE_DATABASE_URL | String | Database connection URL used within the Kubernetes cluster. |
GAMIFICATIONENGINE_DB_ENGINE | String | Database engine for the Kubernetes environment (e.g., postgresql). |
GAMIFICATIONENGINE_DB_HOST | String | Hostname for the database in Kubernetes. |
GAMIFICATIONENGINE_DB_NAME | String | Database name for the Kubernetes environment. |
GAMIFICATIONENGINE_DB_PASSWORD | String | Password for the PostgreSQL database in Kubernetes. |
GAMIFICATIONENGINE_DB_PORT | Integer | Port for the PostgreSQL database in Kubernetes (e.g., 5432). |
GAMIFICATIONENGINE_DB_USER | String | Username for accessing the PostgreSQL database in Kubernetes. |
GAMIFICATIONENGINE_DEFAULT_CONVERSION_RATE_POINTS_TO_COIN | Integer | Default conversion rate for points to coins in the Kubernetes environment. |
GAMIFICATIONENGINE_ENV | String | The application environment setting in Kubernetes (e.g., prod). |
GAMIFICATIONENGINE_VERSION_APP | String | The version of the GAME application deployed in Kubernetes. |
Additional Notes:
GAMIFICATIONENGINE_NAMESPACE helps in logically grouping resources within Kubernetes, ensuring that all services, deployments, and configurations for GAME are isolated from other applications.GAMIFICATIONENGINE_INGRESS_HOST and GAMIFICATIONENGINE_TLS_SECRET_NAME are critical for exposing the application securely to the outside world, using TLS encryption for data in transit.Content type
Image
Digest
sha256:d98e2dae9…
Size
127.7 MB
Last updated
4 months ago
docker pull fvergaracl/game