Skip to content

A Railway Reservation website that offers a simple way for users to book tickets online, while also providing station masters with tools needed to effectively manage their stations.

Notifications You must be signed in to change notification settings

pranith-rao/Bookezy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

52 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Bookezy

Welcome to Bookezy our railway reservation website, where booking train tickets has never been easier. Our platform offers a simple and efficient way for users to book tickets online, while also providing station masters with the tools they need to effectively manage their stations. With the added capability for admins to easily add new stations and station masters, our website offers a comprehensive solution for all your railway reservation needs. This project was built for a hackathon named Bhilai Hacks by our team named Entityđź’Ş

To have a glimpse of how this website works watch this https://youtu.be/NohdC1GSJNA

Live Link

Click on this URL https://bookezy.herokuapp.com/ and let me know how it is. Cheers!
Since Heroku took down the free hosting service, the site is no longer hosted anywhere.

Steps to run the application

  1. Clone this repo into your local machine and open it using VS code or any other editor of your choice.
  2. Open the terminal and create a virtual environment using the command "python -m venv yourenvname".
  3. Activate the virtual env created using the command "yourenvname\Scripts\activate".
  4. Once activated, install all the packages using the command "pip install -r requirements.txt".
  5. Once all packages are installed you are ready to run the application. Type 'py app.py' in the terminal and hit enter.
  6. A link like http://127.0.0.1:9876/ will pop up in the terminal. Press Ctrl and click on the link to open it in the browser to see the landing page of the application.
  7. Note! Since we are using SQLite for database management you need to uncomment line 142 in app.py the first time you run the command "py app.py" so that the tables are created. Comment the line once the tables are created so that new tables are not created again and again whenever you perform an action.

Mail Auth and Google Auth

To set up the app password for the Gmail ID you will be used for sending emails:

  1. Enable 2-factor authentication on your mail ID.
  2. Go to this website https://myaccount.google.com/apppasswords
  3. Select Other (Custom Name) from the Select App dropdown list and give it a name and click on Generate.
  4. Copy the generated password and paste it on line 37 and the mail ID on lines 21 and 37.
  5. Yea! You are all set to send alerts using the mailing services.

To set up Google Auth for user registration and login:

  1. Go to this website https://console.cloud.google.com/ and log in with your Gmail credentials.
  2. On the top bar click on "Create New Project" name it and click on Create.
  3. Inside the project dashboard click on APIs & Services and go to the Credentials tab.
  4. On the top bar click on Create credentials and select OAuth Client ID.
  5. Click on Configure the consent screen and select the External option and click on Create.
  6. Fill in the App name, User support email, and Developer contact information and click save and continue x 3 and back to the dashboard.
  7. Now like Create credentials again and select OAuth Client ID. Select the application type as the desktop app and click Create.
  8. Copy the generated Client ID and secret and paste it on lines 48 & 49 respectively.
  9. Done! Now you can use Google auth to register and log in.

Operations that can be performed

Main Admin

  1. Credentials for the main admin are hard coded. Use '[email protected]' and 'entity123' as credentials to log in.
  2. Add stations and notify the station admin via email.
  3. View the list of stations added.

Station admin

  1. Has to use his/her email and phone number as the password for the first login.
  2. Change their password.
  3. Update his/her Profile.
  4. Add trains starting from their respective stations and view the list of the trains added.
  5. Schedule the trains for different dates and view the list of scheduled trains.
  6. View the reservation requests of users and accept or reject them and inform them via email regarding the action taken.
  7. Recover their password by using the forgot password on the station admin login page.

Users

  1. Register and log in using Google Auth or fill out the form.
  2. Update their profile as the Google auth doesn't return their phone number and address.
  3. Change their password if needed.
  4. View the list of available trains.
  5. Book tickets if the train is available to their preferred location on their preferred date and receive booking notification via email.
  6. Reserve tickets if the train is not available to their preferred location on their preferred date and receive reservation update notifications via email.
  7. View their booking history and cancel tickets only before 24 hours of their travel time.
  8. Status of their reservation.
  9. Recover their password by using the forgot password on the login page.

Snapshots

Home Page

1 2

Main Admin Login

3

Main Admin Dashboard

4

Add Station & Station Admin Details

5

Added Stations List

6

Mail Confirmation

7

Station Admin Login

8

Station Admin Dashboard

9

Profile Update Page

10

Add Trains

11

Added Trains List

12

Schedule Trains

13

Scheduled Trains List

14

Reservation Requests List

15

Change Password

16

Password Recovery

17

OTP Mail

18

New Password with Validation Check

20

User Registration

21

Google Auth Page

22

Updating the random phone number and address

23

User Login Page

24

User Dashboard

25

User Profile Update

26

List of Available Trains

27

Book Tickets

28

Booking Confirmation Mail

29

Reserve Tickets

30

Reservation Request Mail

31

Check for Reservation Status

32

Mail for Reservation Confirmation

33

Reservation Confirmation

34

Booking History & Cancellation

35

About

A Railway Reservation website that offers a simple way for users to book tickets online, while also providing station masters with tools needed to effectively manage their stations.

Topics

Resources

Stars

Watchers

Forks