Spring & Thymeleaf project
Java MVC Frameworks
Individual Project Assignment
This is the Individual Project Assignment for the Spring MVC Frameworks Course @ SoftUni.
General Requirements
Your Web application should use the following technologies, frameworks and development techniques:
•The application must be implemented using Spring Framework.
oThe application must have at least 12 web pages (views).
oThe application must have at least 5 independent entity models.
oThe application must have at least 5 controllers.
oThe application must have at least 5 services.
oThe application must have at least 5 repositories.
oOptionally, you may use Spring Data REST.
•Use IntelliJ or Eclipse.
oUse Thymeleaf template engine for generating the UI.
Use fragments.
oYou could also make the Front-End using JavaScript, consuming REST services from a Web API.
•Use MySQL / Oracle / PostgreSQL as a database.
•Use Spring Data to access your database.
oUser Hibernate / EclipseLink or any other provider as a JPA implementation.
•Implement Responsive Web Page Design based on Bootstrap / Google Material Design.
•Use the standard Spring Security for managing users and roles.
oYour registered users should have at least these roles: user and administrator.
oUser roles should be managable from the application.
oMake sure the role management is secured and error-safe.
•Use AJAX to asynchronously load and display data somewhere in your application.
•Write Unit Tests for your logic, services, repository query methods, helpers, etc.
oYou should have at least 80% coverage on your business logic.
•Implement Error Handling and Data Validation to avoid crashes when invalid data is entered (both client-side and server-side).
•Handle correctly the special HTML characters and tags like
and <script> (escape special characters).
•Use at least 2 Interceptors.
•Run asynchronous tasks for jobs that do not need to run sequential or for jobs in the background.
•Schedule jobs that impact the whole application running e.g. once/twice a day.
•Use ModelМapper or other mapping library.