-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathapp.py
More file actions
63 lines (53 loc) · 2.24 KB
/
Copy pathapp.py
File metadata and controls
63 lines (53 loc) · 2.24 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
import streamlit as st
import requests
import pandas as pd
st.title("Project Management App")
#Developer form
st.header("Add a developer")
dev_name = st.text_input("Developer name")
dev_experience = st.number_input("Experience (Years)", min_value=0, max_value=50, value=0)
if st.button("Create developer"):
dev_data = {
"name": dev_name,
"experience": dev_experience
}
response = requests.post("http://127.0.0.1:8000/developers/", json=dev_data)
st.json(response.json())
# Project Form
st.header("Add a Project")
proj_title = st.text_input("Project Title")
proj_desc = st.text_area("Project Description")
proj_langs = st.text_input("Languages Used (Comma-separated)")
lead_dev_name = st.text_input("Lead Developer Name")
lead_dev_exp = st.number_input("Lead Developer Experience (Years)", min_value=0, max_value=50, value=0)
if st.button("Create Project"):
lead_dev_data = {"name": lead_dev_name, "experience": lead_dev_exp}
proj_data = {
"title": proj_title,
"description": proj_desc,
"languages": proj_langs.split(","),
"lead_developer": lead_dev_data
}
response = requests.post("http://localhost:8000/projects/", json=proj_data)
st.json(response.json())
# Display Projects in a Dashboard Format
st.header("Project Dashboard")
if st.button("Get Projects"):
response = requests.get("http://localhost:8000/projects/")
projects_data = response.json()['projects']
if projects_data:
# Convert the projects data to a DataFrame for easier manipulation
projects_df = pd.DataFrame(projects_data)
# Display projects in a table
st.subheader("Projects Overview")
st.dataframe(projects_df)
# Display a list of projects with their details
st.subheader("Project Details")
for project in projects_data:
st.markdown(f"**Title:** {project['title']}")
st.markdown(f"**Description:** {project['description']}")
st.markdown(f"**Languages:** {', '.join(project['languages'])}")
st.markdown(f"**Lead Developer:** {project['lead_developer']['name']} with {project['lead_developer']['experience']} years of experience")
st.markdown("---")
else:
st.warning("No projects found.")