model component of course management system.
-This repository represent the model component, you can found controller-view component at repository link below:
https://github.com/LNMA/course_management_system-controller-view
- Make sure you have JDK 11 && tomcat v9.0.37 && mysql v8.0.21 .
- Add project schema to your db; you can found project dumps at dumps file in the repository, and contain two dumps 1.empty schema 2.schema with pre-register admin with password
12345678
.
If you want ddl build schema, creat empty schema (In our case schema name:
course_management_system
) then runcom.louay.model.config.MySpringBootJDBCApplication
class.
- Edit TODO commit, and will be your db username and password.
- Add to your Run/Debug configuration
com.louay.model.config.MySpringBootJDBCApplication
class. - Mapping spring configuration classes.
In intellij you can find it at project
structure/facets/spring/add
then add it all, also make sure there are no duplicates.
- Deploy project using maven before depoly controller-view component.
- Next, deploy controller-view component of the project.
What is course management system ?
course ms is graduate project from Software engineer training program at: Engineers Training Center / Jordan Engineers Association
.
I am Louay Amr who is the author, and the designer of project.
What is the idea of the project?
- course ms provide several authentications and authorization methods.
- sign up pages to student and instructor and verify user id by sending verification email.
- login page tracking the user via cookies and session and url.
- bootstrap 4 to order the page css.
- security filters using spring security, csrf protection, roles for each user using spring security and view layer.
- REST API using spring web-mvc and angularjs 1.8.
- json binding and converter using jackson.
- upload images and pdf files using commons-fileupload library.
- an encrypted password using Argon2 Algorithm.
- secure channel using JSSE-https-TLSv1.3.
- build xls file using org.apache.poi.
- jpa-hibernate was used to build modal component of the project.
- mysql 8 uses as database.
- spring orm side by side with hibernate.
- spring Ioc used at level dao and service also controllers.
What are the features the project provides?
- login and sign up pages with suitable validation.
- home pages for each user according to its permission.
- search service, can search for user, course, material, feedback.
- edit and view user profile.
- search for course only.
- review page to account and course.
- student join service with suitable validation.
- logout service.
- course home page.
- instructor role can edit its course info.
- course search service can search at course material, feedback.
- exit from course, and change user status.
- user status can see at account review page online/offline, at course/out course.
- user notification for new material, feedback.
- feedback for each course, can post text/image/text-image post.
- comment at feedback service, can user write comment for each post.
- edit/delete feedback service.
- material service for each course, can users view/add/edit material according to its role.
- material can be link, image, pdf files.
- ajax often used to submit form, that mean reloads page neglected.
- admin only can register instructor users, export attendances student sheet.
- after user finish sign up process email will be sent at user email to valid user account.
- show user joined courses at home page.
- review account show user info plus status plus joined courses list.
- review course page show course info plus member list plus join to course service.
- add course service provide to instructor role.
- security present at all level.