This project was created using create-payload-app using the ts-blank template.
- Node.js 14.x
- Yarn 1.x
- MongoDB 4.x
yarn dev
will start up your application and reload on any changes.
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
This app is a simple LMS (Learning Management System) that allows users to:
- 🎓 Create courses and lessons
- 📑 Enroll in courses and view lessons
- 💰 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)
- 📖 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
- ⏰ 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)
- ✏️ Add the lesson content with a rich text editor
- 🔗 Add links to different resources in the lesson
- 📋 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)
- 💬 Add comments to the lesson
- ⭐ Add reviews to the product
- 🌟 Add a rating to the product
- 💰 User can check their payment history
- 💰 User can have multiple payment methods
- 👤 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.