Krish-Upgrix commited on
Commit
3cc1639
Β·
verified Β·
1 Parent(s): 75491f8

Upload 3 files

Browse files
Files changed (3) hide show
  1. driver_app.py +179 -0
  2. firebase_credentials.json +13 -0
  3. requirements.txt +4 -0
driver_app.py ADDED
@@ -0,0 +1,179 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ import firebase_admin
3
+ from firebase_admin import credentials, db
4
+ from datetime import datetime
5
+
6
+ # Initialize Firebase
7
+ if not firebase_admin._apps:
8
+ cred = credentials.Certificate("firebase_credentials.json")
9
+ firebase_admin.initialize_app(cred, {
10
+ 'databaseURL': 'https://binsight-beda0-default-rtdb.asia-southeast1.firebasedatabase.app/'
11
+ })
12
+
13
+ st.title("Binsight Driver Dashboard")
14
+ st.sidebar.header("Driver Login")
15
+
16
+ driver_email = st.sidebar.text_input("Enter your email")
17
+ login_button = st.sidebar.button("Login")
18
+
19
+ if login_button and driver_email:
20
+ st.session_state["driver_email"] = driver_email
21
+ st.sidebar.success(f"Logged in as {driver_email}")
22
+
23
+ if "driver_email" not in st.session_state:
24
+ st.warning("Please log in first.")
25
+ st.stop()
26
+
27
+ dustbins_ref = db.reference("dustbins")
28
+ dustbins = dustbins_ref.get() or {}
29
+
30
+ allocated_tasks = {
31
+ key: value for key, value in dustbins.items()
32
+ if value.get("allocated_truck") == st.session_state["driver_email"] and value.get("status") == "Allocated"
33
+ }
34
+
35
+ st.subheader(f"Allocated Tasks ({len(allocated_tasks)})")
36
+
37
+ for key, value in allocated_tasks.items():
38
+ with st.expander(f"πŸ“ Task at {value['address']}"):
39
+ st.write(f"**Latitude**: {value['latitude']}")
40
+ st.write(f"**Longitude**: {value['longitude']}")
41
+ st.write(f"**Classification**: {', '.join([f'{k} ({v:.2f})' for k, v in value['classification'].items()])}")
42
+
43
+ if st.button(f"Mark as Done", key=f"done_{key}"):
44
+ dustbins_ref.child(key).update({
45
+ "status": "Completed",
46
+ "completed_at": str(datetime.now()),
47
+ "completed_by": st.session_state["driver_email"]
48
+ })
49
+ st.success(f"Task at {value['address']} marked as completed!")
50
+
51
+
52
+
53
+
54
+
55
+
56
+ # import streamlit as st
57
+ # import firebase_admin
58
+ # from firebase_admin import credentials, db
59
+ # from datetime import datetime
60
+
61
+ # # Initialize Firebase
62
+ # if not firebase_admin._apps:
63
+ # cred = credentials.Certificate("firebase_credentials.json") # Path to your Firebase JSON
64
+ # firebase_admin.initialize_app(cred, {
65
+ # 'databaseURL': 'https://binsight-beda0-default-rtdb.asia-southeast1.firebasedatabase.app/' # Replace with your Firebase Realtime Database URL
66
+ # })
67
+
68
+ # # Streamlit App
69
+ # st.title("Binsight Driver Dashboard")
70
+ # st.sidebar.header("Driver Login")
71
+
72
+ # # Driver Login
73
+ # driver_email = st.sidebar.text_input("Enter your email")
74
+ # login_button = st.sidebar.button("Login")
75
+
76
+ # if login_button:
77
+ # if driver_email:
78
+ # # Fetch allocated tasks from Firebase
79
+ # dustbins_ref = db.reference("dustbins")
80
+ # dustbins = dustbins_ref.get()
81
+
82
+ # # Filter tasks for the logged-in driver
83
+ # allocated_tasks = {
84
+ # key: value
85
+ # for key, value in dustbins.items()
86
+ # if value.get("allocated_truck") == driver_email and value.get("status") == "Allocated"
87
+ # }
88
+
89
+ # if allocated_tasks:
90
+ # st.subheader(f"Allocated Tasks ({len(allocated_tasks)})")
91
+ # for key, value in allocated_tasks.items():
92
+ # with st.expander(f"πŸ“ Task at {value['address']}"):
93
+ # st.write(f"**Latitude**: {value['latitude']}")
94
+ # st.write(f"**Longitude**: {value['longitude']}")
95
+ # st.write(f"**Classification**: {', '.join([f'{k} ({v:.2f})' for k, v in value['classification'].items()])}")
96
+ # st.write(f"**Allocated At**: {value.get('allocated_at', 'N/A')}")
97
+
98
+ # # Submit Work Done
99
+ # if st.button(f"Mark as Done", key=f"done_{key}"):
100
+ # dustbins_ref.child(key).update({
101
+ # "status": "Completed",
102
+ # "completed_at": str(datetime.now()),
103
+ # "completed_by": driver_email
104
+ # })
105
+ # st.success(f"Task at {value['address']} marked as completed!")
106
+ # else:
107
+ # st.info("No allocated tasks found.")
108
+ # else:
109
+ # st.error("Please enter your email to login.")
110
+
111
+
112
+
113
+
114
+
115
+
116
+
117
+
118
+
119
+
120
+
121
+
122
+ # import streamlit as st
123
+ # import firebase_admin
124
+ # from firebase_admin import credentials, db
125
+ # from datetime import datetime
126
+
127
+ # # Initialize Firebase
128
+ # if not firebase_admin._apps:
129
+ # cred = credentials.Certificate("firebase_credentials.json") # Path to your Firebase JSON
130
+ # firebase_admin.initialize_app(cred, {
131
+ # 'databaseURL': 'https://binsight-beda0-default-rtdb.asia-southeast1.firebasedatabase.app/' # Replace with your Firebase Realtime Database URL
132
+ # })
133
+
134
+ # # Streamlit App
135
+ # st.title("Binsight Driver Dashboard")
136
+ # st.sidebar.header("Driver Login")
137
+
138
+ # # Driver Login
139
+ # driver_email = st.sidebar.text_input("Enter your email", help="Provide your registered email.")
140
+ # login_button = st.sidebar.button("Login")
141
+
142
+ # if login_button:
143
+ # if driver_email:
144
+ # # Fetch allocated tasks from Firebase
145
+ # dustbins_ref = db.reference("dustbins")
146
+ # dustbins = dustbins_ref.get()
147
+
148
+ # if not dustbins:
149
+ # st.info("No tasks available.")
150
+ # else:
151
+ # # Filter tasks for the logged-in driver
152
+ # allocated_tasks = {
153
+ # key: value
154
+ # for key, value in dustbins.items()
155
+ # if value.get("allocated_truck") == driver_email and value.get("status") == "Allocated"
156
+ # }
157
+
158
+ # if allocated_tasks:
159
+ # st.subheader(f"Allocated Tasks ({len(allocated_tasks)})")
160
+ # for key, value in allocated_tasks.items():
161
+ # with st.expander(f"πŸ“ Task at {value['address']}"):
162
+ # st.write(f"**Latitude**: {value['latitude']}")
163
+ # st.write(f"**Longitude**: {value['longitude']}")
164
+ # st.write(f"**Classification**: {', '.join([f'{k} ({v:.2f})' for k, v in value['classification'].items()])}")
165
+ # st.write(f"**Allocated At**: {value.get('allocated_at', 'N/A')}")
166
+
167
+ # # Submit Work Done
168
+ # if st.button(f"Mark as Done", key=f"done_{key}"):
169
+ # dustbins_ref.child(key).update({
170
+ # "status": "Completed",
171
+ # "completed_at": str(datetime.now()),
172
+ # "completed_by": driver_email,
173
+ # })
174
+ # st.success(f"Task at {value['address']} marked as completed!")
175
+ # else:
176
+ # st.info("No allocated tasks found for your account.")
177
+ # else:
178
+ # st.error("Please enter your email to login.")
179
+
firebase_credentials.json ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "type": "service_account",
3
+ "project_id": "binsight-beda0",
4
+ "private_key_id": "86c2e13649ff195cab006525a8ce7bef4cc4f058",
5
+ "private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDN4c+3mtX7swWt\nfqr1LHDaseFRS3FKWHt56r4uYOvSGsubpqesNLE9PVAtHcAJx+ZUiSN2vGEu1T6v\n+0zRtkUUVqlnKEt5xmDtylWJJfkC0y0eu3wF9xN5YhEbfwBH+q9mkJx9eFCVMcQP\nVf2r0NpOkaH0n1Bw+5v3SWvptSnf5dbkKtYq8VaFZ1lKjTGpW86kGDBik7kEwO0F\n7ccImILj5RjikZz9b5+g+L4m9JzXVzdug8SAKwGEWB+lcNNUQzw+MZUTQmrrvtzl\nbAdL3fQS094Fj4lEvSccxw1yILwh9XNEir26ZaV4KLLB3a2yzbi8Vug6Zss5VM1j\n99kMalcTAgMBAAECggEACXy6Ya+U5MBfJpuLrTibCrjftStQ0Sg6qGeU0/ZLZ6cs\ncsO/PkQ/Vp8YrruMOecoSgT3yWTs5YeWF+3woElR7ZoAvGwy7i2iEdMdFfDWBLdO\ngPgKwwubriBCwY2cqbR3mLZZP77nl7hvXHWN9vjs1moHmIou3sX5be/INUDP6S1N\nBgdtvYb7eZY8bABuZ2xGZcO8Qai9d/UrytcoblNmDGz5bB5JQBS2Q0JVzvxTpK49\nypbdPGyvpBxRguKgK5aBiAcftfjnU0TfKthOjGMkWwVrwRz8YsotN6eqQCeHB4Qx\nDDkQzluqWI3VAgenfwD7CjbXMYI1/AQhW4Psl+oB4QKBgQDxqAoI1GqSz+WxBBzZ\nQQ+8sNKuZQEgbWks/VbGds0Sejx0HaaUA8WIjBg6OEOQACUcH8EdZUWGcKfQr6w/\nRFNoJFgXtiiKjZBrFHpAGC9jzGDCRCmTrTMpTIc6r2+tF2nOJm98ue2OGN+Wcj0e\n0dHtRnbbgHdqDn/fVwhIrvFqrQKBgQDaGi65QGzo9XI6kJ+ckssRcDVmaEvNxDc4\nZ0e4j2+ExaFdz3Q+WR3auqIJE3gzv6PTWpKE60Nl/KKbqHKaUSap11Xzm3A64r4B\nRJzkTaWvSVnIIPQ+LCy+7gNOiZOg7G8ddA1Dw2Vh8xs0Ds7hufMlCz81uXoac42b\nr5UFsrLAvwKBgEl2bw5+HKPi5Y2plWeKOtF+4502gWAtQqL1pPKSXQc397bI6MHo\nX52CET9pqUhWcvGYyak5Byi2iJ2NOgzFpaFsIweaTbrJDFUxFXT0pTtufx+vfwAw\nz/PHGvkBKi7xhi2wS4YcM5ZWA2qF8gSzfmDmYe2aoTKxk7f+ijsmS6fFAoGAUr0o\nCIMWTfH/GZSP2HgfrUfiGi1qxG6xfCZCIRPY/Id0xf/TW2u3VakDm2nVadxDrARq\nHR6a/O+wSFjI0R4ECt5z7uyC0PP/nL+IvVtvhWXQN4m43nUnrG7itkKezKelJ4lF\nFvXjWhs9sKwFc8B1KxJvMlRgq/Q2Pl+Hqxe1lEUCgYEAw1edm/iMOK4M+Uu1cMjR\nY1Ebv0krcgq7c1xww0uwbNzbaULNQ/WA0VjCRr2vQIvwvl/vvzFS22y05YYRpIkd\nRrE//iuTHvT9dWQ0LwdwmQGLw5D+2aUra4r4oxFJSee227GReVZzVJLMdBzN6Nlf\nc90EgNm0/XVwiU8ffvVNKvI=\n-----END PRIVATE KEY-----\n",
6
+ "client_email": "firebase-adminsdk-fbsvc@binsight-beda0.iam.gserviceaccount.com",
7
+ "client_id": "117807845711034166542",
8
+ "auth_uri": "https://accounts.google.com/o/oauth2/auth",
9
+ "token_uri": "https://oauth2.googleapis.com/token",
10
+ "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
11
+ "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/firebase-adminsdk-fbsvc%40binsight-beda0.iam.gserviceaccount.com",
12
+ "universe_domain": "googleapis.com"
13
+ }
requirements.txt ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ streamlit
2
+ pandas
3
+ requests
4
+ firebase_admin