Inspiration
When trying to get an idea for our project we wanted something impactful. We thought "what are the struggles gen z are having" and we got along the path of finding purpose. When talking about how a cs student can be struggling and trying to find purpose that's when it hit us. Many students do not think they are good enough for the job market so why don't we create something that can help and guide students with develop and learn while making it easy to boost confidence and hope upon graduation. We noticed many students use AI as a hinderance to their learning by using it like a crutch so we thought, how can we flip that on it's head.
What it does
Autodidact is an AI-powered coding learning platform that adapts to your skill level. But instead of the AI doing the work for you and trying to get you to understand without writing, it guides you to learn by doing similar to how a teacher teaches their students how to code.
The app has a Built-in code editor that lets you push and create repositories for your GitHub and you receive real-time AI guidance while coding.
How we built it
Frontend:
- Next.js 16 with React 19 and TypeScript
- Monaco Editor for the code editing experience
- Tailwind CSS for styling
- Zustand for state management
Backend:
- Next.js API Routes for server-side logic
- Prisma with PostgreSQL for data persistence
- Supabase for authentication (GitHub OAuth)
AI Integration:
- Groq API with Llama 3.3 70B Versatile model
- Custom system prompts that adapt based on difficulty level
- Prompt templates stored in
/lib/prompts.tsfor maintainability
GitHub Integration:
- GitHub OAuth via Supabase for authentication
- GitHub REST API for repository creation and file management
- Automatic code pushing to user repositories
Key Technical Decisions:
- Server-side API routes to keep AI keys secure
- Difficulty-based prompt system for adaptive guidance
- Database storage of GitHub tokens for persistent access
- Real-time code synchronization with GitHub
Challenges we ran into
GitHub Token Management: Supabase doesn't persist
provider_tokenin sessions. We solved this by storing tokens in the database and implementing fallback retrieval in API routes.Adaptive Prompt System: Creating prompts that truly adapt to skill levels. We iterated on system prompts to ensure beginners get detailed help while advanced users get high-level guidance.
API Integration Complexity: Integrating Groq API with proper error handling, rate limiting, and response formatting took multiple iterations.
State Management: Managing complex state across the coding arena (topics, tasks, code, AI responses) required careful state organization.
GitHub API Versioning: Initially used outdated API versions; updated to 2024-11-20 for compatibility.
File SHA Handling: GitHub requires file SHA for updates. We implemented logic to fetch existing file SHAs before updating.
Accomplishments that we're proud of
Adaptive AI System: Built a difficulty-based prompt system that changes AI behavior—from patient tutor to senior mentor—based on user needs.
Complete Learning Workflow: Integrated project creation → topic generation → task breakdown → coding → GitHub push in one platform.
GitHub Integration: Seamless GitHub OAuth, repository creation, and code pushing, so students build a portfolio while learning.
User Experience: Clean, intuitive interface with a coding arena that combines IDE, AI assistance, and project management.
Problem-Solving Approach: Flipped AI from a crutch into a learning tool that adapts to skill level and encourages independent problem-solving.
Full-Stack Implementation: Built a complete full-stack application with authentication, database, AI integration, and external API connections in a hackathon timeframe.
Real Impact Potential: Created something that addresses a real problem—helping CS students build confidence and skills through guided, adaptive learning.
What we learned
This hackathon was a massive learning experience for our entire team. Despite having experience with JavaScript, we had to learn several new technologies from scratch:
Next.js: Only one of us had worked with Next.js before. We learned the App Router, API routes, server-side rendering, and how to structure a Next.js application properly.
Authentication: We implemented OAuth authentication with Supabase and GitHub, learning about session management, token handling, and secure authentication flows, all new territory for our team.
API Integrations: Every API we used was new to us:
- Groq API: Learning how to integrate with AI models, handle streaming responses, and manage API keys securely
- GitHub REST API: Understanding OAuth flows, repository management, file operations, and API versioning
- Supabase API: Learning about authentication providers, session management, and database integration
Full-Stack Development: This was our first time building a complete full-stack application with proper separation of concerns, API design, and database integration.
What's next for Autodidact
-AI Refinement: AI needs work as it is glitchy with the tasks being displayed in a panel
More Language Support: Expand beyond JavaScript to support Python, Java, C++, and other popular languages
Built With
- githubrestapi
- groqapi
- monacoeditor
- next.js
- supabase
- typescript
Log in or sign up for Devpost to join the conversation.