forked from Chandan-Pradhan/Railway-Tracking-System
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathRailway_Tracking_System.py
More file actions
126 lines (85 loc) · 4.73 KB
/
Railway_Tracking_System.py
File metadata and controls
126 lines (85 loc) · 4.73 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
#RAILWAY APPLICATION
import tkinter as tk
import requests
root = tk.Tk()
#=========================================HEADING=====================================
root.title('Railway Tracking System')
root.geometry('1420x780+50+6')
api_key = '78rgdx4n19fsfwe'
date2 = ''
u_dest = ''
# https://api.railwayapi.com/v2/between/source/<stn code>/dest/<stn code>/date/<dd-mm-yyyy>/apikey/<apikey>/
#===============================================METHODS=================================================
#FUNCTION TO GET THE REQUIRED INFORMATION USING THE RAILWAY API
def get_values(source, destination, date, month, year):
global date2
global u_dest
u_dest = destination
date1 = date + "-" + month + "-" + year
date2 = date1
base_url = 'https://api.railwayapi.com/v2/between/source/'
complete_url = base_url + source + "/dest/" + destination + "/date/" + date1 + "/apikey/" + api_key + "/"
response = requests.get(complete_url)
result = response.json()
show_result(result)
#FUNCTION TO DISPLAY THE LIST OF TRAINS
def show_result(result):
if result['response_code'] == 200:
b = ""
q = ""
for x in range(0, result['total']):
a = result['trains'][x]['name']
c = result['trains'][x]['number']
b = b + a + " " + "-" + c + ' \n'
label4["text"] = b
else:
print('There was some problem retrieving the information \n'
'1.Please check you have entered \n the correct station codes')
#FUNCTION TO FIND OUT THE DISTANCE OF THE TRAIN FROM ITS DESTINATION
def show_result1(train_number):
base_url = 'https://api.railwayapi.com/v2/live/train/'
complete_url1 = base_url + train_number + "/station/" + u_dest + "/date/" + date2 + '/apikey/' + api_key + "/"
response = requests.get(complete_url1)
result1 = response.json()
a = result1['position']
b = result1['train']['name']
c = result1['start_date']
h = a + '\n' + b + '\n' + c
label5['text'] = h
#============================CODE FOR THE USER INTERFACE=======================================
background_image = tk.PhotoImage(file='train.png')
background_label = tk.Label(root, image=background_image)
background_label.place(relheight=1, relwidth=1)
frame1 = tk.Frame(root, bg='#13BFBF', bd=2, relief='groove')
frame1.place(relx=0, rely=0, relheight=0.1, relwidth=1)
label1 = tk.Label(frame1, bg='#13BFBF', text='Railway Tracking System', font=('arial', 32))
label1.place(relheight=1, relwidth=1)
label2 = tk.Label(root, text='Source', bg='#E4EDED', bd=2, relief='ridge', font=('arial', 12))
label2.place(relx=0.03, rely=0.15, relheight=0.04, relwidth=0.1)
label3 = tk.Label(root, text='Destination', bg='#E4EDED' , bd=2, relief='ridge', font=('arial', 12))
label3.place(relx=0.03, rely=0.2, relheight=0.04, relwidth=0.1)
entry1 = tk.Entry(root, bd=2, relief='sunken', font=('arial', 12))
entry1.place(relx=0.14, rely=0.15, relheight=0.04, relwidth=0.15)
entry2 = tk.Entry(root, bd=2, relief='sunken', font=('arial', 12))
entry2.place(relx=0.14, rely=0.2, relheight=0.04, relwidth=0.15)
label5 = tk.Label(root, bg='#E4EDED',text='Date', font=('arial', 11))
label5.place(relx=0.03, rely=0.258, relheight=0.04, relwidth=0.1)
entry3 = tk.Entry(root, bd=2, relief='sunken', font=('arial', 12))
entry3.place(relx=0.14, rely=0.258, relheight=0.04, relwidth=0.025)
entry4 = tk.Entry(root, bd=2, relief='sunken', font=('arial', 12))
entry4.place(relx=0.18, rely=0.258, relheight=0.04, relwidth=0.034)
entry5 = tk.Entry(root, bd=2, relief='sunken', font=('arial', 12))
entry5.place(relx=0.23, rely=0.258, relheight=0.04, relwidth=0.059)
button1 = tk.Button(root, text='Submit', bg='#E4EDED', font=('arial', 11), bd=2, command=lambda: get_values(entry1.get(), entry2.get(), entry3.get(), entry4.get(), entry5.get()))
button1.place(relx=0.3, rely=0.175, relheight=0.041, relwidth=0.055)
label4 = tk.Label(root, bg='#13BFBF', font=('arial', 12), bd=2, relief='groove')
label4.place(relx=0.03, rely=0.32, relheight=0.65, relwidth=0.26)
label2 = tk.Label(root, text='Train No -', bg='#E4EDED', bd=2, relief='ridge', font=('arial', 12))
label2.place(relx=0.5, rely=0.2, relheight=0.04, relwidth=0.1)
entry6 = tk.Entry(root, bd=2, relief='sunken', font=('arial', 12))
entry6.place(relx=0.61, rely=0.2, relheight=0.04, relwidth=0.17)
label5 = tk.Label(root, bg='#13BFBF', bd=2, relief='ridge', font=('arial', 10))
label5.place(relx=0.61, rely=0.26, relheight=0.35, relwidth=0.35)
button2 = tk.Button(root, text='Submit', bg='#E4EDED', font=('arial', 11), bd=2, command=lambda: show_result1(entry6.get()))
button2.place(relx=0.79, rely=0.2, relheight=0.041, relwidth=0.055)
root.mainloop()