AddisonSwan commited on
Commit
1e0412e
Β·
verified Β·
1 Parent(s): 1652ccd

Update data_app.py

Browse files
Files changed (1) hide show
  1. data_app.py +32 -33
data_app.py CHANGED
@@ -2,40 +2,29 @@ import streamlit as st
2
  import pandas as pd
3
  from datetime import datetime
4
  import os
5
- from huggingface_hub import HfApi, snapshot_download
6
 
7
  st.set_page_config(page_title="πŸ”§ Service Tech Tracker", layout="wide")
8
  st.title("πŸ”§ Service Tech Fuel & Job Tracker")
9
 
10
- # ====================== HF DATASET SETUP ======================
11
- HF_REPO = "AddisonSwan/service-tech-tracker"
12
  HF_TOKEN = st.secrets.get("HF_TOKEN")
 
 
13
 
14
- def load_mileage():
15
- try:
16
- # Try to download latest data
17
- snapshot_download(repo_id=HF_REPO, repo_type="dataset", allow_patterns="mileage.csv", token=HF_TOKEN)
18
- return pd.read_csv("mileage.csv")
19
- except:
20
- return pd.DataFrame(columns=["Date", "Country", "Region", "Price", "Miles", "Type", "Notes"])
21
 
22
- def save_mileage(df):
23
- df.to_csv("mileage.csv", index=False)
24
- try:
25
- api = HfApi(token=HF_TOKEN)
26
- api.upload_file(
27
- path_or_fileobj="mileage.csv",
28
- path_in_repo="mileage.csv",
29
- repo_id=HF_REPO,
30
- repo_type="dataset"
31
- )
32
- st.success("βœ… Saved to Hugging Face Dataset")
33
- except:
34
- st.warning("Saved locally only")
35
 
36
- # Create local folders
37
  os.makedirs("data", exist_ok=True)
38
- os.makedirs("jobs", exist_ok=True)
39
 
40
  page = st.sidebar.radio("Go to", ["Gas & Mileage", "New Job", "All Data"])
41
 
@@ -63,13 +52,18 @@ if page == "Gas & Mileage":
63
  "Notes": notes
64
  }])
65
 
66
- df = load_mileage()
67
- df = pd.concat([df, new_row], ignore_index=True)
68
- save_mileage(df)
69
-
70
- df = load_mileage()
71
- if not df.empty:
72
- st.dataframe(df)
 
 
 
 
 
73
 
74
  elif page == "New Job":
75
  st.subheader("πŸ“ New Job")
@@ -80,4 +74,9 @@ elif page == "New Job":
80
  os.makedirs(f"jobs/{job_id}", exist_ok=True)
81
  st.success(f"Job {job_id} created!")
82
 
83
- st.caption("Connected to Hugging Face Dataset β€’ Private Cloud Backup")
 
 
 
 
 
 
2
  import pandas as pd
3
  from datetime import datetime
4
  import os
5
+ from huggingface_hub import HfApi
6
 
7
  st.set_page_config(page_title="πŸ”§ Service Tech Tracker", layout="wide")
8
  st.title("πŸ”§ Service Tech Fuel & Job Tracker")
9
 
10
+ # ====================== HF TOKEN SETUP ======================
 
11
  HF_TOKEN = st.secrets.get("HF_TOKEN")
12
+ if not HF_TOKEN:
13
+ HF_TOKEN = st.sidebar.text_input("Enter your HF Token (for backup)", type="password")
14
 
15
+ HF_REPO = "AddisonSwan/service-tech-tracker"
 
 
 
 
 
 
16
 
17
+ def backup_to_hf(filename="mileage.csv"):
18
+ if HF_TOKEN and os.path.exists(filename):
19
+ try:
20
+ api = HfApi(token=HF_TOKEN)
21
+ api.upload_file(path_or_fileobj=filename, path_in_repo=filename, repo_id=HF_REPO, repo_type="dataset")
22
+ st.success("βœ… Backed up to Hugging Face")
23
+ except:
24
+ st.warning("Backup failed - check token")
 
 
 
 
 
25
 
26
+ # Create folders
27
  os.makedirs("data", exist_ok=True)
 
28
 
29
  page = st.sidebar.radio("Go to", ["Gas & Mileage", "New Job", "All Data"])
30
 
 
52
  "Notes": notes
53
  }])
54
 
55
+ try:
56
+ df = pd.read_csv("data/mileage.csv")
57
+ df = pd.concat([df, new_row], ignore_index=True)
58
+ except:
59
+ df = new_row
60
+ df.to_csv("data/mileage.csv", index=False)
61
+
62
+ backup_to_hf("data/mileage.csv")
63
+ st.success("βœ… Saved!")
64
+
65
+ if os.path.exists("data/mileage.csv"):
66
+ st.dataframe(pd.read_csv("data/mileage.csv"))
67
 
68
  elif page == "New Job":
69
  st.subheader("πŸ“ New Job")
 
74
  os.makedirs(f"jobs/{job_id}", exist_ok=True)
75
  st.success(f"Job {job_id} created!")
76
 
77
+ elif page == "All Data":
78
+ st.subheader("All Records")
79
+ if os.path.exists("data/mileage.csv"):
80
+ st.dataframe(pd.read_csv("data/mileage.csv"))
81
+
82
+ st.caption("Service Tech Tracker β€’ Connected to HF")