The system provides CRUD operations (create, read, update and delete data from database), role-based access control (RBAC) and login, logout functionality.
To protect from too many login attempt with incorrect password, account will be locked for more than 3 failed log in.
It will be automatically unlocked after one hour.
- Front-end
- Thymeleaf
- HTML 5
- CSS 3
- Bootstrap 5
- Backend
- Java 8
- Spring Web
- Spring Boot DevTools
- Spring Data JPA
- Spring Security
- Lombok
- MapStruct
- H2 Database
- Validation
- Maven
Browse the Maven pom.xml file for details of libraries and versions used.
This application use embedded Tomcat 8. Therefore, no Tomcat or JBoss installation is necessary.
- Run in IDE
- Clone github repository with command
git clone https://github.com/Yanant27/lost-and-found-system.git
and import project into IDE. - Or download
.zip
file, unzip and import project into IDE. - Execute the
main
method in thee hyk.springframework.lostandfoundsystem.LostAndFoundApplication
class from your IDE.
- Clone github repository with command
- Run with maven
- You can build the project and run the tests by running
mvn clean package
. - Once successfully built, you can run by one of these two methods.
java -jar target/lost-and-found-system-0.0.1-SNAPSHOT.jar or mvn spring-boot:run
- You can build the project and run the tests by running
This system is aimed to help people finding their lost properties. If they lost or found something, they can report by using this system. It provides two roles (admin, user) to access the system.
Admin can
- Manage users – (CRUD – create, read, update, and delete) user detail and information.
- Manage user roles.
- Manage lost/found item reports of all users.
User can
- Create lost/found item reports.
- Read all lost/found item reports.
- Edit and delete their own reported items.
- Edit user information.
System contains validation for all user inputs and all validations are performed in server side.
All input items are validated and related error messages are displayed.
Side bar menu is different from admin's side bar. There is no "User Management" for user role.
Admin can operate CRUD operations on all user's reported items. There is three action buttons for all rows.
Users can operate edit and delete only on their reported items. Therefore, all action buttons are not shown for all rows.
Same for both admin and user
All input items are validated and related error messages are displayed.
Validation is also same with creating item.
All registered users list
Create Operation
Validation of Create Operation
Update Operation
Delete Operation
Although UI components are restricted using Thymeleaf spring security dialect, user might enter URL and try to access unauthorized page. For example, user don't have the right to modify or delete other user's reported items but try to perform that operation from URL.
For malformed request syntax, customized bad request page will be displayed.
For not existed resource, customized resource not found page will be displayed. For example, user searched all items and look details of one item without refreshing the page and that item was accidently deleted from database.
If user attempts to log in with incorrect password more than 3 times, account will be locked for 1 hour.
- Integrate with Google Maps to show the lost/found location.
- Add images of lost/found items.
- Add comments on lost/found posts.
- Add role management.
- Add forget password functionality.