The purpose of this Software Design Description (SDD) is to provide a detailed design for the Byju's Competitor system, covering architecture, components, and interactions.
The Byju's Competitor System is an online learning platform that enables:
- Students: Access courses, join live classes, and track progress.
- Tutors: Upload content, schedule live classes, and manage Q&A.
- Admins: Manage users, content, and platform analytics.
-
Student App:
- Registration/Login
- Course Access
- Video Playback
- Live Classes
- Payment Gateway Integration
- Progress Tracking
-
Tutor Portal:
- Registration
- Content Upload
- Scheduling Live Classes
- Managing Q&A
-
Admin Dashboard:
- User Management
- Content Approval
- Analytics and Reporting
- Student App: Provides course catalog, live classes, and profile management.
- Tutor Portal: Allows content upload, class scheduling, and interactions.
- Admin Dashboard: Offers user management, content approval, and analytics.
- Authentication: Secure login and token-based user authentication.
- Content Management: Upload and manage courses and study materials.
- Live Class Management: Schedule classes and enable real-time interaction.
- Payment Integration: Handle payments and refunds via external gateways.
- Notification Service: SMS and email alerts for reminders, payments, and updates.
The Byju's Clone system uses a NoSQL database (e.g., MongoDB). Below is the database schema for major entities.
- PostgreSQL: For structured data like user profiles, courses, and payments.
- Redis: For caching real-time data like class schedules.
- Video Conferencing API: Enable live classes and student-tutor interaction.
- Payment Gateway: Secure subscription payments and refunds.
- Notification Gateway: SMS/email notifications (e.g., Twilio).
- Cloud Hosting: AWS or Google Cloud for backend and content delivery.
- Load Balancer: Distribute traffic and ensure availability.
- Monitoring Tools: Prometheus and Grafana for performance metrics.
- CI/CD Pipeline: Automated deployments using GitHub Actions or Jenkins.
- Student App:
- Course catalog, payment processing, live classes, and profile management.
- Tutor Portal:
- Upload content, manage schedules, and interact with students.
- API Gateway: Manages app requests and routes them to backend services.
- Authentication Service: Handles registration, login, and password recovery.
- Content Service: Manages course uploads, retrieval, and student progress tracking.
- Live Class Service: Schedules classes and manages real-time interaction.
- Payment Service: Handles payments and transaction records.
- Notification Service: Sends class reminders and updates via SMS and email.
- Users Table: Stores details like name, email, and role (student/tutor).
- Courses Table: Stores course information, study materials, and descriptions.
- Payments Table: Tracks payment transactions, including subscription plans.
- Live Classes Table: Stores schedules, tutor details, and attendee records.
/auth/register
: Register a new user./auth/login
: Authenticate user and issue tokens./courses
: Fetch available courses./courses/{id}
: Fetch course details./payments/subscribe
: Initiate a subscription./live-classes/schedule
: Schedule live classes (tutor only).
- Video API: For hosting live classes.
- Payment Gateway: For secure transactions.
- Notification Gateway: For sending reminders and updates.
- Performance: Handle up to 100,000 concurrent users.
- Scalability: Backend must scale horizontally to handle peak loads.
- Availability: Ensure 99.9% uptime with redundancy.
- Security: Use HTTPS and encrypt sensitive data.
This design ensures a robust, scalable, and secure system for delivering online learning experiences. Modular design and integration with external services allow effective management of courses, payments, and live classes.