Skip to content

Latest commit

Β 

History

History
81 lines (54 loc) Β· 3.06 KB

File metadata and controls

81 lines (54 loc) Β· 3.06 KB

Course Management System πŸš€

πŸ—‚οΈ Description

The Course Management System is a comprehensive platform designed for managing courses, users, and admins. It provides a robust backend API for course creation, user registration, and admin authentication. This project aims to streamline course management processes, making it easier for admins to create and manage courses, and for users to purchase and access courses.

The system consists of a Node.js backend, utilizing Express.js, Prisma, and MongoDB to provide a scalable and efficient data storage solution. The API handles various endpoints for user and admin authentication, course management, and user-course interactions.

✨ Key Features

Authentication and Authorization πŸ”’

  • User registration and login
  • Admin registration and login
  • Token-based authentication and authorization

Course Management πŸ“š

  • Course creation, updating, and deletion (admin-only)
  • Course retrieval (public and user-specific)
  • User-course interactions (purchase and purchase status)

Data Modeling πŸ“Š

  • Prisma schema defining data models for Admin, User, Course, and UserCourse

πŸ—‚οΈ Folder Structure

graph TD;
src-->routes;
src-->middleware;
src-->index.js;
routes-->user.js;
routes-->admin.js;
routes-->course.js;
middleware-->auth.js;
Loading

πŸ› οΈ Tech Stack

Node.js Express.js Prisma MongoDB TypeScript

βš™οΈ Setup Instructions

To run the project locally:

  • Clone the repository: git clone https://github.com/ebhay/CourseManagmentSystem.git
  • Install dependencies: npm install
  • Create a .env file based on the env.template file
  • Run the application: npm start

🚨 GitHub Actions

This repository uses GitHub Actions for automated testing and deployment. The workflow is defined in the .github/workflows/main.yml file.

πŸ“ API Endpoints

The API provides various endpoints for user and admin authentication, course management, and user-course interactions. These endpoints are defined in the routes directory.

πŸ“Š Database Schema

The database schema is defined in the prisma/schema.prisma file, which uses Prisma's data modeling syntax to define the data models for Admin, User, Course, and UserCourse.



Abhay Gupta

Passionate developer & lifelong learner, seeking to break boundaries through code.


Made by GitFull