/Egyptian_Premier_League_Match_Reservation_System

online automated ticket reservation system for football matches in the Egyptian Premier League

Primary LanguageEJSMIT LicenseMIT

description

An online automated ticket reservation system for football matches in the Egyptian Premier League

How to run

  1. make sure to have .env file in the directory called code where the content of the .env file will be as follow:
PORT_NUM=<port_number>
SECRET="<some string key used by session>"
DB_URL="<database_link>"
MAPBOX_API_KEY="<mapbox_API_KEY>"
  1. run the command npm install while standing in the directory called code to install all dependencies specified by package.json file.
  2. make sure you have MongoDB installed.
  3. run nodemon app.js or node app.js to run the project.

TODOs:

  • add verification to input data
  • connect to online database
  • use any online storage service as Cloudinary instead of storing in the local files
  • modify some of the endpoints
  • change architecture of the system

Notes:

  • the directory seeds contains only 1 file responsible for creating seeds for the database
  • the directory utils contains only 1 file responsible for some time formatting
  • the directory views contains files related to html files that will be rendered using ejs and sent
  • the directory routes contains files responsible for routing to different endpoints
  • the directory controllers contains files that has code implementation for the routes
  • the directory models contains files responsible for defining document structures and schemas for the mongo database
  • the directory public contains miscellaneous files responsible for different things used by views

Features

Common

0. main Page

Designing good looking home page

F0.mp4

Site Administrator

1. Approve new users as an authority

New Users should sign-up & the user account is given an authority when the administrator approves their authority.

F1.mp4

2. Remove an existing user.

The administrator can remove an existing account.

F2.mp4

EFA Managers

3. Create a new match event

The EFA managers can create a new match event and add all its details.

F3.mp4

4. Edit the details of an existing match.

The EFA managers can change/edit the details of a certain match.

F4.mp4

5. Add a new stadium.

The EFA managers can add a new stadium and define its shape and number of seats as shown below.

F5.mp4

6. View match details.

The EFA managers can view matches details.

F6.mp4

7. View vacant/reserved seats for each match.

The EFA managers can view the overall seat status for each event (vacant/reserved).

F7.mp4

Customers (Fans)

8. Edit their data.

The customer can edit their personal data (except for the username and email address).

F8.mp4

9. View matches details.

The customer can view all matches details as well as the vacant seats for each match.

F9.mp4

10. Reserve vacant seat(s) in future matches.

The customer can select vacant seat/s only.

F10.mp4

11. Cancel a reservation.

The customer can cancel a reserved ticket only 3 days before the start of the event. The seat/s in the reservation should be vacant again.

F11.mp4

Guests

12. Register a new account.

The guest can register a new account (whether as a fan or as a manager).

F12.mp4

13. Sign in as an existing account.

The guest can log in as an existing account.

F13.mp4

14. View matches details.

The guest can view matches details (whether signed in or not).

F14.mp4