Individual Project Assignment for the Spring Advanced Course @ SoftUni.
Try it - https://kozmetichno.herokuapp.com/
My web application should use the following technologies, frameworks and development techniques:
• The application must be implemented using Spring Framework.
• The application must have at least 12 web pages (views/components).
• The application must have at least 5 independent entity models.
• The application must have at least 5 controllers.
• The application must have at least 5 services.
• The application must have at least 5 repositories.
• Use Thymeleaf template engine or make the Front-End using JavaScript, consuming REST services from a Web API.
• Use MySQL / Oracle / PostgreSQL / MariaDB as a database.
• Use Spring Data to access your database.
• Use 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.
• Your registered users should have at least these roles: user and administrator.
• User roles should be manageable from the application.
• Make 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.
• You should have at least 60% 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).
• When validation data, show appropriate messages to user.
• 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 another mapping library.
• Implement one or more Advice (AOP).
• Use a file storage cloud API, e.g. Cloudinary, Dropbox, Google Drive or other for storing the files.