Our project is a Spring MVC-based web application designed to manage and display contact information. The primary purpose of this application is to provide a user-friendly interface where users can submit contact details through a form, view a list of submitted contacts, and filter these contacts based on specific criteria.
Explain how to set up and run your project. Include steps for:
- Cloning the repository.
- Installing dependencies.
- Running the application.
Detail the key features of the project and where they can be found in your code.
- Description: Briefly describe how you've implemented this feature.
- Location:
src/main/java/com/lambton/project/...
- Description: This feature includes a form where users can input their details. Validation is performed on the server side.
- Location:
- Form:
src/main/resources/templates/contact.html - Controller:
src/main/java/com/lambton/project/ContactController.java - Validation:
src/main/java/com/lambton/project/Contact.java
- Form:
- Description: Details from the form are persisted into a database after passing validation.
- Location:
src/main/java/com/lambton/project/ContactRepository.java
- Description: Users can view a list of items entered through the form. The list supports optional filtering.
- Location:
src/main/java/com/lambton/project/ContactController.java(method:listContacts)
- Description: An API that returns the number of page hits, which is called asynchronously every 3 seconds.
- Location:
- API:
src/main/java/com/lambton/project/PageHitController.java - Frontend implementation:
src/main/resources/templates/index.html
- API:
- Description: Example of how dependency injection is used in the project.
- Location:
src/main/java/com/lambton/project/ContactController.java
- Description: The application uses CSS for styling to ensure an aesthetically pleasing website.
- Location:
src/main/resources/static/css/style.css
- Description: Classes in the project are accompanied by unit tests.
- Location:
src/test/java/com/lambton/project/...
- Description: This README file contains all the necessary information and locations for each requirement in the project.