0% found this document useful (0 votes)
24 views37 pages

Railway Reservation Project

project based upon railways reservation project

Uploaded by

Anushree Verma
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
24 views37 pages

Railway Reservation Project

project based upon railways reservation project

Uploaded by

Anushree Verma
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 37

GYAN GANGA ORCHIDS THE

INTERNATIONAL SCHOOL

INFORMATION PRACTICES
PROJECT ON:
RAILWAY RESERVATION SYSTEM

SUBMITTED BY: SUBMITTED TO:


CERTIFICATE

This is to certify that Niyati Singh Marko of


class 12TH -A has successfully completed
her project on the topic Railway
Reservation system under my supervision.
She has taken interest and has shown at
most sincerity in completion of this
project.

INTERNAL EXAMINER EXTERNAL EXAMINER

PRINCIPAL

2|Page
ACKNOWLEDGMENT
It is with pleasure that I acknowledge my sincere
gratitude to our teacher, Ms.Soumya Singhai
who taught and undertook the responsibility of
teaching the subject Information Pratices. I have
been greatly benefited from her classes.
I am especially indebted to our Principal
Ms.Deepali Tiwari who has always been a source
of encouragement and support and without
whose inspiration this project would not have
been a successful I would like to place on record
heartfelt thanks to her.
.

STUDENT’S SIGN PRINCIPAL SIGN

3|Page
HARDWARES AND SOFTWARESREQUIRED

HARDWARES

1. Desktop / Laptop
2. Mobile Phone

SOFTWARES

1. Python (latest version)

2. MySQL

3. Python Connector Module


CONTENTS

S.No. Topic Page No.

1 Certificate 2

2 Acknowledgement 3

Hardwares and
3 Softwares Required 4

4 Introduction 6

5 Python Source Code 10

6 MySQL Database 22

5|Page
7 Outputs 25

8 References 30
Objec
1. INTRODUCTIONON
Admi The project RAILWAY ON SYSTEM
proje RESERVATI Objectives of the
ct Project ctives of our
both nistrative ntricate needs
a EmpowermentThe core obje of n the railway
ecosy
are multi-faceted,
s
addressing the i
dministrators and on
User passengers withi Registration
The tem. tial details such
pr , and password.
proce ySQL database.
s as User Registration & echanisms
use Authentication oject
ccounts.
This introduces a streamlined User
in s, requiring users to
Additiprovide essen r ID, name,
o phone number, email ID em, equips
ensur formation is securely
e stored in a M
nally, robust User rains to the
Admi Authentication m train number,
n The the security and integrity of
Ad user a
admi 6|Page
ni Admin istrative Functions
min Panel, a focal point
name, origin, destination, journey distance, journey
time, seat availability, and fares.
Update Train Details: The system allows administrators to
modify existing train details, adapting to dynamic
demands
and operational changes. This includes updating
seat availability, journey details, and fare
information.
Cancel Train: In response to operational constraints or
changing
demands, administrators have the authority to cancel
trains, ensuring flexibility and adaptability in the
system.

2. Enhancing Customer Experience


The Customer Panel is designed with the end-user in
mind,
focusing on providing an intuitive and user-friendly
interface
for seamless ticket booking and management.

User Interaction
User Login: The system provides a secure login interface
for registered users, requiring user ID and password for
access.
Forgot User ID:Users can retrieve forgotten user IDs
through their registered email addresses, enhancing
user experience and reducing barriers to access.

Passenger Panel Functionalities

The Passenger Panel, an extension of the Customer


Panel, offers a range of functionalities:
7|Page
Train Search: Users can search for trains based on
origin and destination, providing comprehensive details
about available trains, schedules, seat availability, and
fares. Book Tickets: The system facilitates the ticket
booking process, allowing users to select trains, classes,
and
passengers for reservation.
Cancel Tickets:A streamlined process enables users to
cancel booked tickets, providing flexibility and
convenience in managing travel plans.

Key Code Functionalities Integrated

User Management Functions


New User Registration
The new_user()` function employs a systematic
approach to register new users, generating a unique
user ID and storing essential details in the MySQL
database.

Forgot User ID
The `forgot_user_id()` function provides a
mechanism for users to retrieve their registered user
IDs via email
verification, ensuring a smooth user experience.

Old User Authentication


The `old_user()` function verifies user credentials,
allowing access to registered users and guiding them
through the system functionalities.
8|Page
Admin Panel Operations

Admin Password Verification


The `adminpassword()` function implements a secure
password system for accessing the admin panel,
ensuring restricted access and system security.

Train Management Operations


Functions such as `add_train()`, `update_details()`, and
`cancel_train()`constitute essential operations within
the Admin Panel. These functionalities empower
administrators to add new trains, update train details,
and cancel trains when necessary.

Passenger Panel Operations

Train Search
The `Train_Search()` function allows users to search
for trains based on origin and destination, providing
detailed information about available trains.

Book Tickets
The `Book_Ticket(uid)` function simulates the ticket
booking process, allowing users to select trains, classes,
and
passengers for reservation.

9|Page
Cancel Tickets
The `Cancel_Ticket()` function facilitates the
cancellation of booked tickets, showcasing the
system's ability to handle modifications to user
bookings.

Significance of the Project


The significance of our project extends beyond its
technical complexity; it lies in its real-world
applicability. In a world where efficient transportation
is vital, an effective railway reservation system is
crucial. The project addresses the pressing need for
systems that can adapt to the evolving demands of the
railway industry while prioritizing user satisfaction,
security, and transparency.
10 | P a g e
PyTHON

SOURCE CODE:

11 | P a g e
1.import random
2. from tabulate import tabulate
3. import mysql.connector as con
4.
dbo=con.connect(host="localhost",user="root",pa
ssword="admin",database="train_ reservation")
5. co=dbo.cursor()

i. #NEW USER REGISTRATION SECTION


6. def new_user():
7.
dbo=con.connect(host="localhost",user="root",pa
ssword="admin",database="train_ reservation")
8. co=dbo.cursor()
9. import random
10. pid=random.randint(0,1000)*10
11.
print("----------------------------------------------------------
------------")
12. print(" \n Welcome to our reservation
system \n Register Yourself here to use our
system")
13. uid=input("Enter your user id: ")
14. name=input("Enter your name: ")
15. pno=input("Enter your phone no: ")
16. eid=input("Enter your email_id: ")
17. pwd=input("Enter your password: ")
18. co.execute("insert into user values
('{}',{},'{}',
{},'{}','{}')".format(uid,pid,name,pno,eid,pwd))
19. print("************* Congratulations!!! Your id
is successfully created **************") 20.
print("----------------------------------------------------------
------------")
21. dbo.commit()
i. #FORGET USER ID
22. def forgot_user_id():
23.
dbo=con.connect(host="localhost",user="root",pa
ssword="admin",database="train_ reservation")
24. co=dbo.cursor()
25. email=input("Enter your registered email: ")
26. co.execute("select user_id from user where
email_id like '{}'".format(email)) 27.
emel=co.fetchall()
28. for i in emel:
29. print("Your user_id is: ",(i[0]))

i. # old user id
30. def old_user():
31.
dbo=con.connect(host="localhost",user="root",pa
ssword="admin",database="train_ reservation")
32. co=dbo.cursor()

12 | P a g e
33. print("\
n---------------------------------------------------------------
\n")
34. uid=input("Enter your user id: ")
35. co.execute("select user_id from user where
user_id like '{}'".format(uid))
36. b=co.fetchall()
37. c=len(b)
38. if c==0:
39. print("---------------- Your given id is not
registered -----------------")
40. print("\
n----------------------------------------------------------------
--\n")
41. print("1. Try again")
42. print("2. Forgot user id")
43. print("3. Register as a new user")
44. choose=int(input("Choose an option from
above: "))
45. if choose==1:
46. old_user()
47. elif choose==2:
48. forgot_user_id()
49. elif choose==3:
50. new_user()
51. else:
52. pas=input("Enter your password: ")
53. co.execute("select password from user
where password like '{}'".format(pas)) 54.
n=co.fetchall()
55. for i in n:
56. if pas==(i[0]):
a. print("\
n---------------------------------------------------------------
\n")
b. print("-----------Welcome back sir/ma'am
what's your plan Today??---------\n") c.
passenger_panel(uid)

i. #PASSWORD FUNCTION FOR


ACCESS TO USER PANEL 57. def
user_panel():
58. print(" 1. Register")
59. print(" 2. Login")
60. print(" 3. Back")
61. out=int(input("Enter your choice: "))
62. if out==1:
63. new_user()
64. elif out==2:
65. old_user()
66. elif out==3:
67. main_menu()

i. #PASSWORD FUNCTION FOR


ACCESS TO ADMIN FUNCTION 68. def
adminpassword():
13 | P a g e
69. password=(input("Enter your
password: "))
70. if password=="CLASS12CS":
71. print("******************Access
Granted********************")
72.
print("------------------------------------------
---------------------------") 73.
admin_panel()
74. else:
75. print("***************ACCESS NOT
GRANTED ENTER CORRECT
PASSWORD************")
76.
print("------------------------------------------
---------------------------") 77.
adminpassword()
i. #ADD TRAIN
78. def add_train():
79.
dbo=con.connect(host="localhost",user="root",pa
ssword="admin",database="train_ reservation")
80. co=dbo.cursor()
81.
print("----------------------------------------------------------
-----------")
82. a=int(input("Enter train no: "))
83. b=input("Enter train name: ")
84. c=input("Enter train origin: ")
85. d=input("Enter train destination: ")
86. e=int(input("Enter train journey distance: "))
87. g=input("Enter train journey time: ")
88. h=int(input("Enter no of seats in AC: "))
89. i=int(input("Enter no of seats in SL: "))
90. j=int(input("Enter no of seats in GEN: "))
91. k=int(input("Enter price of AC: "))
92. l=int(input("Enter price of SL: "))
93. m=int(input("Enter price of GEN: "))
94. n=input("Enter days available: ")
95.
print("----------------------------------------------------------
-----------")
96. co.execute("insert into train_schedule values
({},'{}','{}','{}',{},'{}',{},{},{},{},{},
{},'{}')".format(a,b,c,d,e,g,h,i,j,k,l,m,n))
97. print("*********You have added a new train
details successfully************")
98. dbo.commit()
i. #UPDATE TRAIN TABLE
99. def update_details():
100.
dbo=con.connect(host="localhost",user="root",pa
ssword="admin",database=
"train_reservation")
101. co=dbo.cursor()
102.
print("------------------------------------------
---------------------------") 103.
print("******Welcome to update
train system******")
14 | P a g e
10 print("1. Update train
4. no")
10 print("2. Update train
5. name")
10 print("3. Update train
6. origin")
10 print("4. Update train
7. destination")
10 print("5. Update
8. journey dist")
10 print("6. Update
9. available days")
11 print("7. Update
0. journey time")
11 print("8. Update no of
1. seats in AC")
11 print("9. Update no of
119. while True:
i. # To Update train no
120. if x==1:
121.
print("-------------------------------------------------
--------------------")
print("**********YOU ARE GOING TO
UPDATE TRAIN NO***********") 122.
123. tname=input("Enter train name whose no
you want to update: ")
124. tno=int(input("Enter updated train no: "))
125. co.execute("update train_schedule set
train_no={} where train_name='{}'".
format(tno,tname))
126. print("*******UPDATED
SUCCESSFULLY********")
127.
print("------------------------------------------
---------------------------") 128.
dbo.commit()
129. return
i. # To Update train name
130. elif x==2:
131.
i. # To Update
140. train origin
elif x==3:
15 | P a g e
141.
print("----------------------------------------------------
-----------------")
142. print("**********YOU ARE GOING TO
UPDATE TRAIN ORIGIN***********") 143.
tno=int(input("Enter train no whose
origin you want to update: ")) 144.
orgn=input("Enter updated train
origin: ")
145. co.execute("update train_schedule set
origin='{}' where train_no={}".
format(orgn,tno))
146. print("*******UPDATED
SUCCESSFULLY********")
147.
print("------------------------------------------
---------------------------")
dbo.commit() 148.
149. return
i. # To Update train destination
150. elif x==4:
151.
print("----------------------------------------------------------
-----------")
152.
print("**********YOU ARE GOING TO
UPDATE TRAIN DESTINATION***********") 153.
tno=int(input("Enter train no whose
destination you want to update: ")) 154.
td=input("Enter updated train destination:
")
155. co.execute("update train_schedule set
destination='{}' where train_no={}".
format(td,tno))
156. print("*******UPDATED
SUCCESSFULLY********")
157.
print("------------------------------------------
---------------------------") 158.
dbo.commit()
159. return
i. # To Update journey distance
160. elif x==5:
16 | P a g e
179. return
i. # To Update journey time
180. elif x==7:
181.
print("-----------------------------------------------------------
----------")
182. print("**********YOU ARE GOING TO UPDATE
JOURNEY TIME***********")
183. tno=int(input("Enter train no whose
journey_time you want to update: "))
184. tj=input("Enter updated journey time: ")
185. co.execute("update train_schedule set
total_time='{}' where train_no={}".
format(tj,tno))
186. print("*******UPDATED
SUCCESSFULLY********")
187.
print("-----------------------------------------------------------
----------")
188. dbo.commit()
189. return
i. # To Update no of seats in ac coach of
that train
190. elif x==8:
191.
print("-----------------------------------------------------------
----------")
192. print("**********YOU ARE GOING TO UPDATE
SEATS IN AC***********")
193. tno=int(input("Enter train no whose no of
seats in AC you want to update: "))
194. tsa=input("Enter updated no of seats in AC:
")
i. # To Update no of seats in GEN coach of
21 that train
0. elif x==10:
21 print("----------------------------------------------------
1. -----------------")
21 print("**********YOU ARE GOING TO UPDATE
17 | P a g e
214. tsg=input("Enter updated no of seats in GEN:
")
215. co.execute("update train_schedule set
gen='{}' where train_no={}".
format(tsg,tno))
216. print("*******UPDATED
SUCCESSFULLY********")
217.
print("----------------------------------------------------------
-----------")
218. dbo.commit()
219. return
i. # To Update fare price of AC of that train
220. elif x==11:
221.
print("----------------------------------------------------------
-----------")
222. print("**********YOU ARE GOING TO
UPDATE FARE PRICE OF AC***********")
223. tno=int(input("Enter train no whose fare
price of ac you want to update: "))
224. tfa=input("Enter updated fare price of ac: ")
225. co.execute("update train_schedule set
ac_fare={} where train_no={}".
format(tfa,tno))
226. print("*******UPDATED
SUCCESSFULLY********")
227.
print("----------------------------------------------------------
-----------")
228. dbo.commit()
229. return
i. # To Update fare price of SL of that train
230. elif x==12:
231.
print("----------------------------------------------------------
-----------")
18 | P a g e
25 elif x==14:
0. print("**********YOU ARE NOW OUT OF
25 UPDATE DETAILS SECTION***********")
1. break
25 return
2.
i. #CANCEL TRAIN
254. def cancel_train():
255.
dbo=con.connect(host="localhost",user="root",pa
ssword="admin",database=
"train_reservation")
256. co=dbo.cursor()
257. ct=int(input("enter train no which you want
to cancel: "))
i. #ADMIN PANEL OPTIONS
26 def admin_panel():
1. while True:
26 try:
2.
26 print("------------------------------------
3. ---------------------------------")
26 print("******Welcome to admin
4. panel******")
26 print("1. Add train")
5. print("2. Update details")
26 print("3. Cancel Train")
6. print("4. Log out")
26 opt=int(input("Choose your
7. option: "))
26 if opt==1:
8. a. add_train()
26 elif opt==2:
9. a. update_details()
27 elif opt==3:
0. a. cancel_train()
27 elif opt==4:
1. a. print("**********You are out of
admin panel***********") b.
272 print("------------------------------------
. ---------------------------------") c.
main_menu()

19 | P a g e
i. #PASSENGER PANEL FUNCTIONALITIES
280. def Train_Search():
281.
dbo=con.connect(host="localhost",user="root",p
assword="admin",database=
"train_reservation")
282. co=dbo.cursor()
283. o=input("Enter your origin: ")
284. d=input("Enter your destination: ")
285. co.execute("select * from
train_schedule where origin like '%{}%' and
destination like '%{}
%'".format(o,d))
286. a=co.fetchall()
287. for i in a:
288. print("Train no.:
",a[0][0])
print("Train
name: ",a[0][1]) 289.
290. print("Origin:
",a[0][2])
291. print("Destination:
",a[0][3])
292. print("Journey
301. dbo.commit()
i. #BOOK TICKETS
302. def Book_Ticket(uid):
303.
dbo=con.connect(host="localhost",user="root",p
assword="admin",database=
"train_reservation")
304. co=dbo.cursor()
305. print("THIS IS OUR ALL TRAINS AVAILABLE \
n ---------------------------------------------
------------------------")
306. op="select
train_no,train_name,origin,destination from
train_schedule" 307. co.execute(op)
308. r=co.fetchall()
309. columns=[i[0] for i in co.description]
310.
print(tabulate(r,headers=columns,tablefmt="fanc
y_grid"))
311.
20 | P a g e
319. a=co.execute("select ac1_fare from
train_schedule where
train_no={}".format(trainno))
320. b=co.fetchall()
321. print(b[0][0])
322. elif typ==2:
323. a=co.execute("select sl_fare from
train_schedule where
train_no={}".format(trainno))
324. b=co.fetchall()
325. print(b[0][0])
326. elif typ==3:
327. a=co.execute("select gen_fare from
train_schedule where
train_no={}".format(trainno))
328. b=co.fetchall()
329. print(b[0][0])
330. for i in range (tcktno):
331. cus1=input("Enter customer name: ")
332. age=int(input("Enter your age: "))
333. print("--------------- For gender M=Male,
F=Female, O=Other ------------------")
334. gender=input("Enter your gender: ")
335. j=random.randint(100000,999999)
336. print("Your PNR no is: ",j)
337. cnf="Confirmed"
338. p=b[0][0]
339. co.execute("insert into booked_tickets
values
('{}',{},{},'{}',{},'{}',
{},'{}')".format(uid,j,trainno,cus1,age,gender,p,c
nf))
340. p=b[0][0]
341. amt=tcktno*p
342. print("Your total ticket price is: ",amt)
343. dbo.commit()
344. def Cancel_Ticket():
345.
dbo=con.connect(host="localhost",user="root",pa
ssword="admin",database=
"train_reservation")
21 | P a g e
35 print("******Welcome to passenger
6. panel******")
35 print("1. Train Search")
7. print("2. Book Ticket")
35 print("3. Cancel Ticket")
8. print("4. Log out")
35 choic=int(input("Enter your choice to
9. use: "))
36 if choic==1:
0. Train_Search()
36 elif choic==2:
1. Book_Ticket(uid)
36 elif choic==3:
2. Cancel_Ticket()
36 elif choic==4:
3. main_menu()
36 print("*****You are successfully logged
4. out of Passenger panel*****")
36 print("--------------------------------------------
5. -------------------------")
36
6.
36 i. #Panel functions
7. def main_menu():
36 print("-------------------------------------------
8. ----------")
36 print("********WELCOME TO TRAIN
9. RESERVATION SYSTEM********")
37 print("1. Admin panel")
0. print("2. Passenger panel")
37 print("3. Exit")
1. ch=int(input("Enter your choice: "))
while True:
if ch==1:
adminpassword()
37
2. elif
37 ch==2:
3. user_p
37 anel()
4.

22 | P a g e
MySQl

DATAbASE:

23 | P a g e
TRAIN TABLE:

PASSENGER LIST :

24 | P a g e
USER DETAILS :

BOOKED_TICKETS:

2
5|Page
OUTPUTS:

26 | P a g e
TRAIN RESERvATION MAIN PAgE:

27 | P a g e
THE ADMIN lOgIN PANEl:

28 | P a g e
CANCEl TICKET:

bOOKINg TICKETS :

29 | P a g e
SEARCH TRAIN:

30 | P a g e
REFERENCES:

1. CLASS 11th& 12th Computer Science Book


(SUMITA ARORA)

2.PYTHON
https://www.python.org/

3.MySQL
https://www.mysql.com/

4.KV Coders
https://kvcoders.in

79874: 5. IRCTC:
https://www.irctc.co.in/nget/ train-search

31 | P a g e

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy