Skip to content

asennesa/Spring-MVC-project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 

Repository files navigation

Spring-MVC-project

Spring Advanced Individual Project Assignment This is the Individual Project Assignment for the Spring Advanced Course @ SoftUni.

  1. General Requirements Your Web application should use the following technologies, frameworks and development techniques: • The application must be implemented using Spring Framework. o The application must have at least 12 web pages (views/components). o The application must have at least 5 independent entity models. o The application must have at least 5 controllers. o The application must have at least 5 services. o 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. o User 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. o Your registered users should have at least these roles: user and administrator. o User roles should be manageable from the application. o 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. o You 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). o When validation data, show appropriate messages to user

• Use at least 2 Interceptors/Filters. • 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.

  1. Online Project Defense Each student will have to deliver an online defense of its work in front of a trainer jury. Students will have only 20 minutes for the following: • Demonstrate how the application works (very shortly). • Show the source code and explain how it works. • Answer the jury's questions Please be strict in timing! On the 20th minute you will be interrupted! Be well prepared for presenting maximum of your work for minimum time.

  2. Assessment Criteria General Requirements – 70% • Functionality – 0…20 • Implementing controllers correctly (controllers should only do their work) – 0...5 • Implementing views correctly (using display and editor templates) – 0…5 • Testing (unit test and integration tests for some of the controllers using mocking) – 0…10 • Security (prevent SQL injection, XSS, CSRF, parameter tampering, etc.) – 0…5 • Data validation (validation in the models and input models) – 0…10 • Using model mapper and inversion of control – 0…5 • Using layers with multiple layouts – 0…10 • Code quality (well-structured code, following the MVC pattern, following SOLID principles, etc.) – 0…10 Answering Questions – 30 % Answer questions about potential functionality outside the scope of the project. Bonuses – up to 15 % • Use Spring Event somewhere in your application. • Implement one or more Advice (AOP). • Implement HATEOAS. • Using Spring WebFlux. • Using Angular/React/Vue for Front-End • Host the application in a cloud environment. • Use a file storage cloud API, e.g. Cloudinary, Dropbox, Google Drive or other for storing the files. • Use of features like Local Storage, SVG, Canvas, etc. • Implement Microservice architecture in your application. • Anything that is not described in the assignment is a bonus if it has some practical use.

  3. Submission Deadline • You must submit your project on the course page before 23:59 on the 5th of August using a survey that will show up on your course page on the 1st of August. • A presentation schedule will be available on the 7th and will include only the projects that were submitted beforehand. Non-submitted projects will NOT be evaluated.

  4. Additional Requirements • Follow the best practices for Object Oriented design and high-quality code for the Web application: o Use data encapsulation. o Use exception handling properly. o Use inheritance, abstraction and polymorphism properly. o Follow the principles of strong cohesion and loose coupling. o Correctly format and structure your code, name your identifiers and make the code readable. o Follow the concept of thin controllers.

• Well looking user interface (UI). • Good user experience (UX). • Use a source control system by choice, e.g. GitHub, BitBucket. o Submit a link to your public source code repository.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published