Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/princeinscripts/lms-website
Learning Management System (LMS) project, MERN (MongoDB, Express.js, React, Node.js) stack
https://github.com/princeinscripts/lms-website
axios bcrypt bcryptjs chartjs cloudinary cookie-parser cors dotenv express jwt-authentication mongodb mongoose multer nodejs nodemailer nodemon react react-router redux-toolkit vite
Last synced: about 1 month ago
JSON representation
Learning Management System (LMS) project, MERN (MongoDB, Express.js, React, Node.js) stack
- Host: GitHub
- URL: https://github.com/princeinscripts/lms-website
- Owner: PrinceInScripts
- Created: 2023-12-05T11:01:22.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2024-01-16T11:04:11.000Z (11 months ago)
- Last Synced: 2024-01-16T17:14:48.479Z (11 months ago)
- Topics: axios, bcrypt, bcryptjs, chartjs, cloudinary, cookie-parser, cors, dotenv, express, jwt-authentication, mongodb, mongoose, multer, nodejs, nodemailer, nodemon, react, react-router, redux-toolkit, vite
- Language: JavaScript
- Homepage:
- Size: 50 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
About Learning Management System (LMS) projec
* [Configuration and Setup](#configuration-and-setup)
* [Key Features](#key-features)
* [Technologies used](#technologies-used)
- [Frontend](#frontend)
- [Backend](#backend)
- [Database](#database)
* [📸 Screenshots](#screenshots)## Configuration and Setup
In order to run this project locally, simply fork and clone the repository or download as zip and unzip on your machine.
- Open the project in your prefered code editor.
- Go to terminal -> New terminal (If you are using VS code)
- Split your terminal into two (run the Frontend on one terminal and the Backend on the other terminal)In the first terminal
```
$ cd client
$ npm install (to install frontend-side dependencies)
$ npm run start (to start the frontend)
```In the second terminal
- cd backend and Set environment variables in config.env under ./config
- Create your mongoDB connection url, which you'll use as your MONGO_URI
- Supply the following credentials```
# --- Config.env ---NODE_ENV = development
PORT =5000
FRONTEND_URL =http://localhost:3000
MONGO_URL =
JWT_SECRET =
JWT_EXPIRY = 60mCONTACT_US_EMAIL
#cloundinary
CLOUDINARY_CLOUD_NAME =
CLOUDINARY_API_KEY =
CLOUDINARY_API_SECRET =# Nodemailer
SMTP_HOST = "smtp.gmail.com"
SMTP_PORT =
SMTP_USERNAME =
SMTP_PASSWORD =
SMTP_FROM_EMAIL =# Razorpay
RAZORPAY_KEY_ID =
RAZORPAY_SECRET =
RAZORPAY_PLAN_ID =```
```
# --- Terminal ---$ npm install (to install backend-side dependencies)
$ npm start (to start the backend)
```## Key Features
- User registration and login
- Authentication using JWT Tokens
- Redux Toolkit: State management for an intuitive and responsive user interface.
- Tailwind CSS Line Clamp: Effortless text truncation for a clean and modern design.
- Axios: Efficient HTTP client for smooth asynchronous data handling.
- Upload user ımages and story ımages to the server
- Chart.js: Integrated charting capabilities for insightful data visualization.
- Cloudinary: Streamlined media management for images and videos.
- React-Router-Dom: Smooth navigation within the single-page application.
- Responsive Design
## Technologies used
This project was created using the following technologies.
#### Frontend
- [React js ](https://www.npmjs.com/package/react) - JavaScript library that is used for building user interfaces specifically for single-page applications
- [React Hooks ](https://reactjs.org/docs/hooks-intro.html) - For managing and centralizing application state
- [react-router-dom](https://www.npmjs.com/package/react-router-dom) - To handle routing
- [axios](https://www.npmjs.com/package/axios) - For making Api calls
- [Css](https://developer.mozilla.org/en-US/docs/Web/CSS) - For User Interface
- [CK-Editor](https://ckeditor.com/docs/ckeditor5/latest/builds/guides/integration/frameworks/react.html) - Rich Text Editor
- [React icons](https://react-icons.github.io/react-icons/) -
Small library that helps you add icons to your react apps.#### Backend
- [Node js](https://nodejs.org/en/) -A runtime environment to help build fast server applications using JS
- [Express js](https://www.npmjs.com/package/express) -The server for handling and routing HTTP requests
- [Mongoose](https://mongoosejs.com/) - For modeling and mapping MongoDB data to JavaScript
- [express-async-handler](https://www.npmjs.com/package/express-async-handler) - Simple middleware for handling exceptions inside of async express routes and passing them to your express error handlers
- [jsonwebtoken](https://www.npmjs.com/package/jsonwebtoken) - For authentication
- [Bcryptjs](https://www.npmjs.com/package/bcryptjs) - For data encryption
- [Nodemailer](https://nodemailer.com/about/) - Send e-mails from Node.js
- [Dotenv](https://www.npmjs.com/package/dotenv) - Zero Dependency module that loads environment variables
- [multer](https://www.npmjs.com/package/multer) - Node.js middleware for uploading files
- [cors](https://www.npmjs.com/package/cors) - Provides a Connect/Express middleware#### Database
- [MongoDB ](https://www.mongodb.com/) - It provides a free cloud service to store MongoDB collections.
## Screenshots
![1](https://github.com/PrinceInScripts/Blog-App/assets/124567410/8b308448-c9f7-4c70-8592-ab1291d91f34)
![2](https://github.com/PrinceInScripts/Blog-App/assets/124567410/aa344acc-c1e9-4569-b86f-72a1a9749ffa)
![3](https://github.com/PrinceInScripts/Blog-App/assets/124567410/823e4e0e-2ecd-4153-958a-6bde583fe90f)
![4](https://github.com/PrinceInScripts/Blog-App/assets/124567410/d128ff59-ebbc-49b6-b282-76c26de5b621)
![5](https://github.com/PrinceInScripts/Blog-App/assets/124567410/5f44173b-d261-4c30-a16b-50fd3b12f751)
![6](https://github.com/PrinceInScripts/Blog-App/assets/124567410/0d9f798f-94bb-4dba-9529-3f6aaedd50f9)
![7](https://github.com/PrinceInScripts/Blog-App/assets/124567410/f04ebfd3-91c1-4e18-9dac-f878747e8720)
![8](https://github.com/PrinceInScripts/Blog-App/assets/124567410/9687a595-cfd1-49d8-a622-2420e5fbc247)
![9](https://github.com/PrinceInScripts/Blog-App/assets/124567410/208e4744-035e-4322-be2e-35bd5e924208)
![10](https://github.com/PrinceInScripts/Blog-App/assets/124567410/f63184f3-04eb-4827-b949-3791c3d655db)
![11](https://github.com/PrinceInScripts/Blog-App/assets/124567410/315ea8d1-a93d-4822-a31c-ec16dd11bff3)
![12](https://github.com/PrinceInScripts/Blog-App/assets/124567410/9965a2b4-e02b-42ee-af5c-862b25b32ca7)
![13](https://github.com/PrinceInScripts/Blog-App/assets/124567410/557c82ca-18a2-409d-a9db-abb3b56792b0)
![14](https://github.com/PrinceInScripts/Blog-App/assets/124567410/aad8ad74-a821-4cf0-9e10-53672af900e6)
![15](https://github.com/PrinceInScripts/Blog-App/assets/124567410/27807e72-6cd3-4086-b9c1-5db9513d754a)
![16](https://github.com/PrinceInScripts/Blog-App/assets/124567410/f3066d5e-fc2d-434e-a3d2-56083c3cea5a)
![17](https://github.com/PrinceInScripts/Blog-App/assets/124567410/81262e44-f13b-4932-8a31-ddbfe5ce8b28)
![18](https://github.com/PrinceInScripts/Blog-App/assets/124567410/fe61ed64-c4bf-43fd-962b-3fe224bb04ab)
![19](https://github.com/PrinceInScripts/Blog-App/assets/124567410/c9efd642-dbb0-49da-bc1e-87f747661d1f)
![20](https://github.com/PrinceInScripts/Blog-App/assets/124567410/263acb64-2e47-42df-8c5e-1c061828144b)
![21](https://github.com/PrinceInScripts/Blog-App/assets/124567410/c019ad37-768e-4bcf-a57a-109ef51d348c)
![22](https://github.com/PrinceInScripts/Blog-App/assets/124567410/a2c84d65-025e-44e3-86eb-076cf7bbb124)