Full Stack LMS with MERN: MongoDB, Express, React, Node.js

Share

Summary

Learn how to build a complete Learning Management System (LMS) using the MERN stack. This tutorial covers user authentication, course creation, enrollment, payment gateway integration, and deployment.

Highlights

Educator Navigation Bar, and Components
05:09:06

Calling various other components such s sidebar to construct pages for different roles. this includes dashboard etc

Introduction and Project Overview
00:00:00

The video introduces a full-stack LMS project built with MongoDB, Express, React, and Node.js. Educators can upload courses; students can enroll and watch them. Features include user login/registration, Clerk authentication, and Stripe payment gateway integration.

Homepage and Course Details Demo
00:00:36

A quick demo showcases the LMS website's homepage, featuring a navigation bar, search box, course cards, testimonials, and a footer. The course details page includes title, description, average rating, instructor name, course structure, and enrollment options.

Course List and User Account Features
00:01:28

Demonstration of course listing and searching by keywords. Enrollment requires account creation via Clerk's sign-in component, with options for Google authentication or traditional signup. Post sign-in, users access 'My Enrollments' and potential educator dashboards.

Educator Dashboard and Course Purchase
00:02:07

Educators can view enrollment stats, create courses (title, description, price, chapters, lectures with video URLs), and manage published content. The video demonstrates course purchasing through Stripe's payment gateway using test card details.

Project Setup and Tooling
00:03:10

Creating a new React project using Vite, installing dependencies (React Router DOM, React YouTube, Unique ID, Quill, Humanize Duration, RC Progress, React Simple Star Rating), setting up Tailwind CSS, and configuring Google Fonts.

Folder Structure and Component Creation
00:11:14

Structuring the project's folders (components, pages, context) and creating necessary component files for both student and educator sections, including navigation, hero sections, course cards, dashboards, and form elements.

App Context Setup
00:15:47

Creating an App Context to manage global state and functions. Implementing the App Context provider and wrapping the main application component to enable context access throughout the project.

React Router Configuration
00:17:35

Implementing routing using React Router DOM. Defining routes for student and educator pages, including dynamic routes with parameters for course details and videos.

Navigation Bar Component
00:23:36

Designing navigation bar, conditional rendering of links based on user role, incorporating logo, mobile and desktop views, styling with tailwind.

Clerk Authentication Integration
00:39:12

Setting up Clerk for user authentication. Creating a Clerk application, installing the Clerk React package, configuring environment variables, and implementing Clerk provider and user button component.

Hero Section Design
00:50:43

Implementation of hero section with title, description and sketch image styled using tailwind css

Search Bar Component
00:55:43

Creating the search bar component and its logic to redirect users to course listing using input text as keyword

Companies Section
01:01:34

Implementation of Companies logo sections with its properties and styling using tailwind css

Course Section Implementation
01:04:02

Configuration and styling for course sections and title followed by mounting it on the homepage and then setting up dynamic dummy course array to setup course cards correctly

Course Card Component Design
01:06:18

Designing a card that consists of images, titles and description to display in dashboard. Addition of dummy course contents to be rendered to create UI for course card

Context Function declaration rating
01:31:47

Creation of calculating chapter function that will calculate video duration and returning dummy json from context along with configuration changes in telwind config

Search Functionality
01:41:28

Setting up search functionality and setting up search course to filter according to search. and setup API call for the same by setting up dummy state function

Testimonial Section Design
01:58:55

Creating and styling of testimonial components then mounting them on the home page while configuring various properties

Call to Action Section Implementation
02:08:10

Call of Action section and its components. implementation and setting the button on home JSX file

Footer Implementation
02:12:05

Desgining the foter section for different screens based in logo description, contact information and newsletter subscribe option

Course Listing Component Design
02:27:14

Desining course listing component from header to display of item while using dynamic input from API for searching courses

Creating and Implementation of course Details Page
02:46:09

Desiging the course details to display title, rating etc. Then setting loading function and state while fetching data from the API during setup

Adding Rich Data and Text on description
03:15:48

Adding feature from the quill API to write rich text including various formats for describing text for any course

Configuration of the Enrolled Coures Section and Setting up data state
03:33:33

Configuration of what table row columns needed in this section with styling and configuration while setting up state changes in both context and table jsx files

Implementing React Components
04:11:15

Integration of components from React to implement structure and design as desired to complete the pages

Implementation of the video player component
04:37:14

Configuration of video player component inside ReactJS while setting up API hooks and onclick function calls

Design of the rating section and calling the rating component
04:58:25

Design of a dynamic feature that allows and user to rate using his profile. the user can change or update it any time

Implementation of Educator Dashboard and its API
05:24:56

Configure chart and dashboard data by setting up State function then calling chart as an API for the chart component to perform the dashboarding

Implementation of My Courses in Educator Page
05:37:15

API Implementation for publishing the different course in MY course dashboard data then calling student enrollment and dashboard component to perform UI operations

Backend Configuration
05:58:11

Setting up backend with all required packages such as express and import modules

Database Connection of the backend
06:03:05

Setting up the configuration to access database.com to provide the configuration file for the server to connect remotely

User Model and Implementation of functions
06:12:14

Implementation for users with controller function to update , insert and create functions.

API Implementation controller
06:19:48

Coler Hooks implementation as controller and also its type for different events success fails etc

Google Cloud Configurations
06:40:19

Set up and configuration of the cloud login using API keys, secret keys and name in the environment variable then setting it up using different custom functions

Creation of the Course Model
06:46:34

Defining Schemas and creating Models and its variable to add course materials and implement relations

Creation of Controller that will add new Course
07:04:05

Addition of Multer API key's to be connected and then to be imported in the controller after that, configuration of try and cat statements with its properties and variable values .

Implementation of all course listing
07:22:19

Importing all models and set them to use with the code and adding conditions and rendering conditions to perform listing

Set of Middle Wire so that only Admin can access the course content
07:55:41

Connecting the database with user_id to authenticate

Deploy Back End on Versal
08:10:26

Publish the full stack App to the Github after committing changes sync it to Versal for online deployment

Set of the Back End and Create a Webook on Coler
08:27:53

Config API Keys on the Color DashBoard then add to the ENV file , finally , pull Versal deployment url to complete

Set the all backend and then connect it to the client ENV file for setting state change for front end rendering
08:50:42

To set the App state change from front end , update use effects with relevant API data

Updating all functions and controllers to perform rating etc
09:25:58

Here are code changes and configuration changes to update, add reviews , and add to users and models for configuration

Connect Frontend function hooks
10:30:00

Connect the Frontend to Backend so the App can get the state change and sync the user profile for front-end user experince.

Configuration changes for educators
11:37:07

Addition of new state API calls, create functions, and then configuration with the controllers to publish and complete the build

Recently Summarized Articles

Loading...