Skip to content

ratna-jaiswal/classroom-platform

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

45 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
  • Payment Processing: Secure payment gateway with test card support

πŸ’³ Payment System & Test Cards

The platform includes a comprehensive payment system for handling student fee payments. The system supports various payment scenarios and provides test cards for development and testing purposes.

Payment Features

  • Secure payment form with validation
  • Multiple Payment Methods - Card, UPI, Net Banking, Digital Wallet
  • Smart Payment Selection - Visual method selector with availability status
  • Multiple payment scenarios (success, failure, expired cards, etc.)
  • Transaction history and receipts
  • Installment-based payments
  • Real-time payment processing simulation
  • Custom Amount Input - Users can enter any amount between β‚Ή100-β‚Ή5,00,000
  • Method-Specific UI - Dynamic interface based on selected payment method

Test Cards for Development

Use these test card numbers to simulate different payment scenarios:

βœ… Successful Payments

Card Number Card Type Description
4111 1111 1111 1111 Visa Payment will succeed

❌ Failed Payments

Card Number Card Type Description
4000 0000 0000 0002 Visa Card will be declined
4000 0000 0000 9995 Visa Insufficient funds
4000 0000 0000 0069 Visa Expired card

πŸ”§ Error Scenarios

Card Number Card Type Description
4000 0000 0000 0119 Visa Network timeout simulation
4000 0000 0000 0127 Visa Generic processing error
4000 0000 0000 0101 Visa 3D Secure authentication required

πŸ”„ Other Payment Methods

Method Test Value Description
UPI test@upi Successful UPI payment
UPI fail@upi Failed UPI payment
Net Banking Bank selection Select any bank for simulation
Wallet Wallet selection Select any wallet for simulation

Test Card Usage Instructions

  1. Navigate to the Fees section as a student
  2. Click on "Pay Now" for any pending installment or use "Make Custom Payment"
  3. Use any of the test card numbers above
  4. Fill in the following test details:
    • Cardholder Name: Any name (e.g., "Test User")
    • Expiry Date: Any future date (e.g., 12/2028)
    • CVV: Any 3-digit number (e.g., 123)
  5. Submit the form to see the simulated payment result

Payment Flow

  1. Fee Overview: View pending dues and payment history
  2. Payment Form: Enter card details with real-time validation
  3. Processing: Simulated payment processing with realistic delays
  4. Result: Success/failure message with transaction details
  5. Receipt: Downloadable payment confirmation

API Endpoints

  • POST /api/payments/process - Process payment transactions
  • GET /api/payments/process - Retrieve test card information

πŸ“‹ 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