0% found this document useful (0 votes)
41 views7 pages

Online Learning Platform Project

Uploaded by

jgdfhugd
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
41 views7 pages

Online Learning Platform Project

Uploaded by

jgdfhugd
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 7

Online Learning Platform

1. Introduction
This document outlines the business requirements, user roles, privileges, and
features for developing a simple online learning platform like Udemy. The platform
will allow instructors to create courses, and students to enroll in and complete
courses. It will provide essential functionalities for managing users and courses.
Deadline: 29/8
Note: While working on this project, you may find that some parts need additional
logic, data handling, or design decisions to make the application more effective
and user-friendly. You're encouraged to think of improvements and incorporate
them based on your own ideas and understanding of good application design.
Your suggestions and solutions are important and will help make the platform
complete and more scalable.
2. User Management
2.1 Registration and Login
Purpose: To handle user registration, login, and access control based on user
roles.
2.1.1 Registration
• User Roles:
o Students, Instructors, and Admins can sign up on the platform by
providing an email address, a secure password, and any required
data.
• Data Validation:
o Ensure that the email provided is unique, properly formatted, and
confirmed through a verification email.
o Passwords must meet security criteria (e.g., minimum length,
inclusion of special characters).
• User Data:
o Required fields: Email, Password, First Name, Last Name.
o Optional fields: Profile Picture, Contact Information.
2.1.2 Login
• Authentication:
o Users log in using their registered email and password.
2.1.3 Role-Based Access
• Role Assignment:
o Upon registration, users are assigned a default role (Student,
Instructor, or Admin).
o Admins can manage user roles and privileges through an
administrative interface.
• Access Control:
o Students: Can browse, enroll in courses, view their progress, and
leave reviews.
o Instructors: Can create, manage, and delete their courses, view
student enrollments, and provide feedback.
o Admins: Have full access to manage all users, courses, and platform
settings.
3. Course Management
3.1 Course Creation
Purpose: To enable instructors to create and manage courses, with admin
oversight to ensure quality and relevance.
3.1.1 Course Details
• Title: The name of the course (must be unique and descriptive).
• Description: A detailed overview of what the course covers, including
learning objectives and key topics.
• Category & Tags: Assign the course to a specific category (e.g., Technology,
Business) and add relevant tags to improve searchability.
3.1.2 Enrollment Options
• Free Courses (required): Courses that students can enroll in without any
payment.
• Paid Courses (optional): Courses that require payment to access.
Instructors can set the price, and students must complete the payment
process to enroll.
3.2 Admin Approval Process
Purpose: To ensure that only high-quality and relevant courses are published on
the platform.
• Course Submission: After creating a course, instructors submit it for review.
The course remains in a "Pending Approval" status until it is reviewed by an
admin.
• Admin Review:
o Approval: If the course meets the platform’s standards, the admin
approves it, and it is published for students to enroll.
o Rejection: If the course does not meet the required standards, the
admin can reject it with feedback, allowing the instructor to make
necessary revisions.
• Notification: Instructors receive a notification on whether their course has
been approved or rejected, along with any feedback provided by the admin.
4. Basic Course Review and Rating System
4.1 Course Review
Purpose: To enable students to provide feedback on courses they have completed,
helping others make informed decisions.
4.1.1 Review Submission
• Eligibility: Only students who have completed the course (i.e., viewed all
content and completed any required assessments) can leave a review.
• Rating System: A star-based system (e.g., 1 to 5 stars) with an optional text
comment field for detailed feedback.
• Review Moderation: Admins can monitor and manage reviews, including
removing inappropriate content.
5. Admin Dashboard (Optional)
Purpose: To provide administrators with tools to manage users, courses, and
platform settings effectively.
5.1 User Management
• View All Users: A list of all registered users (students, instructors, admins)
with details such as name, email, role, and registration date.
• Edit User Information: Ability to update user details, reset passwords, or
change user roles.
• Delete Users: Option to manually remove users from the platform.
5.2 Course Management
• View All Courses: A list of all courses available on the platform with details
like title, instructor, number of enrollments, and status (published, draft,
etc.).
• Approve/Reject Courses: Option to review and approve or reject courses
submitted by instructors before they are published.
• Edit/Delete Courses: Ability to modify course details or remove courses
from the platform.

6. Additional Hints and Instructions


6.1 Hints for Implementation
• Database Design: Think carefully about how you structure your database
tables. You'll need tables for Users, Courses, Enrollments, Reviews, and
more. Consider relationships between entities (e.g., one-to-many
relationships between Instructors and Courses).
• Role-Based Access Control (optional): Implement middleware or guards in
your backend to enforce role-based access. For example, only admins
should be able to approve or reject courses.
• Validation: Implement both backend validations to ensure data integrity.
For example, enforce unique course titles and validate that reviews can only
be submitted by students who have completed the course.
6.2 Project Requirements
• API Documentation: You are required to document your API endpoints
using Swagger. This will make it easier to test and understand the
functionality of your backend.
• GitHub Repository: Upload your complete project to GitHub. Ensure your
repository is well-organized with clear commit messages.
• Postman Collection (Optional): Provide a Postman collection to make it
easier to test your API endpoints.

6.3 Project Estimation


• Development Time: This project will likely take about 15 days to complete.
This estimation is adjusted since the project focuses solely on backend
development, including planning, design, development, testing, and
documentation.
• Key Milestones:
o Requirements analysis, database design, and setting up the
development environment.
o User management and authentication implementation.
o Course creation features and admin approval process.
o Course enrollment, review system, and admin dashboard.
o Testing, bug fixing, Swagger documentation.
6.4 Final Submission
• GitHub: Your final project must be uploaded to GitHub with clear
instructions on how to set it up and run it. Ensure that your repository is
well-structured and includes a README file with setup instructions.
• Swagger Documentation: Ensure that all API endpoints are documented
using Swagger and accessible via the /api-docs endpoint.
• Postman Collection (Optional): Provide a Postman collection to help test
the API endpoints, which can be shared along with your GitHub repository.
7. Resources
To assist you in successfully completing this project, here are some resources that
may be helpful:
• API Documentation:
o Tutorials on integrating Swagger with Spring Boot.
o Postman documentation for API testing.
• Version Control:
o GitHub guides on repository management, branching, and
collaboration.
• DTO
o Data transfer object
o Validation into DTO
• Lombok
o Java Lombok

You might also like