/SimpleBlogSystem

A simple blog system made using Spring Framework.

Primary LanguageJava

SimpleBlogSystem

A simple blog system made using Spring Framework.

Teamwork Project Assignment for the SPRING MVC Course @ SoftUni

General Requirements

Your Web application should use the following technologies, frameworks and development techniques:

  • The application must be implemented using SPRING MVC framework.
  • The application must have at least 8 web pages (views)
  • The application must have at least 4 entity models
  • The application must have at least 4 controllers
  • Use IntelliJ or Eclipse.
  • Use Thymeleaf or JSP template engine for generating the UI.
  • Use fragments.
  • You could also make the front-end using JavaScript and consuming a rest service from Web API
  • Use MySQL/Oracle/PostgreSQL as a database back-end.
  • Use Spring Data to access your database.
  • User Hibernate/EclipseLink or any other provider as a JPA implementation
  • Use responsive design based on Twitter Bootstrap/Google Material design.
  • Use the standard Spring Security for managing users and roles.
  • Your registered users should have at least one of these roles: user and administrator.
  • Use AJAX request to asynchronously load and display data somewhere in your application.
  • Write unit tests for your logic, controllers, actions, helpers, etc.
  • 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 <br /> and <script> (escape special characters).
  • Use at least one Interceptor
  • Use ModelМapper or other mapping library.

Additional Requirements

  • Follow the best practices for OO design and high-quality code for the Web application:
  • Use data encapsulation.
  • Use exception handling properly.
  • Use inheritance, abstraction and polymorphism properly.
  • Follow the principles of strong cohesion and loose coupling.
  • Correctly format and structure your code, name your identifiers and make the code readable.
  • Well looking user interface (UI).
  • Good usability (easy to use UI).
  • Supporting of all modern Web browsers.
  • Use caching where appropriate.
  • Use a source control system by choice, e.g. GitHub, BitBucket.
  • Submit a link to your public source code repository.

Public Project Defense

Each student will have to deliver a public defense of its work in front of the other students, trainers and assistants. Students will have only 15 minutes for the following:

  • Demonstrate how the application works (very shortly).
  • Show the source code and explain how it works.
  • Optionally you might prepare a presentation (3-4 slides). Please be strict in timing! On the 15th minute you will be interrupted! It is good idea to leave the last 2-3 minutes for questions from the other students, trainers and assistants. Be well prepared for presenting maximum of your work for minimum time. Bring your own laptop. Test it preliminary with the multimedia projector. Open the project assets beforehand to save time.

Bonuses

  • Use Spring Social to connect with Software-as-a-Service (SaaS) API providers
  • Host the application in a cloud environment, e.g. in Amazon Web Services.
  • Use a file storage cloud API, e.g. Dropbox, Google Drive or other for storing the files.
  • Use of features of HTML 5 like Geolocation, Local Storage, SVG, Canvas, etc.
  • Anything that is not described in the assignment is a bonus if it has some practical use.

Assessment Criteria

  • Functionality0…20
  • Implementing controllers correctly (controllers should do only their work) – 0...5
  • Implementing views correctly (using display and editor templates) – 0…5
  • Unit tests (unit test 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 auto mapper and inversion of control0…5
  • Using areas with multiple layouts0…10
  • Code quality (well-structured code, following the MVC pattern, following SOLID principles, etc.) – 0…10
  • Bonus (bonus points are given for exceptional project) – 0…25