Back to all projects

GameCafé Manager

Code complete · hosting soon PHP OOP · Custom MVC · MySQL · PSR-4

A board-game café reservation and management system built from scratch with PHP and MySQL. Players can browse and filter the game catalogue, check table availability, create reservations, track their bookings, and cancel eligible reservations. Administrators manage games, tables, reservations, and live gaming sessions through role-based dashboards.

0 frameworks — MVC built from scratch
4 developers, Agile with Jira
PSR-4 autoloading standard
GameCafé Manager
01

The problem

The goal was to build a functional reservation system for a gaming café without relying on Laravel, Symfony, or another full-stack framework. The project focused on understanding how web applications work internally, including routing, controllers, models, views, authentication, database relationships, and role-based access control.

02

What I built

A complete café management application featuring player registration, login, password hashing, game catalog filtering, table availability checks, reservation creation and cancellation, admin management, live session tracking, and player ratings. It was built around a custom MVC architecture and clear role-based workflows.

03

Feature walk-through

Custom MVC architecture

Custom MVC architecture

A hand-written router maps URLs to controller methods. Controllers validate requests and coordinate business logic, models communicate with MySQL, and PHP views render the interface.

Reservation & availability flow

Reservation & availability flow

Players book a table by picking a date, start and end times, an optional game, party size and table — with game suggestions matched to the player count. The system checks table capacity and overlapping reservations, then tracks pending, confirmed and cancelled bookings. Admins turn reservations into live sessions in an Active Sessions view: a session can be ended manually or left running until the reservation end time.

Game catalogue & filtering

Game catalogue & filtering

The catalogue supports game creation, editing, deletion, descriptions, instructions, ratings, related games, and filters by search term, category, difficulty, player count and availability.

Role-based dashboards

Role-based dashboards

Administrators manage the café’s resources and reservations, while players browse games, make bookings, view booking history, submit ratings and use dedicated player and admin workflows.

04

Under the hood

The application implements the main parts of a web framework manually: routing, controllers, models, views, authentication, role checks and Composer-based autoloading. No Laravel or Symfony was used.

  • Router — parses requests and maps URLs to controller actions
  • Controllers — validate input, enforce access rules, coordinate logic
  • Models — query a normalized MySQL database
  • Views — render PHP templates with reusable layouts
  • Authentication — manages sessions, passwords and user roles
  • Composer — provides PSR-4 autoloading for App and Core namespaces
05

What I learned

  • How MVC frameworks work internally
  • PHP OOP and PSR-4 autoloading
  • Database design, relationships and normalization
  • Authentication and role-based authorization
  • Reservation and availability logic
  • Session and status management
  • Agile collaboration and Jira workflows
  • Git workflows, code reviews and clean code practices
Back to all projects