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
- Payment Processing: Secure payment gateway with test card support
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.
- 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
Use these test card numbers to simulate different payment scenarios:
Card Number | Card Type | Description |
---|---|---|
4111 1111 1111 1111 |
Visa | Payment will succeed |
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 |
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 |
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 |
- Navigate to the Fees section as a student
- Click on "Pay Now" for any pending installment or use "Make Custom Payment"
- Use any of the test card numbers above
- 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)
- Submit the form to see the simulated payment result
- Fee Overview: View pending dues and payment history
- Payment Form: Enter card details with real-time validation
- Processing: Simulated payment processing with realistic delays
- Result: Success/failure message with transaction details
- Receipt: Downloadable payment confirmation
POST /api/payments/process
- Process payment transactionsGET /api/payments/process
- Retrieve test card information
- 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