Computer Science YUVARAJ
Computer Science YUVARAJ
PROJECT REPORT ON
NAME : J. YUVARAJ
CLASS : XII - A
REGISTER NO. :
PHYSICS PROJECT
CERTIFICATE
Principal
ACKNOWLEDGEMENT
Then I would like to thank my parents and friends who have helped me with
their valuable suggestions and guidance has been helpful in various phases of
the completion of the project.
Students Signature
HARDWARES AND SOFTWARES
REQUIRED
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
4 Introduction 6
6 MySQL Database 22
7 Outputs 25
8 References 30
INTRODUCTION
1. Administrative Empowerment
The core objectives of our project are multi-faceted, addressing the intricate
needs of both administrators and passengers within the railway ecosystem.
Administrative Functions
The Admin Panel, a focal point of the system, equips administrators with
indispensable tools:
Add Train:
Administrators can add new trains to the system, specifying crucial details
such as train number, 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 Details:: In response to operational constraints or changing
demands, administrators have the authority to cancel trains, ensuring flexibility
and adaptability in the system.
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.
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
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.
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.
Cancel Tickets
The `Cancel_Ticket()` function facilitates the cancellation of booked tickets,
showcasing the system's ability to handle modifications to user bookings.
i. #FORGET USER ID
22. def forgot_user_id():
23. dbo=con.connect(host="localhost",user="root",password="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",password="admin",database="train_
reservation")
32. co=dbo.cursor()
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. #ADD TRAIN
78. def add_train():
79. dbo=con.connect(host="localhost",user="root",password="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. #CANCEL TRAIN
254. def cancel_train():
255. dbo=con.connect(host="localhost",user="root",password="admin",database=
"train_reservation")
256. co=dbo.cursor()
257. ct=int(input("enter train no which you want to cancel: "))
258. co.execute("delete from train_schedule where train_no={}".format(ct))
259. dbo.commit()
260. print("*********** Train cancelled Successfully ****************")
301. dbo.commit()
i. #BOOK TICKETS
302. def Book_Ticket(uid):
303. dbo=con.connect(host="localhost",user="root",password="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="fancy_grid")) 311.
print(" \n\n")
312. trainno=int(input("Enter your Train no: "))
313. tcktno=int(input("Enter no of seats you want to book: "))
314. print("1. AC TICKET")
315. print("2. SL TICKET")
316. print("3. GEN TICKET")
317. typ=int(input("Enter your choice of class: "))
318. if typ==1:
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,cnf))
340. p=b[0][0]
341. amt=tcktno*p
342. print("Your total ticket price is: ",amt)
343. dbo.commit()
i. #PASSENGER PANEL
351. def passenger_panel(uid):
352. dbo=con.connect(host="localhost",user="root",password="admin",database=
"train_reservation")
353. co=dbo.cursor()
354. while True:
355. print(" ")
356. print("******Welcome to passenger panel******")
357. print("1. Train Search")
358. print("2. Book Ticket")
359. print("3. Cancel Ticket")
360. print("4. Log out")
361. choic=int(input("Enter your choice to use: "))
362. if choic==1:
363. Train_Search()
364. elif choic==2:
365. Book_Ticket(uid)
366. elif choic==3:
367. Cancel_Ticket()
368. elif choic==4:
369. main_menu()
370. print("*****You are successfully logged out of Passenger panel*****")
371. print(" ")
i. #Panel functions
372. def main_menu():
373. print(" ")
374. print("********WELCOME TO TRAIN RESERVATION
SYSTEM********")
375. print("1. Admin panel")
376. print("2. Passenger panel")
377. print("3. Exit")
378. ch=int(input("Enter your choice: "))
379. while True:
380. if ch==1:
381. adminpassword()
388. main_menu()
MYSQL
DATABASE:
TRAIN TABLE:
USER DETAILS :
BOOKED_TICKETS:
OUTPUTS:
TRAIN RESERVATION MAIN PAGE:
THE ADMIN LOGIN PANEL:
CANCEL TICKET:
BOOKING TICKETS :
SEARCH TRAIN:
REFERENCES:
2.PYTHON
HTTPS://www.PYTHON.ORG/
3.MYSQL
HTTPS://WWW.MYSQL.COM/
4. KV CODERS
HTTPS://KVCODERS.IN
5. IRCTC:
HTTPS://WWW.IRCTC.CO.IN/NGET/ TRAIN-SEARCH