A comprehensive platform for managing campus life, featuring AI-powered tools, real-time collaboration, and seamless integrations.
- β Authentication System: Secure JWT-based authentication with refresh tokens
- β User Management: Role-based access control (Student, Teacher, Admin)
- β Real-time Communication: Socket.io integration for instant updates
- β Responsive Dashboard: Modern UI with React and Redux Toolkit
- π Academic Schedule & Attendance Tracking
- π Assignment & Deadline Management
- π€ AI-Powered Timetable Generator
- π₯ Study Groups & Chat System
- π³οΈ Meetings & Polling Engine
- π Notes Sharing (OneDrive Integration)
- π Google Calendar Integration
- π Notebook LM Exam Mode
- π Real-time Notification System
- Frontend: React.js, Redux Toolkit, Socket.io Client
- Backend: Node.js, Express.js, Socket.io
- Database: MongoDB with Mongoose
- Authentication: JWT (Access + Refresh Tokens)
- Styling: Modern CSS with responsive design
SCC/
βββ backend/ # Node.js backend
β βββ src/
β β βββ config/ # Database configuration
β β βββ controllers/ # Route controllers
β β βββ middlewares/ # Auth & validation middlewares
β β βββ models/ # Mongoose models
β β βββ routes/ # API routes
β β βββ utils/ # Helper functions
β β βββ server.js # Entry point
β βββ .env # Environment variables
β βββ package.json
β
βββ frontend/ # React frontend
β βββ src/
β β βββ components/ # Reusable components
β β βββ features/ # Redux slices
β β βββ pages/ # Page components
β β βββ services/ # API services
β β βββ socket/ # Socket.io client
β β βββ store/ # Redux store
β β βββ App.jsx # Main component
β β βββ main.jsx # Entry point
β βββ .env # Environment variables
β βββ package.json
β
βββ README.md
- Node.js (v18 or higher)
- npm or yarn
- MongoDB Atlas account (or local MongoDB)
git clone <your-repo-url>
cd SCCcd backend
npm installEdit backend/.env:
PORT=5000
NODE_ENV=development
CLIENT_URL=http://localhost:5173
# MongoDB Connection
MONGO_URI=your_mongodb_connection_string
# JWT Secret (use a strong random string)
JWT_SECRET=your_super_secret_jwt_key_change_this_in_production
# Email Configuration (for future features)
EMAIL_USER=your_email@example.com
EMAIL_PASS=your_email_password
# API Keys (for future features)
OPENAI_API_KEY=your_openai_api_key
GOOGLE_CLIENT_ID=your_google_client_id
GOOGLE_CLIENT_SECRET=your_google_client_secret
ONEDRIVE_CLIENT_ID=your_onedrive_client_id
ONEDRIVE_CLIENT_SECRET=your_onedrive_client_secretnpm run devServer will run on http://localhost:5000
Open a new terminal:
cd frontend
npm installEdit frontend/.env:
VITE_API_URL=http://localhost:5000
VITE_SOCKET_URL=http://localhost:5000npm run devFrontend will run on http://localhost:5173
- Open http://localhost:5173 in your browser
- Click "Get Started" or "Register" to create a new account
- Fill in your details:
- Students: Provide student ID, department, and year
- Teachers: Select teacher role
- Login with your credentials
- Access your personalized dashboard
POST /api/auth/register- Register new userPOST /api/auth/login- Login userPOST /api/auth/logout- Logout userPOST /api/auth/refresh- Refresh access tokenGET /api/auth/me- Get current user profile (Protected)PUT /api/auth/profile- Update user profile (Protected)
- Password hashing with bcrypt
- JWT access tokens (15 minutes expiry)
- JWT refresh tokens (7 days expiry)
- HTTP-only cookie support (ready)
- Role-based access control
- Input validation
- Environment variable protection
cd backend
npm testcd frontend
npm test- Create account on Render or Railway
- Connect your GitHub repository
- Set environment variables
- Deploy
- Create account on Vercel
- Connect your GitHub repository
- Set build command:
npm run build - Set output directory:
dist - Add environment variables
- Deploy
- Already cloud-hosted
- No additional setup needed
- User authentication system
- Basic dashboard
- Real-time socket connection
- Study group creation
- Real-time chat system
- File sharing in groups
- OpenAI integration
- Timetable generation
- Smart scheduling
- OAuth2 setup
- Calendar sync
- Event management
- OneDrive integration
- Meeting scheduler
- Polling system
- Push notifications
- Email notifications
- Performance optimization
- Caching implementation
- Fork the repository
- Create your 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
This project is licensed under the MIT License.
Your Name - Initial work
- OpenAI for AI capabilities
- MongoDB for database
- Socket.io for real-time features
- React community for excellent tools
For support, email your-email@example.com or create an issue in the repository.
Backend won't start:
- Check if MongoDB URI is correct
- Ensure port 5000 is not in use
- Verify all dependencies are installed
Frontend won't connect:
- Check if backend is running
- Verify API URLs in .env
- Clear browser cache
Socket connection fails:
- Ensure backend Socket.io is running
- Check CORS settings
- Verify socket URL in frontend