A lot of people buy things like lawncare equipment, tools, camping equipment, cooking utensils, etc. that they use only occasionally and the items just sit there unused most of the time. This wastes money, takes up space, and isn't efficient. If people could easily show what items they own that others could borrow, it would save a lot of money and be a more efficient use of everyone's resources. Users can create an account, add items to share, and see what items other users have offered to share.
Users can type a search term or browse shared items by category or owner and can click a button to automatically generate an email notifying the owner of the user's desire to borrow that item.
Users can use the app from their phone as well as add items with their phone's camera.
-
User Profiles
- Users can create a profile and login. They can share a contact email for notifications and requests.
- Their user profile displays their account information which can be edited.
- Their profile page lists the items they have added to the site.
- Users can delete their account which will automatically delete their shared items.
-
Create, Edit, Delete, & View
-
Users can delete items they have added.
-
Item Images
- Users can upload their own image of the item and can change the image or delete the image.
- When adding an item on their phone, users can add a picture from their phone or take a picture right then.
-
Checkout Functionality
-
User Interface
-
Secure & Private
- Authentication and authorization implemented with Spring Security that protects user data and prevents phishing and CSRF attacks.
- Account passwords are hashed and salted, protecting against data leaks.
- Server is TLS/SSL certified with Let's Encrypt, and all traffic is required to occur over encrypted HTTPS
- Email messages are sent without exposing any email address to the user – emails are handled on the back-end.
- AWS S3 image filenames are randomized at creation.
- Java
- Spring Boot
- Spring Data/JPA/Hibernate/MySQL
- Thymeleaf templates and Bootstrap components
- Spring Security for authentication and authorization of registered user areas including password hashing and salting for user data privacy and CSRF attack prevention via secure tokens
- Spring Boot Mail for dynamic email message generation and sending
- AWS S3 API for storing user's item images
- Maven for dependency management and build automation
- Ubuntu 18.04 on a Digital Ocean VM
- LAMP stack with Apache reverse proxy and secure phpMyAdmin installation