A Hive Helsinki group project combining game development, real-time systems, and DevOps tooling.
Features real-time gameplay, tournaments, and full-stack observability via the ELK Stack.
- Project Overview
- Collaborators
- Tech Stack
- Game Features
- System Architecture
- System Observability
- Installation
- What I Learned
- License
Beepong is a modular multiplayer Pong game built to showcase real-time interactions and observability across services.
It supports:
- AI opponent fallback for solo games
- Tournament mode with brackets
- Real-time multiplayer via WebSockets
- Clear frontend-backend separation
- Centralized log monitoring for observability
| Area | Stack/Tool |
|---|---|
| Frontend | Vanilla JS |
| Backend | Django REST Framework, WebSockets |
| Database | PostgreSQL |
| DevOps | Docker, Docker Compose |
| Monitoring | ELK Stack (Elasticsearch, Logstash, Kibana) |
| Testing | Cypress (E2E), Jest, Django tests |
- Multiplayer Pong: Real-time gameplay against human or AI
- Lobby System: Create, join, and manage game lobbies
- Tournament Mode: Compete through bracket-based matches
- Chat & Presence: Interact with players in real-time
- AI Mode: Fall back to AI if no human opponent is found
Beepong uses a containerized microservice architecture:
- Frontend: Vanilla JavaScript SPA served via Nginx
- Backend: Django-based API + WebSocket server
- Database: PostgreSQL for user/game state persistence
- NGINX: Reverse proxy, static serving, load routing
- ELK Stack: Monitoring and log aggregation for all services
My part of this project involved integrating the ELK stack:
- Real-time log ingestion with Logstash
- Searchable service logs with Elasticsearch
- Dashboard creation in Kibana for insights
π Example Visual Dashboards:
- Postgres FATAL errors over time
- Authentication success/failure rates
- WebSocket traffic volume
- Routing and 404s from NGINX
git clone git@github.com:liocle/42_transcendence.git
cd beepong
cp .env.example .env # Edit the required templated fields
make up_allThen, open:
- πΉοΈ Game frontend: https://localhost:8443
- π Kibana logs UI: http://localhost:5601
- Running a real-world multi-container application using Docker
- Setting up the ELK stack from scratch for real-time observability
- Collaborating with developers to ingest and structure backend and service logs
- Building visual dashboards in Kibana to support debugging and gameplay insights
- Understanding the importance of testing environments and reproducibility in full-stack development
This project is licensed under the MIT License.

