Integrated Learning Management System for Global Online Education
A scalable learning platform enabling students and instructors across different time zones to schedule customized learning sessions, securely process payments, and automatically create Zoom meetings.
- Project Overview
- Problem Statement
- Solution
- Major Features
- Tech Stack
- Getting Started
- Environment Variables
- Running Tests
- Software Architecture
- Database Design
- Authentication & Security
- Software Engineering Concepts Applied
- Testing Strategy
- Future Enhancements
- Contributors
- License
LearnSync is a full-stack Learning Management System developed as part of a Software Engineering project. Unlike traditional LMS platforms centered around prerecorded content, LearnSync focuses on personalized one-on-one learning by allowing students to request custom study sessions from verified instructors.
The platform supports the complete session lifecycle — from instructor verification and session requests to payment processing (placeholder used, actual payment workflow not implemented yet) and automatic Zoom meeting generation — while maintaining security, scalability, and clean software architecture.
The system demonstrates practical application of software engineering principles including layered architecture, database normalization, RESTful API development, authentication, authorization, third-party API integration, transactional database operations, and systematic testing as well as extensive documentation in the form of Software Requirements Specification (SRS) and Software Design Specification (SDS).
Existing online tutoring platforms are often expensive, inflexible, or designed primarily around pre-recorded courses rather than personalized instruction. Students frequently struggle to connect with qualified instructors for customized learning sessions, while instructors lack an integrated platform that combines scheduling, payments, verification, and virtual classrooms.
LearnSync addresses these challenges by providing a centralized platform where verified instructors and students can securely connect, schedule customized sessions, complete payments, and conduct meetings through automatic Zoom integration.
LearnSync provides an end-to-end solution that simplifies online tutoring by integrating user management, instructor verification, secure authentication, custom session scheduling, payment handling, timezone-aware booking, and automatic Zoom meeting creation into a single platform.
The platform supports three distinct user roles:
- Student
- Instructor
- Administrator
Each role has dedicated functionality while business rules are enforced through middleware and service-layer validation.
- Student registration
- Instructor registration
- Administrator accounts
- Role-based authentication
- JWT authentication
- Cookie-based session management
- Secure password hashing
Before becoming active, instructors upload:
- Certifications
- Demo teaching materials
- Subject expertise
- Education levels
Administrators review these documents before approving instructors, ensuring only verified instructors are visible to students.
Students can request personalized learning sessions by specifying:
- Topic
- Description
- Preferred date and time
- Duration
Instructors can:
- Accept requests
- Reject requests
- Set their own teaching fee
Students complete payment only after instructor approval. The payment workflow:
- Creates payment records
- Tracks payment status
- Updates session state
- Ensures meetings cannot be generated without successful payment
Once payment succeeds:
- Zoom meetings are automatically created
- Meeting links are securely stored
- Links remain hidden until shortly before the session
- Availability conflicts are prevented through overlap checking
- Student and instructors are not required to create Zoom accounts
One of LearnSync's key features is global usability. The system stores all session times internally in UTC while automatically converting them into each user's local timezone, allowing students and instructors from different regions to schedule sessions without manual time calculations.
| Layer | Technology |
|---|---|
| Frontend | HTML, CSS, JavaScript |
| Backend | Node.js, Express.js |
| Database | PostgreSQL |
| External APIs | Zoom Server-to-Server OAuth |
| Authentication | JWT, Cookies, bcrypt |
| Tooling | Git, GitHub, Nodemon |
LearnSync follows a layered architecture separating responsibilities into independent components:
Client (public/)
│
Routes (routes/)
│
Middlewares (middlewares/)
│
Controllers (controllers/)
│
Services (services/)
│
Databases (databases/)
│
PostgreSQL
External integrations such as the Zoom API and payment services are implemented as independent service modules, reducing coupling and improving maintainability.
This architecture improves:
- Scalability
- Modularity
- Maintainability
- Testability
The relational database was designed using:
- Entity Relationship Diagrams (ERDs)
- Third Normal Form (3NF)
- Foreign key constraints
- Transactional consistency
Core entities include:
- Users
- student_details
- instructor_details
- sessions
- payments
- meetings
LearnSync incorporates several security mechanisms:
- JWT authentication
- Cookie-based sessions
- Role-based authorization
- Password hashing
- Protected REST endpoints
- Middleware validation
- File upload validation
- Business rule enforcement
- OWASP-aware secure practices
- Layered Architecture
- Incremental Development Model
- Separation of Concerns
- RESTful API Design
- Database Normalization (3NF)
- ERD Modeling
- Relational Schema Design
- Authentication & Authorization
- Middleware-Based Request Validation
- Transactional Database Operations
- Third-Party API Integration
- Version Control using Git & GitHub
- Unit, Integration, and System Testing
Testing was performed throughout development following an incremental approach.
Unit Testing
- Authentication
- Session management
- Payment services
- Zoom integration
- Database operations
Integration Testing
- Controller-Service communication
- Database integration
- Zoom API
- Payment workflow
System Testing
Complete end-to-end testing of:
- Instructor approval
- Student booking
- Payment
- Zoom meeting creation
- Dashboard functionality
- Role-based access
- AI-powered instructor recommendations
- Mobile applications
- Payment gateways
- Analytics dashboard
- Multi-language support
- Calendar synchronization
- Email notifications
| Name | Contributions |
|---|---|
| Amna Ahmed | System Architecture, Zoom API Integration, Session Management, System Testing |
| Nida | ERD Design & Database Normalization |
| Zainab | Backend Architecture, Authentication & Authorization |
| Rida | Frontend Development & Database Contributions |
This project was developed as part of an academic Software Engineering course and does not currently have an open-source license applied. Contact the contributors for reuse or collaboration inquiries.