-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Welcome to the documentation for the Esse3-Bootleg MVC Web Application.
This project aims to develop a web app designed for student career management and teacher course management and mark assignments for the course of Advanced Programming of Cryptographic Methods.
The application offers authentication, role-based access, and tailored dashboards. Role-based access distinguishes student, teacher, and administrator privileges. Students access a dashboard displaying enrolled and accessible courses with grades. Professors utilize a specialized dashboard for course management and grade assignments. Administrators can add student and teacher accounts, and also courses.
The app is an MVC web app implemented following the J2EE design pattern. Data persistence is ensured by a PostgreSQL database that must ensure data at rest confidentiality. The model communication with the database is mediated by Java Persistence API (JPA) and must guarantee data in motion confidentiality. Also, client-server communication must be encrypted. TLS with self-signed certificates will be used. Grades assignation operated by the teacher role must be signed.
To run the application locally, you'll need to have the following software, tools, and dependencies installed:
-
Docker:
- Version: 24.0.7
- Docker Installation Guide
-
Docker Compose:
- Version: 2.23.1
- Docker Compose Installation Guide
Since the infrastructure is dockerized, deploying the application is straightforward. Follow these steps:
-
Clone the Repository:
git clone git@github.com:lallo-unitn/Esse3-Bootleg-APFCM.git cd Esse3-Bootleg-APFCM
-
Up the docker infrastructure:
docker-compose up
This command initializes and starts the Docker containers based on the configurations in the docker-compose.yml file. The application, along with its dependencies, will be deployed.
Once the containers are up and running, you can access the application by navigating to http://localhost:8080/adv_prog_project_war in your web browser.
-
Down the Docker Infrastructure:
docker-compose down
The tech stack for this project is composed of the following components:
-
Database:
- PostgreSQL v. 16.1
-
Application Server:
- WildFly 30.0.0-Final
-
Java Development Kit (JDK):
- OpenJDK 17
-
Model (Persistence):
- Java Persistence API (JPA) with Hibernate
-
Control:
- Servlets
-
View:
- JavaServer Pages (JSP)
This project is licensed under the GNU General Public License v3.0 (GPL-3.0). See the LICENSE file for details.