Note: This repository was archived and is no longer actively developed. The project was created within 24 hours as part of the HackYeah 2025 hackathon and serves as a portfolio project for the team members.
Live Demo: Open
Main Hackathon site: hackyeah.pl
Archive Hachathon site (2025 edition): 2025.hackyeah.pl
Event organizer: proidea.pl
This table outlines the core members of the team, their primary role or focus area, and their respective GitHub handles.
| Name | Role / Focus | GitHub Handle |
|---|---|---|
| Arkadiusz Pabian | Team Leader | @ArkadiuszPabian |
| Paulina Rutkowska | UX / Graphic Designer | @PaulinaRutkowska3 |
| Pola Palonek | Creative person | @Polaxxd |
| Szymon Główka | Backend Developer | @szymonglowka |
| Julen Zulaika | Frontend Developer | @JulenZZZ |
| Mateusz Łagocki | Tester | @Mateuszl28 |
Selected task: LifeRun by ZUS
Time to finish the challenge: 24 hours.
Life is a constant sequence of decisions that shape the future – from education and career choices, through lifestyle and relationships, to financial security in old age. In the rush of everyday life, we rarely reflect on the long-term impact of our actions. How do overwork, lack of savings, or neglecting health affect quality of life later on? And on the other hand – how can investing in education, nurturing passions, or maintaining balance between work and family contribute to greater stability and fulfillment in the future? The simulation game Life Run poses a fundamental question: what does a well-planned life really mean? It is not only about finances, but also about health, relationships, and a sense of satisfaction. As part of this challenge, participants will explore these complexities and look for ways to present the consequences of everyday choices in an engaging and accessible way.
Product name: Virtual Tomorrow (Wirtualne Jutro).
Virtual Tomorrow is an educational life simulator that teaches strategic financial and career planning. The application visualizes the long-term consequences of decisions, letting players guide a character from youth through to retirement. In a safe, virtual environment, users learn how their choices impact their future well-being and financial security.
Follow these instructions to get a copy of the project up and running on your local machine for development and testing purposes.
- Docker and Docker Compose
- Git
-
Clone the repository:
git clone https://github.com/arkadiuszpabian/hackyeah2025.git cd hackyeah2025/hackyeahAPI -
Create your environment file: Duplicate the
.env.examplefile and rename it to.env. Then, fill in the required environment variables.cp .env.example .env
-
Build and run the Docker containers: The project uses Docker to manage the development environment. Use
docker-composeto build and run the services.docker-compose up --build
IMPORTANT! At the start of the server, automatic migration takes place. Make sure you use connection string (in DATABASE_URL environment variable) for fresh database instance!
-
Access the application: Once the containers are running, you can access the application in your browser at: http://localhost:8000
The application requires the following environment variables to be set in the .env file. You can copy the .env.example file to create your own .env file.
| Variable | Description | Example Value |
|---|---|---|
DJANGO_SECRET_KEY |
A secret key for a particular Django installation. It's crucial for security. | "django-insecure-your-secret-key" |
DEBUG |
Toggles Django's debug mode. Set to 1 for development to see detailed error pages. |
1 |
DJANGO_ALLOWED_HOSTS |
A comma-separated list of host/domain names that this Django site can serve. | "localhost,127.0.0.1" |
DATABASE_URL |
The connection string for the PostgreSQL database instance. | "postgres://user:pass@host:port/db" |
DJANGO_LOGLEVEL |
Sets the logging level for the application. | INFO |
DJANGO_SUPERUSER_USERNAME |
The username for the admin account to be created automatically. | admin |
DJANGO_SUPERUSER_EMAIL |
The email for the admin account. | admin@example.com |
DJANGO_SUPERUSER_PASSWORD |
The password for the admin account. | your_secure_password |
- Frontend: HTML / CSS / JS
- Backend: Python / Django
- Deployments: Docker
- Database: PostgreSQL
- IDE: Visual Studio Code
- Design Tools: Figma / Canva
- Version Control: Git
The application exposes a RESTful API to provide the game's structure and rules.
| Method | Endpoint | Description |
|---|---|---|
GET |
/api/game-rules/ |
Retrieves all life stages, including their associated questions, answers, conditions, and impacts. |
Commit message format: Conventional Commits
Branching: Feature Branch Workflow
| Type | Branch Prefix | Purpose | Example Branch |
|---|---|---|---|
feat |
feat/ |
New feature for the application (e.g., user login, data visualization). | feat/user-onboarding |
fix |
fix/ |
Bug fix for existing incorrect behavior. | fix/api-auth-header |
chore |
chore/ |
Maintenance, build config, tooling (ESLint, Prettier, dependencies setup). | chore/setup-husky |
test |
test/ |
Adding new tests or correcting existing tests. | test/user-service-logic |
docs |
docs/ |
Changes to documentation (README, guides). | docs/update-readme-team |
refactor |
refactor/ |
Code change that doesn't fix a bug or add a feature (e.g., reorganizing code). | refactor/move-auth-files |
As this project was developed under a 24-hour time constraint and is now archived, we wanted to document our reflections on what we would improve with more time. This section outlines the key steps we would have taken to move this MVP towards a production-ready application.
-
Production-Ready Deployment:
- Reverse Proxy (Nginx): We would introduce Nginx to manage traffic, serve static files efficiently, and secure the application by hiding the Django admin panel and API from direct public access.
-
API Enhancements:
- Granular & Versioned Endpoints: Instead of the single
/api/game-rules/endpoint, our next step would be to design a more RESTful API with versioning (e.g.,/api/v1/stages/,/api/v1/questions/) to make it more flexible and maintainable.
- Granular & Versioned Endpoints: Instead of the single
-
Enhanced Test Coverage:
- Expand the test suite to include integration and end-to-end tests to ensure the reliability and stability of the application.
