A database management system to organise notes, slides, question papers, etc. for university courses.
- Node.js with Express.js
- MySQL
- EJS
- Node.js and npm installed on your machine
- MySQL installed on your machine
- Bootstrap and FontAwesome installed locally (alternatively, you can replace the local paths with CDN links in
views/partials/header.ejs
).
-
Clone the repository:
git clone https://github.com/sushma1031/course-material-management.git
. -
Start the MySQL server and set up a MySQL account via your MySQL client (workbench or command line).
-
Execute the SQL statements in
database/schema.sql
.- Important: Note the foreign key relations and execute the statements in the corresponding order.
-
Create a
.env
file in the root directory of the project. -
Add your MySQL credentials as well as a session secret key to the .env file:
MYSQL_USER=<your-username> MYSQL_PASSWORD=<your-password> MYSQL_DB=course_management_db SESS_SECRET=<any-string>
-
Run
npm install
to install dependencies. -
Run
npm run dev
to start the application. -
Open your browser and navigate to
http://localhost:3000
.
The Course Material Management System has different user roles with specific permissions:
Admin
- Manage users (view, delete)
- Manage all course materials (add, edit, delete)
Teacher
- View, add and edit course materials
- View all users
- Cannot delete materials or users
Student
- View access to all course materials
- Cannot add, edit or delete course materials
- Cannot view all users