Skip to content

LMS backend using payload as the CMS and the backend

Notifications You must be signed in to change notification settings

guillermoscript/lms

Repository files navigation

lms

This project was created using create-payload-app using the ts-blank template.

Requirements

  • Node.js 14.x
  • Yarn 1.x
  • MongoDB 4.x

How to Use

yarn dev will start up your application and reload on any changes.

Docker

If you have docker and docker-compose installed, you can run docker-compose up To build the docker image, run docker build -t my-tag . Ensure you are passing all needed environment variables when starting up your container via --env-file or setting them with your deployment. The 3 typical env vars will be MONGODB_URI, PAYLOAD_SECRET, and PAYLOAD_CONFIG_PATH docker run --env-file .env -p 3000:3000 my-tag

💻 The app

This app is a simple LMS (Learning Management System) that allows users to:

Courses and Lessons

  • 🎓 Create courses and lessons
  • 📑 Enroll in courses and view lessons

Subscriptions and Products

  • 💰 Create plans for subscriptions with x amount of courses and x amount of lessons per course
  • 📆 Set the periodicity of the subscription to monthly, bi-monthly, quarterly, semi-annually or annually
  • 📦 Create products to sell courses, plans and other products
  • 🛒 Buy a product and generate an order with order details
  • 🔎 View all orders and order details (admin only)
  • 💸 Set an order as paid (admin only)

Viewing Courses and Lessons

  • 📖 View a course and the lessons in the course (if the product was a course type)
  • 📚 View the courses in a plan and the lessons in the courses (if the product was a plan type) as long as the subscription is active

Subscriptions and Renewals

  • ⏰ Receive a new order of type subscription renewal when the subscription expires
  • 💳 Pay for the subscription again (user only)
  • 👀 View all subscriptions and subscription renewals (admin only)
  • ✔️ Set subscriptions and subscription renewals as paid (admin only)
  • ⌛ Have a cron job run every day to check if the subscription has expired and set it to inactive if it has (user only)

Lesson Content

  • ✏️ Add the lesson content with a rich text editor
  • 🔗 Add links to different resources in the lesson

Evaluations

  • 📋 Option to create an evaluation for the lesson
  • 📝 The evaluation could be type homework or exam
  • 🛠️ If it's type exam, a form builder will be added so you can add the forms to the evaluation
  • ☑️ The form could be an input, select, checkbox, radio, etc.
  • 📝 Once added, the students could submit the exam and the teacher could see student answers and grade them
  • 💬 The teacher could add a comment to the student and if they pass or not
  • 📝 For the homework type, the teacher could add a comment to the student and if they pass or not (work in progress)

Reviews and Ratings

  • 💬 Add comments to the lesson
  • ⭐ Add reviews to the product
  • 🌟 Add a rating to the product

Payments

  • 💰 User can check their payment history
  • 💰 User can have multiple payment methods

Generals

  • 👤 User can edit their profile
  • 📝 Add categories to the courses, plans, products and lessons
  • 🔎 upload images to the courses, plans, products and lessons

This app provides a comprehensive set of features for managing courses, subscriptions, and orders, and is designed to be easy to use for both users and administrators. this is a work in progress, so there are still some features to be added and some bugs to be fixed. for the bugs you can check the issues section of this repo. for the issues that are not listed, you can create a new issue and I will try to fix it as soon as possible.

Any contributions are welcome 😄

About

LMS backend using payload as the CMS and the backend

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published