gladguy commited on
Commit
f77cc3a
·
1 Parent(s): 8834f81

Add Year/Level dropdown with MBBS year options

Browse files
Files changed (1) hide show
  1. app.py +21 -11
app.py CHANGED
@@ -32,20 +32,21 @@ def init_database():
32
  id INTEGER PRIMARY KEY AUTOINCREMENT,
33
  name TEXT NOT NULL,
34
  medical_school TEXT NOT NULL,
 
35
  registration_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP
36
  )
37
  """)
38
  conn.commit()
39
  conn.close()
40
 
41
- def save_student(name, medical_school):
42
  """Save student information to the database."""
43
  try:
44
  conn = sqlite3.connect(DB_PATH)
45
  cursor = conn.cursor()
46
  cursor.execute(
47
- "INSERT INTO students (name, medical_school) VALUES (?, ?)",
48
- (name, medical_school)
49
  )
50
  conn.commit()
51
  conn.close()
@@ -59,7 +60,7 @@ def get_all_students():
59
  try:
60
  conn = sqlite3.connect(DB_PATH)
61
  cursor = conn.cursor()
62
- cursor.execute("SELECT id, name, medical_school, registration_date FROM students ORDER BY registration_date DESC")
63
  students = cursor.fetchall()
64
  conn.close()
65
  return students
@@ -739,6 +740,12 @@ with gr.Blocks(title="AnatomyBot - MBBS Anatomy Tutor") as demo:
739
  lines=1,
740
  scale=1
741
  )
 
 
 
 
 
 
742
  welcome_submit_btn = gr.Button(
743
  "🚀 Start Learning",
744
  variant="primary",
@@ -958,7 +965,7 @@ with gr.Blocks(title="AnatomyBot - MBBS Anatomy Tutor") as demo:
958
  logout_btn = gr.Button("🚪 Logout", variant="secondary")
959
 
960
  students_table = gr.Dataframe(
961
- headers=["ID", "Name", "Medical School", "Registration Date"],
962
  label="Students Database",
963
  interactive=False,
964
  wrap=True
@@ -967,7 +974,7 @@ with gr.Blocks(title="AnatomyBot - MBBS Anatomy Tutor") as demo:
967
 
968
 
969
  # Welcome Screen Handler
970
- def handle_welcome_submit(name, medical_school):
971
  """Handle welcome screen submission."""
972
  if not name or not name.strip():
973
  return gr.update(), gr.update(), gr.update(), gr.update(), "" # Don't proceed if name is empty
@@ -975,10 +982,13 @@ with gr.Blocks(title="AnatomyBot - MBBS Anatomy Tutor") as demo:
975
  if not medical_school or not medical_school.strip():
976
  return gr.update(), gr.update(), gr.update(), gr.update(), "" # Don't proceed if medical school is empty
977
 
 
 
 
978
  # Save to database
979
- save_student(name.strip(), medical_school.strip())
980
 
981
- greeting = f"**Welcome, Doctor {name}!** 👋 from {medical_school}"
982
  return (
983
  gr.update(visible=False), # Hide welcome screen
984
  gr.update(visible=True), # Show main app
@@ -989,20 +999,20 @@ with gr.Blocks(title="AnatomyBot - MBBS Anatomy Tutor") as demo:
989
 
990
  welcome_submit_btn.click(
991
  fn=handle_welcome_submit,
992
- inputs=[welcome_name_input, welcome_school_input],
993
  outputs=[welcome_screen, main_app, tabs, student_name_display, student_name_state]
994
  )
995
 
996
  # Also allow Enter key to submit
997
  welcome_name_input.submit(
998
  fn=handle_welcome_submit,
999
- inputs=[welcome_name_input, welcome_school_input],
1000
  outputs=[welcome_screen, main_app, tabs, student_name_display, student_name_state]
1001
  )
1002
 
1003
  welcome_school_input.submit(
1004
  fn=handle_welcome_submit,
1005
- inputs=[welcome_name_input, welcome_school_input],
1006
  outputs=[welcome_screen, main_app, tabs, student_name_display, student_name_state]
1007
  )
1008
 
 
32
  id INTEGER PRIMARY KEY AUTOINCREMENT,
33
  name TEXT NOT NULL,
34
  medical_school TEXT NOT NULL,
35
+ year TEXT NOT NULL,
36
  registration_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP
37
  )
38
  """)
39
  conn.commit()
40
  conn.close()
41
 
42
+ def save_student(name, medical_school, year):
43
  """Save student information to the database."""
44
  try:
45
  conn = sqlite3.connect(DB_PATH)
46
  cursor = conn.cursor()
47
  cursor.execute(
48
+ "INSERT INTO students (name, medical_school, year) VALUES (?, ?, ?)",
49
+ (name, medical_school, year)
50
  )
51
  conn.commit()
52
  conn.close()
 
60
  try:
61
  conn = sqlite3.connect(DB_PATH)
62
  cursor = conn.cursor()
63
+ cursor.execute("SELECT id, name, medical_school, year, registration_date FROM students ORDER BY registration_date DESC")
64
  students = cursor.fetchall()
65
  conn.close()
66
  return students
 
740
  lines=1,
741
  scale=1
742
  )
743
+ welcome_year_input = gr.Dropdown(
744
+ label="Year/Level",
745
+ choices=["MBBS 1st Year", "MBBS 2nd Year", "MBBS 3rd Year", "MBBS Final Year", "Intern"],
746
+ value=None,
747
+ interactive=True
748
+ )
749
  welcome_submit_btn = gr.Button(
750
  "🚀 Start Learning",
751
  variant="primary",
 
965
  logout_btn = gr.Button("🚪 Logout", variant="secondary")
966
 
967
  students_table = gr.Dataframe(
968
+ headers=["ID", "Name", "Medical School", "Year", "Registration Date"],
969
  label="Students Database",
970
  interactive=False,
971
  wrap=True
 
974
 
975
 
976
  # Welcome Screen Handler
977
+ def handle_welcome_submit(name, medical_school, year):
978
  """Handle welcome screen submission."""
979
  if not name or not name.strip():
980
  return gr.update(), gr.update(), gr.update(), gr.update(), "" # Don't proceed if name is empty
 
982
  if not medical_school or not medical_school.strip():
983
  return gr.update(), gr.update(), gr.update(), gr.update(), "" # Don't proceed if medical school is empty
984
 
985
+ if not year:
986
+ return gr.update(), gr.update(), gr.update(), gr.update(), "" # Don't proceed if year is not selected
987
+
988
  # Save to database
989
+ save_student(name.strip(), medical_school.strip(), year)
990
 
991
+ greeting = f"**Welcome, Doctor {name}!** 👋 from {medical_school} ({year})"
992
  return (
993
  gr.update(visible=False), # Hide welcome screen
994
  gr.update(visible=True), # Show main app
 
999
 
1000
  welcome_submit_btn.click(
1001
  fn=handle_welcome_submit,
1002
+ inputs=[welcome_name_input, welcome_school_input, welcome_year_input],
1003
  outputs=[welcome_screen, main_app, tabs, student_name_display, student_name_state]
1004
  )
1005
 
1006
  # Also allow Enter key to submit
1007
  welcome_name_input.submit(
1008
  fn=handle_welcome_submit,
1009
+ inputs=[welcome_name_input, welcome_school_input, welcome_year_input],
1010
  outputs=[welcome_screen, main_app, tabs, student_name_display, student_name_state]
1011
  )
1012
 
1013
  welcome_school_input.submit(
1014
  fn=handle_welcome_submit,
1015
+ inputs=[welcome_name_input, welcome_school_input, welcome_year_input],
1016
  outputs=[welcome_screen, main_app, tabs, student_name_display, student_name_state]
1017
  )
1018