Sanjayraju30 commited on
Commit
1dad6d2
Β·
verified Β·
1 Parent(s): aef9f14

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +45 -38
app.py CHANGED
@@ -1,38 +1,45 @@
1
- import streamlit as st
2
- from modules.simulator import simulate_data
3
- from modules.filters import apply_filters
4
- from modules.visuals import display_dashboard, display_charts
5
- from modules.salesforce_connector import connect_salesforce, fetch_pole_data_from_salesforce
6
-
7
- st.set_page_config(page_title="Vedavathi Smart Pole Monitoring", layout="wide")
8
- st.title("πŸ“‘ Vedavathi Smart Pole Monitoring - PoC Simulator")
9
-
10
- st.sidebar.header("πŸ› οΈ Simulation Controls")
11
- data_mode = st.sidebar.radio("Data Mode", ["Simulated", "Salesforce"])
12
- num_poles = st.sidebar.slider("Number of Poles", min_value=5, max_value=50, value=10)
13
- simulate_faults = st.sidebar.checkbox("Simulate Random Faults", value=True)
14
-
15
- if data_mode == "Simulated":
16
- df = simulate_data(num_poles, simulate_faults)
17
- else:
18
- try:
19
- sf = connect_salesforce()
20
- df = fetch_pole_data_from_salesforce(sf)
21
- st.success("βœ… Fetched data from Salesforce")
22
- except Exception as e:
23
- st.error(f"❌ Salesforce Error: {e}")
24
- st.stop()
25
- df = simulate_data(num_poles, simulate_faults)
26
-
27
- st.sidebar.header("πŸ“‚ Filter Data")
28
- alert_filter = st.sidebar.multiselect("Alert Level", ["Green", "Yellow", "Red"], default=["Green", "Yellow", "Red"])
29
- cam_filter = st.sidebar.selectbox("Camera Status", ["All", "Online", "Offline"], index=0)
30
-
31
- filtered_df = apply_filters(df, alert_filter, cam_filter)
32
-
33
- display_dashboard(df)
34
-
35
- st.subheader("πŸ“‹ Pole Monitoring Table")
36
- st.dataframe(filtered_df, use_container_width=True)
37
-
38
- display_charts(df)
 
 
 
 
 
 
 
 
1
+ from flask import Flask, jsonify
2
+ import requests
3
+ import urllib.parse
4
+
5
+ app = Flask(__name__)
6
+
7
+ @app.route('/get-salesforce-data')
8
+ def get_salesforce_data():
9
+ access_token = 'YOUR_ACCESS_TOKEN'
10
+ instance_url = 'https://vedavathi3-dev-ed.my.salesforce.com'
11
+
12
+ query = """
13
+ SELECT
14
+ Name,
15
+ Solar_Generation__c,
16
+ Wind_Generation__c,
17
+ Power_Required__c,
18
+ Camera_Status__c,
19
+ Tilt__c,
20
+ Vibration__c,
21
+ Alert_Level__c,
22
+ Power_Sufficient__c
23
+ FROM
24
+ Pole_Monitoring__c
25
+ LIMIT 50
26
+ """
27
+
28
+ encoded_query = urllib.parse.quote(query)
29
+ url = f"{instance_url}/services/data/v59.0/query/?q={encoded_query}"
30
+
31
+ headers = {
32
+ 'Authorization': f'Bearer {access_token}',
33
+ 'Content-Type': 'application/json'
34
+ }
35
+
36
+ response = requests.get(url, headers=headers)
37
+
38
+ if response.status_code == 200:
39
+ data = response.json()
40
+ return jsonify(data['records'])
41
+ else:
42
+ return jsonify({'error': response.text}), response.status_code
43
+
44
+ if __name__ == '__main__':
45
+ app.run(debug=True)