AddisonSwan commited on
Commit
7a15e11
Β·
verified Β·
1 Parent(s): 71f19a9

Upload data_app.py

Browse files
Files changed (1) hide show
  1. data_app.py +38 -19
data_app.py CHANGED
@@ -2,11 +2,38 @@ import streamlit as st
2
  import pandas as pd
3
  from datetime import datetime
4
  import os
 
5
 
6
  st.set_page_config(page_title="πŸ”§ Service Tech Tracker", layout="wide")
7
  st.title("πŸ”§ Service Tech Fuel & Job Tracker")
8
 
9
- # Create folders
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
10
  os.makedirs("data", exist_ok=True)
11
  os.makedirs("jobs", exist_ok=True)
12
 
@@ -23,11 +50,11 @@ if page == "Gas & Mileage":
23
  price = st.number_input("Gas Price", value=4.50, step=0.01)
24
  miles = st.number_input("Miles Driven", value=0.0)
25
  trip_type = st.radio("Type", ["Work", "Personal"])
26
- notes = st.text_area("Notes (Job #, location, etc.)")
27
 
28
  if st.button("Save Entry"):
29
  new_row = pd.DataFrame([{
30
- "Date": datetime.now().strftime("%Y-%m-%d"),
31
  "Country": country,
32
  "Region": region,
33
  "Price": price,
@@ -36,16 +63,13 @@ if page == "Gas & Mileage":
36
  "Notes": notes
37
  }])
38
 
39
- try:
40
- df = pd.read_csv("data/mileage.csv")
41
- df = pd.concat([df, new_row], ignore_index=True)
42
- except:
43
- df = new_row
44
- df.to_csv("data/mileage.csv", index=False)
45
- st.success("βœ… Saved!")
46
-
47
- if os.path.exists("data/mileage.csv"):
48
- st.dataframe(pd.read_csv("data/mileage.csv"))
49
 
50
  elif page == "New Job":
51
  st.subheader("πŸ“ New Job")
@@ -56,9 +80,4 @@ elif page == "New Job":
56
  os.makedirs(f"jobs/{job_id}", exist_ok=True)
57
  st.success(f"Job {job_id} created!")
58
 
59
- elif page == "All Data":
60
- st.subheader("All Records")
61
- if os.path.exists("data/mileage.csv"):
62
- st.dataframe(pd.read_csv("data/mileage.csv"))
63
-
64
- st.caption("Service Tech Tracker β€’ Hugging Face")
 
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
 
 
50
  price = st.number_input("Gas Price", value=4.50, step=0.01)
51
  miles = st.number_input("Miles Driven", value=0.0)
52
  trip_type = st.radio("Type", ["Work", "Personal"])
53
+ notes = st.text_area("Notes")
54
 
55
  if st.button("Save Entry"):
56
  new_row = pd.DataFrame([{
57
+ "Date": datetime.now().strftime("%Y-%m-%d %H:%M"),
58
  "Country": country,
59
  "Region": region,
60
  "Price": price,
 
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
  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")