Your AI-Powered Academic Success Platform
Live Demo β’ Features β’ Tech Stack β’ Installation β’ Contributing
College Companion is a comprehensive full-stack MERN application designed to help college students excel academically. Powered by advanced AI technologies, it offers intelligent tools for attendance management, syllabus analysis, question generation, and collaborative studyingβall in one platform.
- AI-Powered Intelligence - Leverage Groq, Google Gemini, and Perplexity AI for smart academic assistance
- Real-Time Collaboration - Study together with Socket.io-powered study rooms
- Beautiful UI - Modern, responsive design with smooth animations
- All-in-One Solution - Everything a student needs in a single platform
- Firebase Authentication with Google Sign-In
- Secure user profiles and session management
- Seamless onboarding experience
| Feature | Description |
|---|---|
| Attendance Advisor | AI-driven attendance tracking with smart predictions and recommendations |
| Syllabus Essentials | Extract key topics from syllabus images/PDFs using Perplexity AI |
| Question Generator | Generate exam questions automatically using Groq AI |
| Survival Plan | Create personalized study plans based on your schedule |
- Create and join collaborative study rooms
- Real-time chat and collaboration
- Share room codes with classmates
- Socket.io integration for seamless communication
- Personalized academic overview
- Profile management
- Quick access to all tools
|
|
- Node.js (v18 or higher)
- MongoDB Atlas account
- Firebase project with authentication enabled
- API Keys: Groq, Google Gemini, Perplexity
-
Clone the repository
git clone https://github.com/Yugenjr/College_Companion.git cd College_Companion -
Install dependencies
# Root (Frontend) npm install # Main Backend cd backend npm install cd .. # Question Generator Backend cd backend-question-generator npm install cd ..
-
Configure environment variables
Create
.envin the root directory:VITE_FIREBASE_API_KEY=your_firebase_api_key VITE_FIREBASE_AUTH_DOMAIN=your_project.firebaseapp.com VITE_FIREBASE_PROJECT_ID=your_project_id VITE_FIREBASE_STORAGE_BUCKET=your_project.appspot.com VITE_FIREBASE_MESSAGING_SENDER_ID=your_sender_id VITE_FIREBASE_APP_ID=your_app_id VITE_API_URL=http://localhost:5000 VITE_QUESTION_API_URL=http://localhost:5001
Create
.envinbackend/:MONGO_URI=your_mongodb_connection_string GROQ_API_KEY=your_groq_api_key PERPLEXITY_API_KEY=your_perplexity_api_key GOOGLE_API_KEY=your_google_gemini_key PORT=5000
Create
.envinbackend-question-generator/:MONGO_URI=your_mongodb_connection_string GROQ_API_KEY=your_groq_api_key PORT=5001
-
Start all services
Option A - PowerShell Script (Windows):
.\start-all.ps1Option B - Manual Start:
# Terminal 1 - Main Backend cd backend npm start # Terminal 2 - Question Generator Backend cd backend-question-generator npm start # Terminal 3 - Frontend npm run dev
-
Access the application
- Frontend:
http://localhost:5173 - Main Backend:
http://localhost:5000 - Question Generator:
http://localhost:5001
- Frontend:
- Sign Up/Login - Create an account or sign in with Google
- Complete Onboarding - Set up your profile and preferences
- Explore Dashboard - Access all features from the main dashboard
- Track Attendance - Use Attendance Advisor for smart tracking
- Extract Essentials - Upload syllabus to get key topics
- Generate Questions - Create practice questions automatically
- Join Study Rooms - Collaborate with peers in real-time
β COMPLETE_API_REFERENCE.md β START HERE
| Module | Endpoints | Details |
|---|---|---|
| π Profile | GET/PUT/POST/DELETE /api/profile/* |
View |
| π Survival Kit | POST/GET/DELETE /api/survival/* |
View |
| π Notes | POST/GET/PUT/DELETE /api/notes/* |
View |
| β Questions | POST/GET/DELETE /api/questions/* |
View |
| π Attendance | POST/GET/DELETE /api/attendance/* |
View |
| π Essentials | POST/GET /api/essentials/* |
View |
| π Revision | POST/GET /api/revision/* |
View |
| π¬ Doubt Solver | POST/GET /api/doubt/* |
View |
| π» Study Room | Socket.io /api/study-room-chat |
View |
# Get user profile
curl -X GET http://localhost:5000/api/profile/me \
-H "Authorization: Bearer YOUR_TOKEN"
# Create a note
curl -X POST http://localhost:5000/api/notes \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"title":"My Note","content":"..."}'- AUTH_API_DOCUMENTATION.md - Legacy reference
- backend/API_DOCS.md - AI Attendance backend
| Endpoint | Method | Description |
|---|---|---|
/api/questions/generate |
POST | Generate questions |
/api/questions/history |
GET | Get generation history |
College_Companion/
βββ src/ # Frontend source code
β βββ components/ # Reusable React components
β βββ pages/ # Page components
β β βββ Auth/ # Login, Register, Onboarding
β β βββ Dashboard/ # Dashboard pages
β β βββ AttendanceAdvisor/ # Attendance tracking
β β βββ SemesterSurvival/ # Study tools
β β βββ StudyArena/ # Collaborative rooms
β β βββ Profile/ # User profile
β βββ contexts/ # React Context providers
β βββ hooks/ # Custom React hooks
β βββ services/ # API services
βββ backend/ # Main backend (Port 5000)
β βββ models/ # MongoDB models
β βββ routes/ # API routes
β βββ config/ # Configuration files
β βββ server.js # Entry point
βββ backend-question-generator/ # Question generator (Port 5001)
βββ public/ # Static assets
We welcome contributions! Here's how you can help:
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
- Follow the existing code style
- Write meaningful commit messages
- Add tests for new features
- Update documentation as needed
- Ensure all tests pass before submitting PR
MongoDB Connection Failed
- Verify your MongoDB URI in
.envfiles - Check if your IP is whitelisted in MongoDB Atlas
- Ensure the database name is correct
Firebase Authentication Error
- Verify all Firebase credentials in
.env - Ensure Firebase Authentication is enabled in your Firebase console
- Check Google Sign-In is configured properly
Port Already in Use
- Kill processes on ports 5000, 5001, or 5173
- Windows:
netstat -ano | findstr :5000thentaskkill /PID <PID> /F - Linux/Mac:
lsof -ti:5000 | xargs kill -9
This project is licensed under the MIT License - see the LICENSE file for details.
Yugendra N Project Admin |
Want to contribute? Check out our Contributing Guidelines and add yourself to this list! π
- AI Services: Groq, Google Gemini, Perplexity AI
- Icons: Lucide React
- UI Inspiration: Modern web design best practices
- Community: All our contributors and users
- π Bug Reports: Open an Issue
- π‘ Feature Requests: Discussions
- π Documentation: Check our guides
The Firestore schema for study rooms has been updated:
- Typing status is now stored in each user document as
isTyping. - Old
typingnode is still supported for backward compatibility. - See
MIGRATION_GUIDE.mdfor migration steps and details.
All CRUD operations have been refactored to support both schemas during the transition.