- What does it do?
- How does it do it?
- OK, but why?
- Let's have a look-see, shall we?
- Possible additions
Thors Rentals Order Submission application provides a rental shop employee a modern application to submit rental orders by selecting an inventory item to be rented, a customer that is renting the equipment and an employee who is responsible for the rental order. It further allows an employee to specify the rental duration and opportunity to view all submitted rental orders. Additionally, the system automatically calculates the cost of the rental and the date and time when the equipment is due to be returned from loan.
TL;DR select equipment, customer, employee in charge of the rental and calculate rental cost and return datetime.
The application's Java Spring Boot backend creates inventory items, customers and employees on application's first startup to the MySql database utilised by the application. Once the user navigates to the application's website that is deployed in AWS public cloud utilising Docker, the user is presented an user interface created in React to select whether to view all submitted orders or to submit a new order. If a user chooses to submit a new order, the user is prompted to select the inventory item, customer, employee in charge of the rental and to enter the rental duration. Once these details are entered and a user confirms that the order entered has the correct information in it, the order is saved in a MySql database from which it can be viewed by selecting 'View All Orders' from the landing page.
TL;DR React UI interacts with MySQL database and a Java Spring Boot backend deployed in AWS utilising Docker.
I wanted to create a three-tier architecture full-stack application to further showcase my skills.
Possible added features to the application include login and registration capability, HTTPS support, more robust security features developed in Java Spring Boot Security, deleting orders, looking up order by Order ID and so on. The reason that I did not implement these features is that I wanted to make demo three-tiered architecture full stack application that includes the frontend, backend, database and communication between the three.