Inspiration
We were inspired by the many people who struggle to learn new concepts because they don't have a structured course. In our experiences, we also struggled in a similar way, searching for hours on videos and practice problems for our topic. We wanted to create an app or website which solves this issue, which finds videos and creates practice problems, and structures them all in a course, and all the user has to do is type their prompt on what they want to learn.
What it does
YouCourse is an application that uses AI to find specific videos related to whatever subject the user wants to learn. First, the user will enter a prompt about what specific topic they want to learn. The AI will split up the topic into units, and find videos correlating to those units. In between the videos, the AI will create multiple choice question quizzes. The app will check if the user actually completes the videos and passes the quizzes. If they do, they will be able to move on to the next section of the course. Think of it like a coursera or khan academy, but way more topics will be available, and users will not be limited by the course options like on khan academy or coursera, they can generate a course about anything.
How we built it
We used VSCode with help from Claude. For our framework, we used Next.js 16 App Router. Our UI was built with TailwindCSS 4 and React 19. We used Neon Postgres for our database and the Vercel AI SDK with Groq (Llama 3.3 70B) for our large language models. As for our data model, lessons store everything fetched from YouTube (video ID, title, duration), questions store the question text, 4 answer choices, and the correct answer index, and user_progress tracks which lessons each learner has passed. Authentication is handled through Auth.js v5 with email and password.
Course Creation: The user enters a topic and selects a course length (Quick/Standard/Long). The LLM generates an ordered lesson outline, and the YouTube Data API v3 finds one video per lesson. The LLM then generates 5 comprehension questions per lesson based on the topic and video title, returned as structured JSON and persisted to Postgres.
Auth: Sign in and sign up are handled with email and password via Auth.js v5 with a Drizzle adapter backed by Neon Postgres. Sessions are JWT-based and encrypted with jose.
Challenges we ran into
We ran into issues with our backend and implementing a database. We had trouble with the login and sign-up flow, and ultimately decided to cut password reset for the POC to keep scope manageable.
Another major issue we had was with AI use and our Vercel deployment's server timeout issues that limit server process lengths to 10 seconds. Another challenge was obtaining an API Key, OpenAI no longer offers free API key's, so we had to find it from somewhere else.
At some point, we made an error, and the website said that the transcripts were not available for some videos even though there were. The youtube API was not able to access the transcripts to create the mcq's. Our fix to this was generating questions based on the prompt, not the videos.
Accomplishments that we're proud of
We are proud that after hours of trying to get the site to work, it finally worked. We were struggling on getting the sign up/sign in to work, but once we did, it felt very rewarding. We loved testing out the program and seeing it work as intended. We are also proud that we were able to complete a big project with a frontend, backend, and database in such a short time frame, when it usually takes days to weeks.
What we learned
We learned a lot about the specific technical aspects, but also coding in general. Caching everything at course creation forced us to get the data model right early, which made the rest of the build easier. We learned that LLM output needs to be validated carefully — we started with typed Zod schemas but had to adapt to manual JSON parsing when our chosen provider didn't support the structured output format. Auth.js v5 took longer than expected. the App Router integration is still a little bit rough, but it was worth it for the control it gives us. But most importantly, the bigger picture is that we learned to keep testing and testing different methods, and not giving up. We were about to at one point, but we kept going and now we have a working finished product.
What's next for YouCourse
Right now, the application is in it's early stages, and we plan to make it more professional in the future. There are many structural problems with the codebase that work for a hackathon submission and proof of concept but that will need to be addressed once we actually scale the application. Additionally, we want to implement new features such as an explorable course catalogue and FRQs (Free Response Questions). In the future, we might also add a place where different accounts can collaborate and complete a course together, and maybe a way so users can change the difficulty of the mcq's from the videos.
Built With
- auth.js
- bcryptjs
- drizzle-kit
- drizzleorm
- eslint
- groq
- jose
- llama-3.3-70b
- neon
- next.js
- react
- react-youtube
- sql
- tailwindcss
- turbopack
- typescript
- vercel
- vercel-ai-sdk
- youtube-data-api-v3
- zod
Log in or sign up for Devpost to join the conversation.