Welcome to the Learning Management System (LMS) repository! This project is inspired by leading e-learning platforms like Udemy and Coursera. It is designed to provide a comprehensive backend solution for managing courses, users, tutorials, blogs, and much more.
- Registration & Authentication: Secure user registration and login.
- Role-Based Access Control: Administrator, instructor, and student roles.
- Account Actions:
- Password reset and password hint generation.
- User blocking/unblocking with detailed logging.
- Course Creation: Instructors can create, edit, and delete courses.
- Categories: Assign courses to categories for streamlined organization.
- Lesson Management: Add lessons to courses with support for pagination.
- Tutorials by Category: Fetch tutorials based on categories.
- CRUD Operations: Create, update, and delete tutorial content.
- Blog Management:
- Post, edit, and delete blogs.
- Assign blogs to categories and manage thumbnails or videos.
- Documentation Management:
- Add, update, and delete documentation.
- Fetch documentation by categories or single entries.
- Review System:
- Users can leave reviews and ratings for courses.
- Fetch all reviews with pagination support.
- Contact Forms:
- Submit and manage contact forms.
- Retrieve and update contact submissions.
- Security:
- Input sanitization (XSS protection, HTTP Parameter Pollution prevention).
- CORS configuration and helmet integration.
- Logging:
- Request and response logging with timestamps.
- API Versioning:
- URL and header-based versioning support.
POST /api/v1/user/register
: Register a new user.POST /api/v1/user/login
: Authenticate and log in a user.GET /api/v1/user/all
: Fetch all users with pagination.
GET /api/v1/course/all
: Get all courses.POST /api/v1/course
: Create a new course.DELETE /api/v1/course/:id
: Delete a course by ID.
GET /api/v1/tutorial/category
: Fetch tutorials by category.GET /api/v1/tutorial/:slug
: Get a specific tutorial.
POST /api/v1/blog
: Create a blog.GET /api/v1/blog/all
: Get all blogs.DELETE /api/v1/blog/:id
: Delete a blog.
POST /api/v1/documentation
: Add documentation.GET /api/v1/documentation/all
: Fetch all documentation.DELETE /api/v1/documentation/:id
: Delete documentation.
POST /api/v1/review
: Add a review.GET /api/v1/review/all
: Fetch all reviews.DELETE /api/v1/review/:id
: Delete a review.
POST /api/v1/contact
: Submit a contact form.GET /api/v1/contact/all
: Fetch all contact submissions.
- Programming Language: JavaScript (99.7%)
- Infrastructure: Docker (0.3%)
- Frameworks & Libraries:
- Express.js for backend services.
- MongoDB for database management.
- Redis for caching.
- Clone the repository:
git clone https://github.com/Ali-Adel-Nour/LMS.git
- Navigate to the project directory:
cd LMS
- Install dependencies:
npm install
- Set up environment variables: Create a .env file in the root directory. Add the necessary configurations (e.g., MongoDB URI, JWT secrets,Redis).
We welcome contributions! Please follow the contribution guidelines to get started.
- Video Integration: Add support for video tutorials.
- Payments Gateaway
- More Features