A full-stack TypeScript application for tracking game play sessions, visualizing playtime statistics, and managing users through an admin dashboard.
The project demonstrates REST API design, authentication, database modeling, automated testing, and CI pipelines.
Swagger UI: http://localhost:4000/api-docs
- Start and stop game sessions
- Track playtime per game
- View personal statistics and playtime insights
- Weekly activity charts
- Leaderboard rankings
- Weather widget powered by OpenWeatherMap
- View and manage all users
- Create new users
- Delete users
- Upload user avatars
- View detailed user statistics
The application follows a full-stack client–server architecture.
- User interface for gameplay tracking and dashboards
- Firebase authentication for secure login
- Game session tracking UI
- Data visualization using Recharts
- REST API for users, games, sessions, and statistics
- Authentication middleware
- Request validation using Zod
- Logging with Winston
- File uploads handled with Multer
- PostgreSQL database
- Prisma ORM for database modeling and queries
- Backend testing with Jest and Supertest
- Automated CI pipeline using GitHub Actions
- React
- TypeScript
- Vite
- Tailwind CSS
- Recharts
- Firebase Authentication
- Node.js
- Express
- TypeScript
- Prisma ORM
- Zod (validation)
- Multer (file uploads)
- Winston (logging)
- PostgreSQL
- Jest
- Supertest
- GitHub Actions
Interactive Swagger documentation is available at: http://localhost:4000/api-docs
Backend tests are written using Jest and Supertest and are automatically executed through the CI pipeline.
Run tests locally:
cd backend
npm test
Run tests with coverage:
npm run test:coverage
This project was built to demonstrate:
- Full-stack TypeScript development
- REST API design and architecture
- Authentication using Firebase
- Database modeling with Prisma
- Automated backend testing
- CI pipelines with GitHub Actions