SikshaLink is a next-generation learning management system that connects students and teachers in a seamless digital environment. Our platform enables educational institutions to manage classes, assignments, attendance, resources, and more all in one place.
- Dashboard: Personalized dashboards for students and teachers
- Live Classes: Schedule and attend virtual classes
- Assignments: Create, submit, and grade assignments
- Resources: Share and access educational materials
- Attendance: Track student attendance
- Notifications: Real-time updates on classes and assignments
- Mentorship: Connect with mentors for personalized guidance
- Fee Management: Track and manage fee payments
- Getting Started
- Project Structure
- Tech Stack
- Contributing
- Backend Development
- Frontend Development
- License
- Contact
- Node.js (v18 or later)
- pnpm (v8 or later)
- MongoDB (v4.4 or later) - Can be local installation or MongoDB Atlas
-
Clone the repository:
git clone https://github.com/yourusername/classroom-platform.git cd classroom-platform
-
Install dependencies:
pnpm install
-
Set up environment variables:
cp .env.example .env.local
Update
.env.local
with your configuration:# Database Configuration MONGODB_URI=mongodb://localhost:27017/sikshalink # or for MongoDB Atlas: # MONGODB_URI=mongodb+srv://username:password@cluster.mongodb.net/sikshalink # JWT Configuration JWT_SECRET=your-super-secret-jwt-key-here-minimum-32-characters JWT_EXPIRES_IN=7d # App Configuration NODE_ENV=development
-
Start MongoDB (if using local installation):
# On Windows mongod # On macOS (with Homebrew) brew services start mongodb-community # On Linux sudo systemctl start mongod
-
Start the development server:
pnpm dev
-
Open http://localhost:3000 in your browser.
classroom-platform/
βββ app/ # Next.js app directory
β βββ dashboard/ # Dashboard pages
β βββ assignments/ # Assignment pages
β βββ attendance/ # Attendance pages
β βββ ... # Other feature pages
βββ components/ # React components
β βββ ui/ # UI components
β βββ ... # Other components
βββ lib/ # Utility functions & shared logic
βββ public/ # Static assets
βββ styles/ # Global styles
βββ ... # Configuration files
- Next.js - React framework
- TypeScript - Type-safe JavaScript
- Tailwind CSS - Utility-first CSS
- Radix UI - Accessible UI components
- Lucide React - Icon library
- Next.js API Routes - Serverless API endpoints
- MongoDB - NoSQL database with Mongoose ODM
- JWT Authentication - Secure user authentication with HTTP-only cookies
- bcryptjs - Password hashing
- Zod - TypeScript-first schema validation
The platform includes a complete JWT-based authentication system:
Method | Endpoint | Description | Body |
---|---|---|---|
POST | /api/auth/register |
User registration | { name, email, password, role } |
POST | /api/auth/login |
User login | { email, password } |
POST | /api/auth/logout |
User logout | - |
GET | /api/users/me |
Get user profile | - |
PUT | /api/users/me |
Update user profile | { name?, profile? } |
# Register a new user
curl -X POST "http://localhost:3000/api/auth/register" \
-H "Content-Type: application/json" \
-d '{"name":"John Doe","email":"john@example.com","password":"SecurePass123","role":"student"}'
# Login
curl -X POST "http://localhost:3000/api/auth/login" \
-H "Content-Type: application/json" \
-d '{"email":"john@example.com","password":"SecurePass123"}'
# Get profile (requires authentication cookie)
curl -X GET "http://localhost:3000/api/users/me" \
-H "Cookie: token=YOUR_JWT_TOKEN"
For detailed API documentation, see docs/API.md.
SikshaLink is open for contributions as part of GSSoC 2025! We welcome developers of all skill levels. Please read our CONTRIBUTING.md for detailed guidelines.
- Setting up API routes for authentication
- Creating database models
- Implementing basic CRUD operations
- Adding unit tests
- Improving accessibility
- Bug fixes and UI improvements
- Authentication System: Complete JWT-based authentication with registration, login, logout
- User Management: User profiles with role-based access (student, teacher, admin)
- Database Integration: MongoDB with Mongoose ODM and optimized connections
- Type Safety: Full TypeScript implementation with comprehensive type definitions
- API Documentation: Complete API reference with examples and error codes
- Security: Password hashing, secure cookies, input validation
- Role-based access control middleware
- Frontend authentication integration
- Profile management UI
- Assignment management system
- Live class scheduling and management
- Attendance tracking
- Resource sharing and management
- Real-time notifications
- Fee management system
- Mentorship platform integration
While our focus is on backend contributions, we also welcome frontend improvements:
- Accessibility enhancements
- Performance optimizations
- Additional UI components
- Responsive design improvements
- Unit and integration tests
This project is licensed under the MIT License - see the LICENSE file for details.
For questions or support, please open an issue or contact the maintainer:
- Email: ratnaiiitg@gmail.com
- LinkedIn: Ratna Jaiswal
If you find this project helpful or interesting:
- Please consider giving it a star on GitHub β
- Follow the project maintainer on GitHub
- Connect on LinkedIn
Your support motivates continued development and maintenance!
Made with β€οΈ for GSSoC 2025