The UPT Web Application is a comprehensive academic management system designed to facilitate the administration of various academic activities at Universidade Portucalense Infante D. Henrique (UPT). The application is built using modern web technologies and frameworks to provide a robust, scalable, and user-friendly experience.
- User Authentication and Session Management: Secure login and session management for different user roles (Master, Director, Coordinator).
- Curricular Unit Management: Create, edit, and manage curricular units.
- Room Management: Add, edit, and remove rooms.
- PDF Generation: Generate PDFs for various academic reports.
- Role-Based Access Control: Different functionalities and access levels for Masters, Directors, and Coordinators.
- Responsive Design: User-friendly interface optimized for various devices.
- Java 17: Core programming language for the backend.
- Spring Boot 3.3.5: Framework for building backend services.
- Spring Boot Starter Data JPA: For database interactions.
- Spring Boot Starter Web: For building web applications.
- Spring Boot Starter Thymeleaf: For server-side HTML rendering.
- Spring Boot Starter Logging: For logging purposes.
- Hibernate 6.5.3.Final: ORM framework for database operations.
- Jakarta Validation API 3.0.2: For input validation.
- HikariCP: Connection pooling for efficient database access.
- MySQL: Primary database used for storing application data.
- H2 Database: In-memory database for testing.
- iTextPDF 5.5.13.2: For generating PDF documents.
- Thymeleaf: Template engine for rendering HTML on the server side.
- HTML5 & CSS3: For structuring and styling web pages.
- JavaScript: For client-side scripting and interactivity.
- Gradle: Build automation tool used for managing dependencies and building the project.
- JUnit 5: For unit and integration testing.
- Mockito: For mocking dependencies in tests.
- Spring Boot Test: For testing Spring Boot applications.
├── .gitattributes
├── .gitignore
├── .gradle/
├── .vscode/
├── bin/
├── build/
├── gradle/
├── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/upt/upt/
│ │ │ ├── controller/
│ │ │ ├── entity/
│ │ │ ├── repository/
│ │ │ ├── service/
│ │ │ ├── UptWebApplication.java
│ │ │ ├── UptWebConfig.java
│ │ │ └── UptWebController.java
│ │ ├── resources/
│ │ ├── static/
│ │ ├── templates/
│ │ └── application.properties
│ ├── test/
│ ├── java/
│ │ └── com/upt/upt/
│ │ ├── UptWebApplicationTest.java
│ │ └── UptWebControllerTest.java
│ └── resources/
│ └── application-test.properties
├── build.gradle
├── gradlew
├── gradlew.bat
├── HELP.md
└── settings.gradle
Before getting started, ensure the following are installed:
- Java 17
- MySQL: Set up a MySQL database.
- Gradle: Ensure Gradle is installed.
- Database Configuration: Update the
application.propertiesfile with your MySQL database credentials:spring.datasource.url=jdbc:mysql://localhost:3306/uptQsProjectDB spring.datasource.username=root spring.datasource.password=password
To build the project, navigate to the project root directory and run:
./gradlew buildTo run the application, use the following command:
./gradlew bootRunThe application will start on port 8080 by default. You can access it at http://localhost:8080.
To run the tests, use the following command:
./gradlew test- Login: Navigate to http://localhost:8080/login to access the login page.
- Roles: Depending on the user role (Master, Director, Coordinator), you will be redirected to different dashboards after logging in.
- Create UC: Navigate to the Coordinator dashboard and click on "Create UC".
- Edit UC: Select a UC from the list and click on "Edit".
- Add Room: Navigate to the Master dashboard and click on "Add Room".
- Edit Room: Select a room from the list and click on "Edit".
- Generate PDF: Navigate to the relevant section (e.g., Coordinator dashboard) and click on "Generate PDF".
For further reference, please check out the following resources:
- Official Gradle Documentation
- Spring Boot Gradle Plugin Reference Guide
- Create an OCI Image
- Gradle Build Scans
This project is licensed under the Apache License, Version 2.0. See the LICENSE file for details.
Thank you for using the UPT Web Application. If you have any questions or need further assistance, feel free to contact us!