Project Info
Inspiration
As a multi-disciplinary team, each team member preferred different learning styles. As we discussed project ideas, we shared a common thread: often, we'd struggle with a class or concept not because it was hard, but because we struggled with the teaching style. Our inspiration was bringing the "Aha!" moment to students across the world and personalizing their experiences to improve their learning through AI and technology.
What it does
Our platform provides the necessary support to foster a growth mindset while promoting full engagement in education for both students and instructors. Teach It allows teachers to upload a range of resources based on their syllabi topics. Each of these resources gets sorted based on the tag the teacher assigns them: "auditory", "visual", or "interactive." Next, their students get to pick their preferred learning style and see the resources the teacher provided and labeled. They are free to pick more than one, or all three if so inclined, and can change their preference as the semester goes on. Finally, our AI summarizes the documents provided by the teacher and creates quizzes that are standardized across learning methods. This ensures each student is being tested on the same level as their peers.
How we built it
We used Reflex, one of the CalHacks sponsors' products, and coded both the front and back-end in Python. We also used OpenAI to create a quizzing structure to test the students.
Challenges we ran into
We ran into a few issues initially when creating our team, as one of our members left early on, but we were able to come up with our idea and start working on it soon after. One of our team members had technical issues when trying to run the website, but thanks to the CalHacks mentors and the sponsors tabling for Reflex, we were able to get past it!
Accomplishments we're proud of
This is our first hackathon, and we're proud of all the effort we put into this! Even though we had a rough start, we were able to build something we're all passionate about. :)
What we learned
We learned how to use Reflex, push and pull Git code from the VSCode terminal, use LLMs, and how to do front-end and back-end.
What's next
After this hackathon, we want to continue working on this project and improving it! By providing it to peers, we can get a better idea how we can make it better and better help students.
Note: DO NOT RUN 'reflex init'. It will create a new reflex.dev project inside and mess up the whole project. In the directory with rxconfig.py, run 'reflex run'. Also when pushing a new change, DO NOT have any OpenAI keys or any other keys. This will prevent it from being pushed and is a security problem.
Presentation Link: https://www.canva.com/design/DAGUHEmuAEE/_RoJgMNQnHCybfh5zI09nQ/edit?utm_content=DAGUHEmuAEE&utm_campaign=designshare&utm_medium=link2&utm_source=sharebutton
Analysis
View
Metric
- 5
- 5
Figures cover GitHub contributors during the hackathon window. A co-authored commit counts in full for each author, so per-member totals add up to more than the whole-team figures.
Technology
- OpenAIIn code
- PythonIn code
- HTMLClaimed
2 of 3 appear in the indexed code. 1 claimed on Devpost could not be matched to code, which may simply mean the tool leaves no trace in the repository.
AI coding agents
No AI coding agent signals were found in this repository.
Detected from committed agent config files and commit authorship. Absence of a signal is not proof an agent was unused.
Codebase size
Source size
24 KB
Source files
12
Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.
Repository
GiwinEdwin09/TeachIt
15 files · 29 KB · @ 9c20654
Structure
Interface
8 files · 53%Screens, components and styles rendered to the user.
Application logic
3 files · 20%Domain rules, services and shared utilities.
Supporting
Layers are inferred from where files sit in the tree, not from reading the code. A project that names its directories unconventionally will read oddly here — open the file browser to check anything the diagram implies.
Languages
- Python98%
- Markdown2%
Share of indexed source by file size. Binary and vendored files are excluded.
Dependencies
requirements.txt
pypi · 18- beautifulsoup4
- chromadb
- google-cloud-aiplatform
- gptcache
- grpcio-status
- h2
- httptools
- langchain-cohere
- openai
- pdfplumber
- pip-check
- pypdf
- pysbd
- qdrant-client
- schema
- tiktoken
- uvloop
- watchfiles
Declared in the repository’s manifests at the indexed commit. A declared package is not proof it is used, and runtime dependencies are listed first.
Feature verification
AI generates quizzes from uploaded documents (via OpenAI)Verified
AI creates quizzes that are standardized across learning methods based on the documents provided
Claimed on Devposthigh confidenceCalHacksProject/pages/teacher.py:120— query_openai sends extracted PDF text to gpt-4o with a structured Quiz response_format to generate a 10-question multiple-choice quizCalHacksProject/pages/teacher.py:83— generated quiz questions are saved to QuizModel in the database, tagged with the file's learning style
Built with Reflex (Python front-end and back-end)Verified
We used Reflex... and coded both the front and back-end in Python
Claimed on readmehigh confidencerxconfig.py— Reflex project configuration fileCalHacksProject/CalHacksProject.py:1— app built entirely with reflex (rx) components and rx.App, in Python
OpenAI integration for quiz generationVerified
We also used OpenAI to create a quizzing structure to test the students
Claimed on Devposthigh confidenceCalHacksProject/pages/teacher.py:3— openai package imported and used in query_openai to call gpt-4o for quiz generation
Students select preferred learning style(s)Verified
Students get to pick their preferred learning style, free to pick more than one or all three
Claimed on Devposthigh confidenceCalHacksProject/pages/student.py:33— learningMethods component with three independent Yes/No selects for Visual, Audio, Interactive, each settable independently allowing multiple selections
Teacher uploads resources tagged by learning style (visual/auditory/interactive)Verified
Teach It allows teachers to upload a range of resources and each gets sorted based on the tag the teacher assigns: auditory, visual, or interactive
Claimed on Devposthigh confidenceCalHacksProject/pages/teacher.py:138— rx.upload component lets teachers upload PDF/txt filesCalHacksProject/pages/teacher.py:153— rx.select with options Visual/Audio/Hands On lets teacher tag each uploaded file's learning style, stored via set_learning_style
Students can change learning-style preference over timeCode-supported
Students can change their preference as the semester goes on
Claimed on Devpostlow confidenceCalHacksProject/pages/student.py:13— submit() re-sets visTrue/AudTrue/HandTrue each time the student page is used, but there is no persistent per-student account or storage, so 'changing over the semester' is not backed by any durable state
Students see teacher-provided resources filtered by learning styleCode-supported
Students see the resources the teacher provided and labeled, filtered by their chosen learning style
Claimed on Devpostmedium confidenceCalHacksProject/pages/practice.py:27— load_questions filters QuizModel rows by typeOf matching the student's selected styles, but only quiz questions are surfaced this way; the original uploaded resource files themselves are never displayed back to students anywhere in the code
Students take standardized quizzes testing the same content across stylesCode-supported
Quizzes are standardized across learning methods, ensuring each student is tested on the same level as their peers
Claimed on Devpostmedium confidenceCalHacksProject/pages/practice.py:36— practice page pulls quiz questions filtered by style and lets students answer and get scored, but there is no code verifying that quizzes across different style tags for the same topic are actually equivalent in difficulty/content beyond being generated with the same prompt
AI summarizes uploaded documentsClaimed only
Our AI summarizes the documents provided by the teacher
Claimed on Devposthigh confidence
An AI agent derived these features from the project’s Devpost page and readme, then searched the code for each one. Verified features are backed by cited code; claimed-only features had no supporting code, which is not by itself proof a feature is missing.
Export this project's context (description, README, evidence, key source files) to chat with an AI agent elsewhere.