An intelligent, AI-powered study companion that helps students learn more effectively with interactive tools, real-time collaboration, and personalized assistance.
- Intelligent Chatbot: Get instant help with study questions using Groq AI or local Ollama models
- Smart Explanations: Receive detailed explanations for complex topics
- Study Tips: Get personalized study strategies and time management advice
- Digital Notes: Rich text editor with formatting tools for creating and organizing study notes
- Flashcards: Create and review flashcards for effective memorization
- Pomodoro Timer: Built-in focus timer with customizable work/break intervals
- Group Chat: Real-time collaborative study sessions with peers
- Add Friends: Connect with other students for study partnerships
- Study Groups: Join or create study groups for collaborative learning
- Quiz Duel: Challenge friends with interactive quizzes
- Progress Tracking: Monitor your study progress and achievements
- Dashboard: Personalized dashboard with study statistics and recommendations
- Responsive Design: Optimized for all devices (mobile, tablet, desktop)
- Touch-Friendly: Intuitive touch interactions for mobile users
- Offline Support: Core features work without internet connection
- React 19 - Modern React with latest features
- Vite - Fast build tool and development server
- React Router - Client-side routing
- React Query - Data fetching and state management
- Framer Motion - Smooth animations and transitions
- Socket.io Client - Real-time communication
- Node.js - Runtime environment
- Express.js - Web framework
- Socket.io - Real-time bidirectional communication
- CORS - Cross-origin resource sharing
- Groq API - Fast AI inference for chat features
- Ollama - Local AI model support (optional)
- Tesseract.js - OCR functionality for image text recognition
- React YouTube - YouTube video integration
- Axios - HTTP client for API calls
Before running this application, make sure you have the following installed:
- Node.js (v18 or higher)
- npm or bun package manager
- Git for version control
- Ollama - For running local AI models
- qwen3:8b model (if using Ollama)
-
Clone the repository
git clone https://github.com/ameerhmz/StudyBuddy.git cd StudyBuddy -
Install dependencies
npm install # or bun install -
Environment Setup Create a
.envfile in the root directory:REACT_APP_GROQ_API_KEY=your_groq_api_key_here
-
Start the development server
npm run dev # or bun run dev -
Start the backend server (in a separate terminal)
npm run server # or bun run server
The application will be available at http://localhost:5173
| Variable | Description | Required |
|---|---|---|
REACT_APP_GROQ_API_KEY |
API key for Groq AI services | Yes (for AI chat features) |
The app supports two AI backends:
- Groq API (Cloud) - Faster, requires API key
- Ollama (Local) - Private, requires local installation
To use Ollama:
- Install Ollama from ollama.ai
- Pull the qwen3:8b model:
ollama pull qwen3:8b - Toggle "Use Local Model" in the chatbot settings
- Sign Up: Create your account or log in
- Explore Features: Navigate through different study tools
- Connect: Add friends and join study groups
- Learn: Use AI assistant for help with studies
- Go to the Notes page
- Use the rich text editor to format your content
- Save and organize your notes
- Export as needed
- Navigate to Flashcards
- Add questions and answers
- Review and study your cards
- Track your progress
- Set your work and break intervals
- Start the timer
- Focus on your studies
- Take scheduled breaks
- Create or join a study group
- Chat with group members in real-time
- Share resources and study together
StudyBuddy/
βββ public/ # Static assets
βββ src/
β βββ Component/ # Reusable UI components
β β βββ AppLayout.jsx # Main layout wrapper
β β βββ Navbar.jsx # Navigation component
β β βββ Dashboard.jsx # User dashboard
β β βββ Chatbot.jsx # AI assistant
β β βββ ...
β βββ context/ # React context providers
β β βββ AuthContext.jsx # Authentication state
β βββ pages/ # Page components
β β βββ Home.jsx # Landing page
β β βββ About.jsx # About page
β β βββ Features.jsx # Features showcase
β β βββ ...
β βββ styles/ # Global styles and themes
β β βββ theme.css # Design tokens
β β βββ apple-theme.css # Apple-inspired theme
β βββ assets/ # Images and icons
βββ server.js # Backend server
βββ package.json # Dependencies and scripts
βββ README.md # This file
- Primary: Blue gradient (#21d4fd to #b721ff)
- Secondary: Clean whites and grays
- Accent: Purple highlights
- Primary Font: Inter (system font stack)
- Headings: Bold, clean typography
- Body: Readable sans-serif
- Glassmorphism: Modern frosted glass effects
- Smooth Animations: Framer Motion transitions
- Responsive Grid: Flexible layouts for all screens
- API Key Protection: Sensitive keys stored in environment variables
- Input Validation: Client and server-side validation
- CORS Configuration: Secure cross-origin policies
- Authentication: User session management
npm run build
# Deploy the 'dist' folder to your hosting servicenpm run server
# Deploy to services like Heroku, Railway, or Vercel- Frontend: Vercel, Netlify, or GitHub Pages
- Backend: Railway, Render, or Heroku
- Database: MongoDB Atlas (if needed for user data)
We welcome contributions! Please follow these steps:
- Fork the repository
- 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
- Follow React best practices
- Write clear, concise commit messages
- Test on multiple devices and browsers
- Ensure mobile responsiveness
- Maintain code quality with ESLint
This project is licensed under the MIT License - see the LICENSE file for details.
- React Team for the amazing framework
- Vite Team for the fast build tool
- Groq for AI inference services
- Ollama for local AI capabilities
- Open Source Community for inspiration and tools
If you have any questions or need help:
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Email: ameerhmz5@gmail.com
Happy Studying! π
Made with β€οΈ for students, by students