├── .dockerignore ├── .github ├── Architecture.png ├── LMS_API.postman_collection └── Structure.png ├── .gitignore ├── .husky └── pre-commit ├── .prettierignore ├── .prettierrc.json ├── Dockerfile ├── License ├── README.md ├── app.js ├── bin ├── seed └── www ├── config ├── constants.js ├── firebase.js ├── logger.js ├── mongodb.js ├── passport.js ├── redis.js └── sendGrid.js ├── controllers ├── accessCode.controller.js ├── admin.controller.js ├── auth.controller.js ├── grade.controller.js ├── index.js ├── lesson.controller.js ├── quiz.controller.js └── student.controller.js ├── events ├── emitter.js ├── index.js └── subscribers │ ├── lesson.subscriber.js │ └── quiz.subscriber.js ├── heroku.yml ├── middlewares ├── asyncErrors.js ├── auth.js ├── rateLimiter.js └── validator.js ├── models ├── AccessCode.model.js ├── Action.model.js ├── Admin.model.js ├── Grade.model.js ├── Lesson.model.js ├── Message.model.js ├── Quiz.model.js ├── Student.model.js └── index.js ├── package.json ├── routes └── v1 │ ├── accessCode.route.js │ ├── admin.route.js │ ├── auth.route.js │ ├── grade.route.js │ ├── index.js │ ├── lesson.route.js │ ├── quiz.route.js │ └── student.route.js ├── seeders ├── accessCode.seeder.js ├── admin.seeder.js ├── grade.seeder.js ├── index.js ├── lesson.seeder.js ├── quiz.seeder.js └── student.seeder.js ├── services ├── accessCode.service.js ├── action.service.js ├── admin.service.js ├── auth.service.js ├── grade.service.js ├── index.js ├── lesson.service.js ├── mail.service.js ├── message.service.js ├── notification.service.js ├── quiz.service.js ├── storage.service.js └── student.service.js ├── sockets └── v1 │ ├── index.js │ └── message.socket.js ├── utils ├── boomifyError.util.js ├── formatLink.util.js ├── index.js ├── removeArrayDuplicates.util.js └── socketWrap.util.js └── validations ├── accessCode.validator.js ├── admin.validator.js ├── auth.validator.js ├── grade.validator.js ├── index.js ├── lesson.validator.js ├── quiz.validator.js └── student.validator.js /.dockerignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | npm-debug.log -------------------------------------------------------------------------------- /.github/Architecture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amrdb/private-lessons-lms/HEAD/.github/Architecture.png -------------------------------------------------------------------------------- /.github/LMS_API.postman_collection: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amrdb/private-lessons-lms/HEAD/.github/LMS_API.postman_collection -------------------------------------------------------------------------------- /.github/Structure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amrdb/private-lessons-lms/HEAD/.github/Structure.png -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amrdb/private-lessons-lms/HEAD/.gitignore -------------------------------------------------------------------------------- /.husky/pre-commit: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | . "$(dirname "$0")/_/husky.sh" 3 | 4 | npx lint-staged -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | node_modules -------------------------------------------------------------------------------- /.prettierrc.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amrdb/private-lessons-lms/HEAD/.prettierrc.json -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amrdb/private-lessons-lms/HEAD/Dockerfile -------------------------------------------------------------------------------- /License: -------------------------------------------------------------------------------- 1 | Commercial use is not allowed. 2 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amrdb/private-lessons-lms/HEAD/README.md -------------------------------------------------------------------------------- /app.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amrdb/private-lessons-lms/HEAD/app.js -------------------------------------------------------------------------------- /bin/seed: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amrdb/private-lessons-lms/HEAD/bin/seed -------------------------------------------------------------------------------- /bin/www: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amrdb/private-lessons-lms/HEAD/bin/www -------------------------------------------------------------------------------- /config/constants.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amrdb/private-lessons-lms/HEAD/config/constants.js -------------------------------------------------------------------------------- /config/firebase.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amrdb/private-lessons-lms/HEAD/config/firebase.js -------------------------------------------------------------------------------- /config/logger.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amrdb/private-lessons-lms/HEAD/config/logger.js -------------------------------------------------------------------------------- /config/mongodb.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amrdb/private-lessons-lms/HEAD/config/mongodb.js -------------------------------------------------------------------------------- /config/passport.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amrdb/private-lessons-lms/HEAD/config/passport.js -------------------------------------------------------------------------------- /config/redis.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amrdb/private-lessons-lms/HEAD/config/redis.js -------------------------------------------------------------------------------- /config/sendGrid.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amrdb/private-lessons-lms/HEAD/config/sendGrid.js -------------------------------------------------------------------------------- /controllers/accessCode.controller.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amrdb/private-lessons-lms/HEAD/controllers/accessCode.controller.js -------------------------------------------------------------------------------- /controllers/admin.controller.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amrdb/private-lessons-lms/HEAD/controllers/admin.controller.js -------------------------------------------------------------------------------- /controllers/auth.controller.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amrdb/private-lessons-lms/HEAD/controllers/auth.controller.js -------------------------------------------------------------------------------- /controllers/grade.controller.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amrdb/private-lessons-lms/HEAD/controllers/grade.controller.js -------------------------------------------------------------------------------- /controllers/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amrdb/private-lessons-lms/HEAD/controllers/index.js -------------------------------------------------------------------------------- /controllers/lesson.controller.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amrdb/private-lessons-lms/HEAD/controllers/lesson.controller.js -------------------------------------------------------------------------------- /controllers/quiz.controller.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amrdb/private-lessons-lms/HEAD/controllers/quiz.controller.js -------------------------------------------------------------------------------- /controllers/student.controller.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amrdb/private-lessons-lms/HEAD/controllers/student.controller.js -------------------------------------------------------------------------------- /events/emitter.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amrdb/private-lessons-lms/HEAD/events/emitter.js -------------------------------------------------------------------------------- /events/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amrdb/private-lessons-lms/HEAD/events/index.js -------------------------------------------------------------------------------- /events/subscribers/lesson.subscriber.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amrdb/private-lessons-lms/HEAD/events/subscribers/lesson.subscriber.js -------------------------------------------------------------------------------- /events/subscribers/quiz.subscriber.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amrdb/private-lessons-lms/HEAD/events/subscribers/quiz.subscriber.js -------------------------------------------------------------------------------- /heroku.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amrdb/private-lessons-lms/HEAD/heroku.yml -------------------------------------------------------------------------------- /middlewares/asyncErrors.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amrdb/private-lessons-lms/HEAD/middlewares/asyncErrors.js -------------------------------------------------------------------------------- /middlewares/auth.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amrdb/private-lessons-lms/HEAD/middlewares/auth.js -------------------------------------------------------------------------------- /middlewares/rateLimiter.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amrdb/private-lessons-lms/HEAD/middlewares/rateLimiter.js -------------------------------------------------------------------------------- /middlewares/validator.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amrdb/private-lessons-lms/HEAD/middlewares/validator.js -------------------------------------------------------------------------------- /models/AccessCode.model.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amrdb/private-lessons-lms/HEAD/models/AccessCode.model.js -------------------------------------------------------------------------------- /models/Action.model.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amrdb/private-lessons-lms/HEAD/models/Action.model.js -------------------------------------------------------------------------------- /models/Admin.model.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amrdb/private-lessons-lms/HEAD/models/Admin.model.js -------------------------------------------------------------------------------- /models/Grade.model.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amrdb/private-lessons-lms/HEAD/models/Grade.model.js -------------------------------------------------------------------------------- /models/Lesson.model.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amrdb/private-lessons-lms/HEAD/models/Lesson.model.js -------------------------------------------------------------------------------- /models/Message.model.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amrdb/private-lessons-lms/HEAD/models/Message.model.js -------------------------------------------------------------------------------- /models/Quiz.model.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amrdb/private-lessons-lms/HEAD/models/Quiz.model.js -------------------------------------------------------------------------------- /models/Student.model.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amrdb/private-lessons-lms/HEAD/models/Student.model.js -------------------------------------------------------------------------------- /models/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amrdb/private-lessons-lms/HEAD/models/index.js -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amrdb/private-lessons-lms/HEAD/package.json -------------------------------------------------------------------------------- /routes/v1/accessCode.route.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amrdb/private-lessons-lms/HEAD/routes/v1/accessCode.route.js -------------------------------------------------------------------------------- /routes/v1/admin.route.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amrdb/private-lessons-lms/HEAD/routes/v1/admin.route.js -------------------------------------------------------------------------------- /routes/v1/auth.route.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amrdb/private-lessons-lms/HEAD/routes/v1/auth.route.js -------------------------------------------------------------------------------- /routes/v1/grade.route.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amrdb/private-lessons-lms/HEAD/routes/v1/grade.route.js -------------------------------------------------------------------------------- /routes/v1/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amrdb/private-lessons-lms/HEAD/routes/v1/index.js -------------------------------------------------------------------------------- /routes/v1/lesson.route.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amrdb/private-lessons-lms/HEAD/routes/v1/lesson.route.js -------------------------------------------------------------------------------- /routes/v1/quiz.route.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amrdb/private-lessons-lms/HEAD/routes/v1/quiz.route.js -------------------------------------------------------------------------------- /routes/v1/student.route.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amrdb/private-lessons-lms/HEAD/routes/v1/student.route.js -------------------------------------------------------------------------------- /seeders/accessCode.seeder.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amrdb/private-lessons-lms/HEAD/seeders/accessCode.seeder.js -------------------------------------------------------------------------------- /seeders/admin.seeder.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amrdb/private-lessons-lms/HEAD/seeders/admin.seeder.js -------------------------------------------------------------------------------- /seeders/grade.seeder.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amrdb/private-lessons-lms/HEAD/seeders/grade.seeder.js -------------------------------------------------------------------------------- /seeders/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amrdb/private-lessons-lms/HEAD/seeders/index.js -------------------------------------------------------------------------------- /seeders/lesson.seeder.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amrdb/private-lessons-lms/HEAD/seeders/lesson.seeder.js -------------------------------------------------------------------------------- /seeders/quiz.seeder.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amrdb/private-lessons-lms/HEAD/seeders/quiz.seeder.js -------------------------------------------------------------------------------- /seeders/student.seeder.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amrdb/private-lessons-lms/HEAD/seeders/student.seeder.js -------------------------------------------------------------------------------- /services/accessCode.service.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amrdb/private-lessons-lms/HEAD/services/accessCode.service.js -------------------------------------------------------------------------------- /services/action.service.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amrdb/private-lessons-lms/HEAD/services/action.service.js -------------------------------------------------------------------------------- /services/admin.service.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amrdb/private-lessons-lms/HEAD/services/admin.service.js -------------------------------------------------------------------------------- /services/auth.service.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amrdb/private-lessons-lms/HEAD/services/auth.service.js -------------------------------------------------------------------------------- /services/grade.service.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amrdb/private-lessons-lms/HEAD/services/grade.service.js -------------------------------------------------------------------------------- /services/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amrdb/private-lessons-lms/HEAD/services/index.js -------------------------------------------------------------------------------- /services/lesson.service.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amrdb/private-lessons-lms/HEAD/services/lesson.service.js -------------------------------------------------------------------------------- /services/mail.service.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amrdb/private-lessons-lms/HEAD/services/mail.service.js -------------------------------------------------------------------------------- /services/message.service.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amrdb/private-lessons-lms/HEAD/services/message.service.js -------------------------------------------------------------------------------- /services/notification.service.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amrdb/private-lessons-lms/HEAD/services/notification.service.js -------------------------------------------------------------------------------- /services/quiz.service.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amrdb/private-lessons-lms/HEAD/services/quiz.service.js -------------------------------------------------------------------------------- /services/storage.service.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amrdb/private-lessons-lms/HEAD/services/storage.service.js -------------------------------------------------------------------------------- /services/student.service.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amrdb/private-lessons-lms/HEAD/services/student.service.js -------------------------------------------------------------------------------- /sockets/v1/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amrdb/private-lessons-lms/HEAD/sockets/v1/index.js -------------------------------------------------------------------------------- /sockets/v1/message.socket.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amrdb/private-lessons-lms/HEAD/sockets/v1/message.socket.js -------------------------------------------------------------------------------- /utils/boomifyError.util.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amrdb/private-lessons-lms/HEAD/utils/boomifyError.util.js -------------------------------------------------------------------------------- /utils/formatLink.util.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amrdb/private-lessons-lms/HEAD/utils/formatLink.util.js -------------------------------------------------------------------------------- /utils/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amrdb/private-lessons-lms/HEAD/utils/index.js -------------------------------------------------------------------------------- /utils/removeArrayDuplicates.util.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amrdb/private-lessons-lms/HEAD/utils/removeArrayDuplicates.util.js -------------------------------------------------------------------------------- /utils/socketWrap.util.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amrdb/private-lessons-lms/HEAD/utils/socketWrap.util.js -------------------------------------------------------------------------------- /validations/accessCode.validator.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amrdb/private-lessons-lms/HEAD/validations/accessCode.validator.js -------------------------------------------------------------------------------- /validations/admin.validator.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amrdb/private-lessons-lms/HEAD/validations/admin.validator.js -------------------------------------------------------------------------------- /validations/auth.validator.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amrdb/private-lessons-lms/HEAD/validations/auth.validator.js -------------------------------------------------------------------------------- /validations/grade.validator.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amrdb/private-lessons-lms/HEAD/validations/grade.validator.js -------------------------------------------------------------------------------- /validations/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amrdb/private-lessons-lms/HEAD/validations/index.js -------------------------------------------------------------------------------- /validations/lesson.validator.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amrdb/private-lessons-lms/HEAD/validations/lesson.validator.js -------------------------------------------------------------------------------- /validations/quiz.validator.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amrdb/private-lessons-lms/HEAD/validations/quiz.validator.js -------------------------------------------------------------------------------- /validations/student.validator.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amrdb/private-lessons-lms/HEAD/validations/student.validator.js --------------------------------------------------------------------------------