Project Info
Inspiration
Our team grew up around adventure, creativity, and curiosity. Just as the textbooks we studied contributed to our learning, the novels that we read kept us entertained and shaped who we are. With technology now being introduced to younger ages, and advancements in AI being made at a rapid pace, we wanted to bring our current studies and passions to those of the past. Through Dootle, we hope to provide a tech-forward avenue to greater empower children and parents to channel their creativity and storytelling abilities.
What it does
Dootle is an interactive children’s storybook maker. Kids (or kids-at-heart) draw a character in the browser, describe the character and a theme, and Dootle generates a 16‑page picture book with consistent illustrations and optional narration. Some of our Features: Drawing canvas and tools Audio narration User account and authentication Storybook bookshelving and downloading
How we built it
Our frontend was built using React, Tailwind CSS, and NextJS. Our backend was built on Flask and MongoDB, with calls to Gemini, Claude, and ElevenLabs models through OpenRouter. To optimize our process, we used a combination of latency budgeting, prompt engineering, exponential backoff, and parallel computing.
Challenges we ran into
Something incredibly important to us was the child's ability to see an EXACT copy of their character in our story. It took some clever prompt engineering, extraction, and structuring to achieve this.
Accomplishments we're proud of
While our team is experienced, we still leveraged this opportunity to learn more about the software development process, and working with generative models. We really love some of the stories our brains created at 2am, and we'd love to share them with you. Additionally, one of our teammates managed to finish two Popeyes chicken sandwiches in one sitting.
What's next
There are so many paths to build on this project. But first, we want to bring a demo to IOS and collect user feedback to see what features parents and children most desire, and work on those next.
dootle
Installation
Backend
Using uv
- Install uv if you haven't already by running
curl -LsSf https://astral.sh/uv/install.sh | shin your terminal if you're on macOS (otherwise, follow the instructions for your OS here); you will need to restart your terminal after doing this - Copy
.env.exampleand name the copy.env, then fill it in with your environment variables - Open the
backendfolder in your terminal - Run
uv run main.pyto start the server
Frontend
- Open the
frontendfolder in your terminal - Install Node.js and npm if you haven't already
- Run
npm installto install all packages - Run
npm run startto start the Next.js development server
Analysis
View
Metric
- 29
- 25
- 16
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
- FlaskIn code
- Next.jsIn code
- OpenAIIn code
- PythonIn code
- ReactIn code
- Tailwind CSSIn code
- TypeScriptIn code
- Google GeminiClaimed
8 of 9 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
132 KB
Source files
29
Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.
Repository
harryyuncheng/dootle
70 files · 13.4 MB · @ cca7cf3
Structure
Interface
17 files · 24%Screens, components and styles rendered to the user.
API & routing
3 files · 4%Request entry points: routes, handlers and controllers.
Application logic
6 files · 9%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
- TypeScript79%
- Python14%
- Markdown5%
- CSS2%
- Shell1%
Share of indexed source by file size. Binary and vendored files are excluded.
Dependencies
frontend/package.json
npm · 13- axios
- dotenv
- next
- react
- react-dom
- +8 more
backend/pyproject.toml
pypi · 8- aiohttp
- elevenlabs
- flask
- flask-cors
- openai
- python-dotenv
- reportlab
- requests
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.