IsaacKerson commited on
Commit
7a2c0f7
1 Parent(s): 568b638

refactor app.py

Browse files
Files changed (1) hide show
  1. app.py +84 -70
app.py CHANGED
@@ -5,85 +5,99 @@ import datetime
5
 
6
  # Custom imports
7
  from multipage import MultiPage
8
- from pages import upload
9
- from pages.utils import add_blanks, chunker, random_session_id, check_answer
10
-
11
- DATABASE = 'vocabulary.db'
12
-
13
- def db_connect(database):
14
- conn = sqlite3.connect(database)
15
- c = conn.cursor()
16
- return c, conn
17
-
18
- def form_callback(questions):
19
- st.session_state.form_submit = True
20
- num_correct = 0
21
- session_id = random_session_id()
22
- student_id = 'UKWN'
23
- uct_iso = datetime.datetime.utcnow().isoformat()
24
- st.title("Feedback")
25
- for idx, items in enumerate(questions):
26
- answer = st.session_state[idx]
27
- correct_str = 'incorrect'
28
- correct_int = 0
29
- if check_answer(items[1], answer):
30
- correct_str = 'correct'
31
- correct_int = 1
32
- num_correct += 1
33
- st.success(f"Question {idx + 1}")
34
- else:
35
- st.error(f"Question {idx + 1}")
36
- st.write(f"{items[3]}")
37
- st.write(f"Answer: {items[1]}")
38
- st.write(f"Your answer: {answer}")
39
- st.write(f"You are {correct_str}.")
40
- insert_tup = (student_id, session_id, uct_iso, items[1], items[2], answer, correct_int, )
41
- c, conn = db_connect(DATABASE)
42
- c.execute("INSERT INTO responses VALUES (?, ?, ?, ?, ?, ?, ?)", insert_tup)
43
- conn.commit()
44
- conn.close()
45
- score_val = 100 * num_correct / len(questions)
46
- st.metric(label="Final Score", value=f"{score_val}%")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
47
 
48
- if "form_submit" not in st.session_state:
49
- c, conn = db_connect(DATABASE)
50
 
51
- units_list = []
52
- for item in c.execute("SELECT DISTINCT unit FROM vocab"):
53
- units_list.append(item[0])
54
 
55
- st.title("Sentence Completion")
56
- st.selectbox('Select a unit.', units_list, key='unit')
57
- st.selectbox('How many question do you want?', [5,10,15,20], key='num_q')
58
 
59
- unit = st.session_state.unit
60
- num_q = st.session_state.num_q
61
- input_tup = (unit, num_q)
62
 
63
- st.header(unit)
64
 
65
- st.write("Complete the sentences with the words from the word bank.")
66
 
67
- questions = []
68
- word_bank = []
69
 
70
- query = "SELECT * FROM vocab WHERE unit = ? ORDER BY RANDOM() LIMIT ?"
71
 
72
- for idx, item in enumerate(c.execute(query, input_tup)):
73
- word = item[2]
74
- word_bank.append(word)
75
- sentence = item[4]
76
- questions.append((idx, word, sentence, add_blanks(word, sentence)))
77
 
78
- st.subheader("Word Bank")
79
- random.shuffle(word_bank)
80
- st.table(chunker(word_bank, 5))
81
 
82
- with st.form("sentence_completion"):
83
- for q in questions:
84
- st.text_input(f'{q[0] + 1}. {q[3]}', key=q[0], placeholder="Type answer here")
85
- submitted = st.form_submit_button(label="Submit", on_click=form_callback, args=(questions,))
86
- if submitted:
87
- st.write("Submitted")
88
- conn.close()
89
 
 
5
 
6
  # Custom imports
7
  from multipage import MultiPage
8
+ from pages import quiz, upload
9
+ # from pages.utils import add_blanks, chunker, random_session_id, check_answer
10
+
11
+ # Create an instance of the app
12
+ app = MultiPage()
13
+
14
+ # Title of the main page
15
+ st.title("Quiz Maker")
16
+
17
+ # Add all your application here
18
+ app.add_page("Quiz", quiz.app)
19
+ app.add_page("Upload", upload.app)
20
+
21
+ # The main app
22
+ app.run()
23
+
24
+
25
+ # DATABASE = 'vocabulary.db'
26
+
27
+ # def db_connect(database):
28
+ # conn = sqlite3.connect(database)
29
+ # c = conn.cursor()
30
+ # return c, conn
31
+
32
+ # def form_callback(questions):
33
+ # st.session_state.form_submit = True
34
+ # num_correct = 0
35
+ # session_id = random_session_id()
36
+ # student_id = 'UKWN'
37
+ # uct_iso = datetime.datetime.utcnow().isoformat()
38
+ # st.title("Feedback")
39
+ # for idx, items in enumerate(questions):
40
+ # answer = st.session_state[idx]
41
+ # correct_str = 'incorrect'
42
+ # correct_int = 0
43
+ # if check_answer(items[1], answer):
44
+ # correct_str = 'correct'
45
+ # correct_int = 1
46
+ # num_correct += 1
47
+ # st.success(f"Question {idx + 1}")
48
+ # else:
49
+ # st.error(f"Question {idx + 1}")
50
+ # st.write(f"{items[3]}")
51
+ # st.write(f"Answer: {items[1]}")
52
+ # st.write(f"Your answer: {answer}")
53
+ # st.write(f"You are {correct_str}.")
54
+ # insert_tup = (student_id, session_id, uct_iso, items[1], items[2], answer, correct_int, )
55
+ # c, conn = db_connect(DATABASE)
56
+ # c.execute("INSERT INTO responses VALUES (?, ?, ?, ?, ?, ?, ?)", insert_tup)
57
+ # conn.commit()
58
+ # conn.close()
59
+ # score_val = 100 * num_correct / len(questions)
60
+ # st.metric(label="Final Score", value=f"{score_val}%")
61
 
62
+ # if "form_submit" not in st.session_state:
63
+ # c, conn = db_connect(DATABASE)
64
 
65
+ # units_list = []
66
+ # for item in c.execute("SELECT DISTINCT unit FROM vocab"):
67
+ # units_list.append(item[0])
68
 
69
+ # st.title("Sentence Completion")
70
+ # st.selectbox('Select a unit.', units_list, key='unit')
71
+ # st.selectbox('How many question do you want?', [5,10,15,20], key='num_q')
72
 
73
+ # unit = st.session_state.unit
74
+ # num_q = st.session_state.num_q
75
+ # input_tup = (unit, num_q)
76
 
77
+ # st.header(unit)
78
 
79
+ # st.write("Complete the sentences with the words from the word bank.")
80
 
81
+ # questions = []
82
+ # word_bank = []
83
 
84
+ # query = "SELECT * FROM vocab WHERE unit = ? ORDER BY RANDOM() LIMIT ?"
85
 
86
+ # for idx, item in enumerate(c.execute(query, input_tup)):
87
+ # word = item[2]
88
+ # word_bank.append(word)
89
+ # sentence = item[4]
90
+ # questions.append((idx, word, sentence, add_blanks(word, sentence)))
91
 
92
+ # st.subheader("Word Bank")
93
+ # random.shuffle(word_bank)
94
+ # st.table(chunker(word_bank, 5))
95
 
96
+ # with st.form("sentence_completion"):
97
+ # for q in questions:
98
+ # st.text_input(f'{q[0] + 1}. {q[3]}', key=q[0], placeholder="Type answer here")
99
+ # submitted = st.form_submit_button(label="Submit", on_click=form_callback, args=(questions,))
100
+ # if submitted:
101
+ # st.write("Submitted")
102
+ # conn.close()
103