Skip to content

eleanazeri/ESCAPE-ROOM-DATABASE

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🔐 Escape Room Full-Stack Application

A full-stack escape room booking application built with a Python/Flask backend and MySQL database.

Institution: Aristotle University of Thessaloniki (ECE, AUTh)
Course: Databases
Team: Group 16
Semester: Winter 2025–2026


⚙️ Tech Stack

  • MySQL 8.0, MySQL Workbench
  • Python 3, Flask, mysql-connector-python
  • Jinja2, HTML5, CSS3
  • draw.io

🏗️ Architecture

Phase 1 — Conceptual Design
Modelled the escape room domain as an ER diagram covering six core entities (Room, User, Booking, Team, GameSession, GameMaster) with full cardinality and participation constraints. See docs/.

Phase 2 — Relational Schema and SQL Queries
Normalised MySQL schema (escape_room_db) with seven tables, foreign key constraints, enumeration types, and role-based user privileges. Seven SQL query files in database/ cover the full range of relational algebra operations.

Phase 3 — Flask Web Application
Multi-role web application with session-based authentication and role resolution at login. Route access is enforced via login_required and role_required decorators. Each role (Player, Gamemaster, Manager) gets a distinct interface and permission scope. Source in app/.


📁 Key Files

File Description
EscapeRoomDB_dump.sql Full database schema, constraints, and sample data
docs/Deliverable_1.pdf ER design report and design decisions
docs/ER_diagram.png Entity-Relationship diagram
database/EscapeRooms.mwb MySQL Workbench visual schema model
database/users.sql Database user definitions and privilege grants
database/query_[A–G].sql SQL queries covering all relational algebra operations
app/app.py Flask application — routes, queries, access control

🚀 Quick Start

Requirements: MySQL 8.0+, Python 3.8+, pip

git clone https://github.com/eleanazeri/ESCAPE-ROOM-DATABASE.git
cd escape-room-database

1. Import the database

mysql -u root -p < EscapeRoomDB_dump.sql

Or open EscapeRoomDB_dump.sql in MySQL Workbench via File > Open SQL Script > Execute.

2. Set your database password

In app/app.py, update line 12:

password="your_password_here",

3. Install dependencies and run

cd app
pip install flask mysql-connector-python
python app.py

Application runs at http://127.0.0.1:5000.


🔑 Test Accounts

Role Username Password Access
Player thunder pass1 Browse rooms, make and cancel bookings, view teams
Gamemaster john_k pass3 Player access + manage bookings and session results
Manager admin1 admin1 Full administration — rooms, users, all bookings

👥 Team

Name Student ID
Eleana Zeri 10811
Elpida Baziakou 10826
Amalia Konstantinou 10745

Academic coursework — Aristotle University of Thessaloniki. Not for resubmission in other academic contexts.

About

Role-based escape room booking platform (Flask & MySQL) — AUTh Databases Course.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors