Skip to content

ratna-jaiswal/classroom-platform

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

27 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

SikshaLink - Modern Learning Management System

SikshaLink Logo

πŸš€ About SikshaLink

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.

Next.js TypeScript Tailwind CSS GSSoC 2025

πŸ” Features

  • 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

πŸ“‹ Table of Contents

πŸš€ Getting Started

Prerequisites

  • Node.js (v18 or later)
  • pnpm (v8 or later)
  • MongoDB (v4.4 or later) - Can be local installation or MongoDB Atlas

Installation

  1. Clone the repository:

    git clone https://github.com/yourusername/classroom-platform.git
    cd classroom-platform
  2. Install dependencies:

    pnpm install
  3. 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
  4. Start MongoDB (if using local installation):

    # On Windows
    mongod
    
    # On macOS (with Homebrew)
    brew services start mongodb-community
    
    # On Linux
    sudo systemctl start mongod
  5. Start the development server:

    pnpm dev
  6. Open http://localhost:3000 in your browser.

πŸ—οΈ Project Structure

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

πŸ’» Tech Stack

Frontend

Backend

οΏ½ API Documentation

Authentication Endpoints

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? }

Example Usage

# 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.

οΏ½πŸ‘₯ Contributing

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.

Good First Issues

  • Setting up API routes for authentication
  • Creating database models
  • Implementing basic CRUD operations
  • Adding unit tests
  • Improving accessibility
  • Bug fixes and UI improvements

πŸ› οΈ Development Status

βœ… Completed Features

  • 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

🚧 In Progress

  • Role-based access control middleware
  • Frontend authentication integration
  • Profile management UI

πŸ“‹ Planned Features

  • Assignment management system
  • Live class scheduling and management
  • Attendance tracking
  • Resource sharing and management
  • Real-time notifications
  • Fee management system
  • Mentorship platform integration

🎨 Frontend Development

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

πŸ“œ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ“ž Contact

For questions or support, please open an issue or contact the maintainer:

⭐ Support

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

About

A Next.js based Learning Management System for GSSoC 2025

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published