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
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.
- Clone this repo into your local machine and open it using VS code or any other editor of your choice.
- Open the terminal and create a virtual environment using the command "python -m venv yourenvname".
- Activate the virtual env created using the command "yourenvname\Scripts\activate".
- Once activated, install all the packages using the command "pip install -r requirements.txt".
- Once all packages are installed you are ready to run the application. Type 'py app.py' in the terminal and hit enter.
- 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.
- 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.
To set up the app password for the Gmail ID you will be used for sending emails:
- Enable 2-factor authentication on your mail ID.
- Go to this website https://myaccount.google.com/apppasswords
- Select Other (Custom Name) from the Select App dropdown list and give it a name and click on Generate.
- Copy the generated password and paste it on line 37 and the mail ID on lines 21 and 37.
- Yea! You are all set to send alerts using the mailing services.
To set up Google Auth for user registration and login:
- Go to this website https://console.cloud.google.com/ and log in with your Gmail credentials.
- On the top bar click on "Create New Project" name it and click on Create.
- Inside the project dashboard click on APIs & Services and go to the Credentials tab.
- On the top bar click on Create credentials and select OAuth Client ID.
- Click on Configure the consent screen and select the External option and click on Create.
- Fill in the App name, User support email, and Developer contact information and click save and continue x 3 and back to the dashboard.
- Now like Create credentials again and select OAuth Client ID. Select the application type as the desktop app and click Create.
- Copy the generated Client ID and secret and paste it on lines 48 & 49 respectively.
- Done! Now you can use Google auth to register and log in.
- Credentials for the main admin are hard coded. Use '[email protected]' and 'entity123' as credentials to log in.
- Add stations and notify the station admin via email.
- View the list of stations added.
- Has to use his/her email and phone number as the password for the first login.
- Change their password.
- Update his/her Profile.
- Add trains starting from their respective stations and view the list of the trains added.
- Schedule the trains for different dates and view the list of scheduled trains.
- View the reservation requests of users and accept or reject them and inform them via email regarding the action taken.
- Recover their password by using the forgot password on the station admin login page.
- Register and log in using Google Auth or fill out the form.
- Update their profile as the Google auth doesn't return their phone number and address.
- Change their password if needed.
- View the list of available trains.
- Book tickets if the train is available to their preferred location on their preferred date and receive booking notification via email.
- Reserve tickets if the train is not available to their preferred location on their preferred date and receive reservation update notifications via email.
- View their booking history and cancel tickets only before 24 hours of their travel time.
- Status of their reservation.
- Recover their password by using the forgot password on the login page.