This is a quick prototype of a web application, built to help me review for the Chemical Engineering Board Exams. The Problem Set Generator randomly samples questions from a CSV data source and presents them in a quiz format, similar to what you would find in the "Canvas" Learning Management System. After answering the problem set, the app also provides graphs and statistics to analyze my performance.
demo.mp4
- Clone this repository to your local machine.
- Install the required dependencies by running
pip install -r requirements.txt
. - Set the required secrets in the
.streamlit/secrets.toml
file.QNA_CSV
: Path to the CSV file containing the question and answer data.ACCESS_KEY
: Access key for the generator.
- Run the application using the command
streamlit run App.py
.
The format of the CSV file should be as follows:
ID | Question | Choices | Answer | Tags |
---|---|---|---|---|
1 | If aspirin is made using the raw materials salicylic acid and acetic anhydride with a yield of 75%, how many grams of aspirin will be produced? | 1; 30; 25; 15 | 15 | PCP; General Chemistry |
2 | How many beta particles are emitted in the decomposition of ${\ }^{238}{92} \text{ U }$ to ${\ }^{208}{82} \text{ Pb }$? | 6; 2; 8; 4 | 8 | PCP; Energy Engineering |
3 | Give the mass empirical formula of the following compound if a sample contains |
C12H9O6; C8H6O4; C2HO; C4H3O2 | C4H3O2 | General Chemistry; PCP |
Show CSV
"ID","Question","Choices","Answer","Tags"
"1","If **aspirin** is made using the raw materials salicylic acid and acetic anhydride with a yield of 75%, how many grams of aspirin will be produced?","1; 30; 25; 15","15","PCP; General Chemistry"
"2","How many beta particles are emitted in the decomposition of ${\ }^{238}_{92} ext{ U }$ to ${\ }^{208}_{82} \text{ Pb }$?","6; 2; 8; 4","8","PCP; Energy Engineering"
"3","Give the mass empirical formula of the following compound if a sample contains $57.8\%\ \text{C}$, $36\%\ \text{H}$, and $38.6\%\ \text{O}$ by mass.","C12H9O6; C8H6O4; C2HO; C4H3O2","C4H3O2","General Chemistry; PCP"
- Launch the app by executing the command mentioned above.
- The homepage will appear, providing brief instructions on using the app.
- Click on the "Generate Problem Set" button to create a new set of random questions.
- The app will generate a problem set containing multiple choice questions.
- Answer each question by selecting the appropriate option.
- After completing the problem set, click on the "Submit" button to view your performance summary.
- The app will display graphs and statistics showing your performance, including score distribution, question difficulty analysis, and time taken for each question.
This prototype can be extended in several ways to enhance its functionality:
- Integration with a larger question database to provide a wider range of topics and difficulty levels.
- Adding support for different question types (e.g., fill in the blanks, matching) to diversify problem sets.
- Allowing users to customize problem sets based on specific topics or exam categories (already implemented using "OR" tags).
- Implementing user authentication to track progress and provide personalized recommendations for improvement.