Project Info
Inspiration
One of the most universal experiences of childhood is storytelling—whether through books, TV shows, or cherished tales passed down by loved ones. Storytelling is at the heart of human existence, shaping young minds, imparting valuable lessons, and creating lasting memories. Beyond the wisdom these stories carry, early engagement with reading is one of the strongest predictors of future success. It's clear that storytelling plays a crucial role in a child's development—but what stories are available for them to read? Many traditional fairytales and popular children's books fail to truly reflect a child’s unique culture, identity, and personal experiences. Meanwhile, parents often struggle to create engaging, meaningful stories on the spot—ones that not only captivate their children but also instill a lifelong love of reading. Enter StoryTime—a personalized digital storytelling experience designed to bring inclusivity, creativity, and educational value to every child’s bedtime story.
What it does
StoryTime generates custom, interactive storybooks based on a child’s profile and a lesson or theme chosen by the parent. It features AI-generated stories tailored to the child’s background and interests, and narrated audio to bring the stories to life. There are AI-generated animations for every page, making the experience more immersive. Our platform is also hands-free and accessible, with the capability to simply talk to the platform and watch your story unfold. StoryTime allows children to have their own personal library with engaging, educational books at their fingertips.
How we built it
Our tech stack includes: FastAPI for backend development. OpenAI’s GPT models to generate personalized stories, and their text to speech API for narration OpenAI’s Whisper model for speech-to-text functionality. LumaAI to generate AI-powered video content. React & Figma for a seamless and visually engaging frontend experience.
Challenges we ran into
Some challenges we ran into was video latency. Generating videos took around 15-20 seconds per page, which posed a challenge in maintaining a smooth reading experience. To counter this, we implemented background processing, ensuring videos generate progressively while the user reads or listens to the story. This way, the next video is ready just in time. Additionally, integrating OpenAI’s Whisper model with our frontend posed technical challenges. Handling different file formats and ensuring smooth real-time transcription required multiple iterations.
Accomplishments we're proud of
We are proud of having a fully functional, end-to-end product that aligns with our original vision. There is seamless AI integration across storytelling, voice narration, and video generation. Most importantly, our platform makes personalized storytelling more engaging and representative of diverse cultures.
What we learned
We learned about seamlessly integrating between the frontend and the backend, as well as being able to use Luma's product and prompt engineer to get as consistent of videos as possible. We also learned how to handle asynchronous generation efficiently.
What's next
We want to work on having better video consistency and ensuring character and style continuity across pages. We would also like to experiment with extended animations and video lengths for richer storytelling, and give users more opportunities to customize their story, including animation styles, narration voices, and more. We would also like to add the capability of live interruption, where children can stop the flow of the story as it is generating and change the plot, characters, or anything else, and the story will accordingly adjust.
Analysis
View
Metric
- 49
- 29
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
- CSSIn code
- HTMLIn code
- JavaScriptIn code
- OpenAIIn code
- PythonIn code
- ReactIn code
- Tailwind CSSIn code
7 of 7 appear in the indexed code.
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
45 KB
Source files
21
Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.
Repository
naishagarwal/treehacks-2025-personalized-storybook
34 files · 1.1 MB · @ 9e4c5a8
Structure
Interface
10 files · 29%Screens, components and styles rendered to the user.
Application logic
9 files · 26%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
- JavaScript57%
- Python36%
- CSS6%
- HTML1%
- Markdown1%
Share of indexed source by file size. Binary and vendored files are excluded.
Dependencies
frontend/package.json
npm · 14- @tailwindcss/forms
- @tailwindcss/postcss
- autoprefixer
- howler
- postcss
- react
- react-dom
- react-icons
- react-router-dom
- react-scripts
- tailwindcss
- three
- +2 more
requirements.txt
pypi · 4- google-genai
- lumaai
- openai
- tinydb
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.
This project’s features have not been analysed yet.
Export this project's context (description, README, evidence, key source files) to chat with an AI agent elsewhere.