A comprehensive pool tracking system designed to manage student points and team performance during Epitech pools.
PoolTracker is a full-stack web application that allows administrators, pedagogical team members, and assistants to track and manage student performance during Epitech pools. The system features role-based access control, team management, point assignment, and detailed performance tracking for students and teams.
- Role-Based Access System: Four distinct user roles (ADMIN, APE, AER, STUDENT) with appropriate permission levels
- User Management: Create, edit, and manage user accounts with role assignment
- Team System: Organize students into teams with customizable colors and descriptions
- Points Tracking: Assign positive or negative points to students with reasons
- Performance Dashboard: View team rankings and student performances
- Student Profiles: Individual performance tracking and point history
- Frontend: React, React Router, Axios, CSS
- Backend: Node.js, Express
- Database: MySQL
- Authentication: JWT (JSON Web Tokens)
- Deployment: Docker, Nginx
PoolTracker/
├── client/ # React frontend application
├── server/ # Node.js backend API
├── docker/ # Docker configuration files
├── .env.example # Example environment variables
├── .gitignore # Git ignore rules
├── docker-compose.yml # Docker Compose configuration
├── Makefile # Build automation commands
├── LICENSE # MIT License
└── README.md # This file
- Docker and Docker Compose
- Make (optional, for using the provided commands)
-
Clone the repository:
git clone git@github.com:ItsKarmaOff/PoolTracker.git cd PoolTracker -
Configure environment variables:
cp .env.example .envThen edit the
.envfile with your desired configuration settings. -
Build and start the services:
make allThis will start all the required containers:
- Frontend (React)
- Backend (Node.js/Express)
- Database (MySQL)
- phpMyAdmin
-
Access the application:
- Frontend: http://localhost:[CLIENT_PORT]
- API: http://localhost:[SERVER_PORT]
- phpMyAdmin: http://localhost:8080
make all: Build and start all servicesmake build: Build Docker imagesmake start: Start Docker containersmake stop: Stop Docker containersmake down: Stop and remove containersmake restart: Restart all containersmake logs: Show container logsmake clean: Remove all containers, volumes, and imagesmake help: Show available commands
See the README files in the client and server directories for instructions on setting up each component separately.
On the first startup, a default admin account is created:
- Email: admin@epitech.eu
- Password: admin123
It is strongly recommended to change this password after the first login.
- ADMIN: Full access to all features, can manage all users
- APE (Assistant Pédagogique Epitech): Can manage teams, students, and points
- AER (Assistant Epitech Régional): Can only manage points for students
- STUDENT: Can view their profile and team information
PoolTracker includes comprehensive database management tools for backing up and restoring both local and remote databases.
# Setup database management (first time only)
cd scripts && ./setup-db-management.sh
# Check database status
./db.sh status
# Backup local database
./db.sh dump-local
# Backup remote/production database
./db.sh dump-remote
# Restore local database (from latest backup)
./db.sh restore-local
# List all available backups
./db.sh list
# Show help and all commands
./db.sh help- ✅ Local & Remote Database Support - Backup and restore both development and production databases
- ✅ Automatic Backup Organization - Timestamped backups with latest symlinks
- ✅ Safe Remote Operations - Explicit confirmation required for production restores
- ✅ Connection Validation - Tests database connectivity before operations
- ✅ Backup Cleanup - Automatic cleanup of old backup files
- ✅ Comprehensive Logging - Detailed status and progress information
For complete database management documentation, see documentation/DB-MANAGEMENT.md.
- Client Documentation
- Server Documentation
- Docker Documentation
- Database Management
- Production Deployment
- Fork the repository
- Create a feature branch
- Make your changes
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
- Epitech for inspiring this project
- All contributors who have helped improve this system