An AI-powered tutoring platform that helps students learn through interactive conversations, generates personalized study materials, and provides intelligent tutoring with voice capabilities.
Live App: www.roomtogrow.fit
Room To Grow is an intelligent tutoring system that combines:
- 💬 AI Tutor Chat - Conversational learning with multiple AI models
- 📸 Image Analysis - Upload images for vision-based learning
- 📚 Study Tool Generation - Auto-generated flashcards and quizzes
- 🎙️ Voice Features - Text-to-speech for tutor responses
- 🔐 User Authentication - GitHub OAuth for saving progress
- 💾 Data Persistence - Save chats, flashcards, and quiz history
- 🌐 Guest Access - Full functionality without account (no saving)
- ✅ Real-time streaming chat with AI tutor
- ✅ Multiple AI model selection (6+ models via OpenRouter)
- ✅ Image upload and analysis with vision models
- ✅ Auto-generated flashcards from conversations
- ✅ Auto-generated quizzes with explanations
- ✅ Text-to-speech for tutor responses
- ✅ Loading indicators for async operations
- ✅ GitHub OAuth authentication
- ✅ Guest user access (all features except saving)
- ✅ Conversation history panel
- ✅ Activity history (flashcards & quizzes)
- ✅ Responsive design (mobile, tablet, desktop)
- ✅ Smooth animations and transitions
- ✅ Error handling and fallback models
- ✅ Save chat conversations to database
- ✅ Save flashcards and quizzes
- ✅ Load and resume previous chats
- ✅ Delete conversations
- ✅ Auto-generated chat titles
- 📄 PDF Upload & Analysis - Upload PDFs to generate flashcards and quizzes based on document content
- 📞 AI Tutor Voice Calls - Direct voice conversations with the AI tutor agent
- 🎨 Customizable Study Materials - Edit and customize generated flashcards and quizzes
- 📊 Learning Analytics - Track progress, quiz scores, and learning patterns
- 🔔 Study Reminders - Spaced repetition notifications for flashcard review
- 👥 Collaborative Learning - Share study materials with other students
- 🌍 Multi-language Support - Learn in your preferred language
- Node.js 18+ installed
- OpenRouter API key (Get one here)
- MongoDB Atlas account (Sign up here)
- GitHub OAuth App (Create one here)
- Git installed
-
Clone the repository
git clone https://github.com/DaveTron4/room-to-grow.git cd room-to-grow -
Set up the backend
cd server npm install- Create
.envfile:cp .env.example .env - Add your environment variables to
.env:OPENROUTER_API_KEY=your_openrouter_key_here MONGODB_URI=your_mongodb_connection_string GITHUB_CLIENT_ID=your_github_client_id GITHUB_CLIENT_SECRET=your_github_client_secret GITHUB_CALLBACK_URL=http://localhost:3000/api/auth/github/callback SESSION_SECRET=your_random_session_secret FRONTEND_URL=http://localhost:5173
- Create
-
Set up the frontend
cd client npm install- Create
.env.developmentfile:VITE_API_URL=http://localhost:3000
- Create
-
Run the app (use 2 terminals)
# Terminal 1 - Backend cd server npm run dev # Terminal 2 - Frontend cd client npm run dev
-
Open your browser
- Navigate to
http://localhost:5173 - Start chatting with your AI tutor! 🎓
- Navigate to
The app is deployed on:
- Frontend: Vercel (www.roomtogrow.fit)
- Backend: Render (api.roomtogrow.fit)
See SETUP.md for detailed deployment instructions.
- SETUP.md - Detailed setup instructions
- ROADMAP.md - Full project roadmap and phases
- Framework: React 19 + TypeScript
- Build Tool: Vite
- Styling: Tailwind CSS + Custom CSS Variables
- Animations: Framer Motion
- Routing: React Router v6
- Icons: Lucide React
- Deployment: Vercel
- Runtime: Node.js + Express.js
- AI Integration: OpenRouter API (multi-model access)
- Google Gemini 2.0 Flash
- Meta Llama 3.2
- Anthropic Claude 3.5
- OpenAI GPT-4
- And more...
- Database: MongoDB Atlas
- Authentication: GitHub OAuth (Passport.js)
- File Upload: Multer (image processing)
- Voice: Browser Speech Synthesis API
- Deployment: Render
- OpenRouter: Multi-model AI access with automatic fallbacks
- Vision Models: Support for image analysis and understanding
- Text Generation: Streaming responses for real-time chat
- JSON Mode: Structured output for flashcards and quizzes
- Version Control: Git + GitHub
- Environment Management: dotenv
- CORS: Configured for cross-origin requests
- Session Management: Express session with MongoDB store
- Security: Helmet.js, secure cookies
Choose from 6+ AI models including:
- Google Gemini 2.0 Flash (Free, Fast)
- Meta Llama 3.2 90B Vision (Free, Vision)
- Anthropic Claude 3.5 Sonnet (Paid, Premium)
- OpenAI GPT-4 Turbo (Paid, Premium)
Upload images to get:
- Diagram explanations
- Problem-solving help
- Visual concept understanding
- Handwriting recognition
Auto-generate from any conversation:
- Flashcards: Question & answer pairs
- Quizzes: Multiple-choice with explanations
- Organized: Saved by topic/chat
- Phase 1: Core chat functionality with streaming
- Phase 2: Study tool generation (flashcards & quizzes)
- Phase 3: User authentication (GitHub OAuth)
- Phase 4: Data persistence (MongoDB)
- Phase 5: Advanced features (TTS, image upload, multi-model)
- Deployed to production (Vercel + Render)
- Environment configuration
- Cross-origin setup (CORS)
- SPA routing
- Guest user access
- Error handling & fallbacks
See ROADMAP.md for detailed timeline.
This is a hackathon project, but contributions are welcome!
- Fork the repo
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
MIT License - feel free to use this project for learning!
David Salas C. - Full-Stack AI Learning Platform 2025
- OpenRouter for multi-model AI access and API aggregation
- MongoDB Atlas for cloud database hosting
- GitHub for OAuth authentication
- Vercel & Render for seamless deployment
- Google Gemini for powerful AI capabilities
- React and Vite teams for amazing development tools
- Tailwind CSS for rapid styling
- Framer Motion for smooth animations
- Lucide for beautiful icons
Built with ❤️ for learners everywhere 🌱


