usmanayaz commited on
Commit
6c151a6
·
verified ·
1 Parent(s): 5578ffc

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +128 -0
app.py CHANGED
@@ -0,0 +1,128 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ import pandas as pd
3
+ import sqlite3
4
+ from datetime import datetime
5
+
6
+ # Database connection
7
+ conn = sqlite3.connect('cafm.db', check_same_thread=False)
8
+ c = conn.cursor()
9
+
10
+ # Database initialization
11
+ def create_tables():
12
+ c.execute('''
13
+ CREATE TABLE IF NOT EXISTS assets (
14
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
15
+ site_name TEXT,
16
+ asset_name TEXT,
17
+ asset_type TEXT,
18
+ maintenance_history TEXT,
19
+ warranty TEXT,
20
+ current_condition TEXT
21
+ )
22
+ ''')
23
+ c.execute('''
24
+ CREATE TABLE IF NOT EXISTS work_orders (
25
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
26
+ site_name TEXT,
27
+ work_order_description TEXT,
28
+ assigned_to TEXT,
29
+ status TEXT,
30
+ created_at TEXT
31
+ )
32
+ ''')
33
+ c.execute('''
34
+ CREATE TABLE IF NOT EXISTS preventive_maintenance (
35
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
36
+ site_name TEXT,
37
+ task_name TEXT,
38
+ schedule_date TEXT,
39
+ status TEXT
40
+ )
41
+ ''')
42
+
43
+ create_tables()
44
+
45
+ # Sidebar Navigation
46
+ st.sidebar.title("CAFM System")
47
+ menu = st.sidebar.selectbox("Menu", ["Asset Management", "Work Order Management", "Preventive Maintenance", "Reporting & Analytics"])
48
+
49
+ # Asset Management
50
+ if menu == "Asset Management":
51
+ st.title("Asset Management")
52
+ site_name = st.text_input("Site Name")
53
+ asset_name = st.text_input("Asset Name")
54
+ asset_type = st.text_input("Asset Type")
55
+ maintenance_history = st.text_area("Maintenance History")
56
+ warranty = st.text_input("Warranty (e.g., 1 year)")
57
+ current_condition = st.selectbox("Current Condition", ["Good", "Needs Repair", "Critical"])
58
+
59
+ if st.button("Add Asset"):
60
+ c.execute('''
61
+ INSERT INTO assets (site_name, asset_name, asset_type, maintenance_history, warranty, current_condition)
62
+ VALUES (?, ?, ?, ?, ?, ?)
63
+ ''', (site_name, asset_name, asset_type, maintenance_history, warranty, current_condition))
64
+ conn.commit()
65
+ st.success("Asset added successfully!")
66
+
67
+ st.subheader("Asset List")
68
+ assets = pd.read_sql_query("SELECT * FROM assets", conn)
69
+ st.dataframe(assets)
70
+
71
+ # Work Order Management
72
+ elif menu == "Work Order Management":
73
+ st.title("Work Order Management")
74
+ site_name = st.text_input("Site Name")
75
+ work_order_description = st.text_area("Work Order Description")
76
+ assigned_to = st.text_input("Assigned To")
77
+ status = st.selectbox("Status", ["Pending", "In Progress", "Completed"])
78
+
79
+ if st.button("Create Work Order"):
80
+ c.execute('''
81
+ INSERT INTO work_orders (site_name, work_order_description, assigned_to, status, created_at)
82
+ VALUES (?, ?, ?, ?, ?)
83
+ ''', (site_name, work_order_description, assigned_to, status, datetime.now().strftime("%Y-%m-%d %H:%M:%S")))
84
+ conn.commit()
85
+ st.success("Work order created successfully!")
86
+
87
+ st.subheader("Work Orders")
88
+ work_orders = pd.read_sql_query("SELECT * FROM work_orders", conn)
89
+ st.dataframe(work_orders)
90
+
91
+ # Preventive Maintenance
92
+ elif menu == "Preventive Maintenance":
93
+ st.title("Preventive Maintenance")
94
+ site_name = st.text_input("Site Name")
95
+ task_name = st.text_input("Task Name")
96
+ schedule_date = st.date_input("Schedule Date")
97
+ status = st.selectbox("Status", ["Scheduled", "Completed"])
98
+
99
+ if st.button("Schedule Task"):
100
+ c.execute('''
101
+ INSERT INTO preventive_maintenance (site_name, task_name, schedule_date, status)
102
+ VALUES (?, ?, ?, ?)
103
+ ''', (site_name, task_name, schedule_date, status))
104
+ conn.commit()
105
+ st.success("Task scheduled successfully!")
106
+
107
+ st.subheader("Scheduled Maintenance")
108
+ maintenance = pd.read_sql_query("SELECT * FROM preventive_maintenance", conn)
109
+ st.dataframe(maintenance)
110
+
111
+ # Reporting & Analytics
112
+ elif menu == "Reporting & Analytics":
113
+ st.title("Reporting & Analytics")
114
+ st.subheader("Asset Overview")
115
+ asset_data = pd.read_sql_query("SELECT site_name, COUNT(*) as total_assets FROM assets GROUP BY site_name", conn)
116
+ st.dataframe(asset_data)
117
+
118
+ st.subheader("Work Order Summary")
119
+ work_order_data = pd.read_sql_query("SELECT site_name, COUNT(*) as total_work_orders FROM work_orders GROUP BY site_name", conn)
120
+ st.dataframe(work_order_data)
121
+
122
+ st.subheader("Maintenance Tasks Overview")
123
+ maintenance_data = pd.read_sql_query("SELECT site_name, COUNT(*) as total_tasks FROM preventive_maintenance GROUP BY site_name", conn)
124
+ st.dataframe(maintenance_data)
125
+
126
+ # Close database connection
127
+ conn.close()
128
+