Inspiration
As a public school student for the last eleven years of my life, I personally know the feeling of sitting in a classroom with thirty other students and completely zoning out from the lesson. Within our public education system, it is far too easy for students to fall through the cracks despite technological advances. Large class sizes, a dull learning environment, rote memorization, and more contribute to students disengaging from school lessons. To solve this issue, especially for disengaged younger children who need this crucial, base knowledge, I created this app.
What it does
ThinkTales allows children to insert themselves into their own personalized educational adventure. To start, the child inputs their name, age, story idea, and the subject they want to learn. This data is then used by the AI to create the beginning of a captivating story that is presented to the child. After this short story, the child then answers a question pertaining to the subject they want to learn and that connects to the story. They then see the correct answer with a full explanation and can choose between two paths to continue the story based on their multiple-choice response. The story then continues and this process repeats until the child has fully mastered that subject!
How I built it
I built this project using FastAPI for the backend and basic HTML/CSS/JS for the frontend. I first built the frontend and designed it in a playful and fun manner—I used a whimsical handwritten font and a simulated typed story experience. I also built the full JavaScript logic to handle the dynamically changing webpage and endless story feature. I then designed the proper ChatGPT prompt for the project and a backend API using FastAPI. Finally, I patched basic bugs and vulnerabilities by adding things like a rate limit and simple input validation.
Challenges I ran into
I ran into the challenge of having to dynamically create the buttons and new story elements using JavaScript. This was a challenging problem because I had to find a way to create a function that could be reused (following DRY principles) to dynamically create buttons, a simulated typed story, and more. I also ran into the challenge of the ChatGPT prompt giving me incorrect JSON or a bad story. I attempted to fix this issue (to the best of my ability, since AI is not perfect) by re-engineering the prompt continuously based on testing.
Accomplishments that I'm proud of
I'm proud to have finished this full-stack, AI-based project and created a useful, well-thought-out program in only 2 days—especially one that blends storytelling and learning in a creative way.
What I learned
Through this hackathon, I learned how to meaningfully and ethically apply AI to serve real educational goals. By building the project, I have been able to learn how AI can be used to make education more inclusive and accessible for all. Designing for younger children has also helped me improve my UI/UX skills as it has forced me to simplify my design to make it more accessible for others.
What's next for ThinkTales
I hope to spread the project through Social Media and with my local school district. I hope to add an algorithm in the future that makes the education process more impactful and personal by dynamically changing question difficulty based on their answers. I also hope to integrate more gamified and fun features that make learning more attractive, like a ranking system, achievements, story collectibles, avatars, etc. This is only the start for ThinkTales!
Built With
- css3
- fastapi
- html5
- javascript
- json
- openai
- python
- slowapi
- starlette
- uvicorn
Log in or sign up for Devpost to join the conversation.