According to the project concept, we had to create a solution that would enable users to choose storage units, book them, and make payments. Users also should have had access to the data related to the storage unit location, usage period, etc. Besides, they should have been able to choose a building in any suggested city for a storage unit booking.
Solution
Taking into consideration all tasks, requirements, and goals, our experts came to a decision to use Express.js for server-side development due to its processing speed and simple adjustment. JWT enabled easy token generation, while time-related issues were settled with the help of the Moment.js library. It was decided to use Apollo и GraphQL for the integration with the third-party API - Sensorberg - as they let us considerably reduce the number of requests from the frontend server to the backend server. Redux + Redux-Saga provided data storage, while Redux-Persist was used for the frontend data storage. Redis database was leveraged for the session data storage, and MongoDB - for the user data storage.
The combination of React.js and Next.js was applied for client-side development. Styled-components enabled easy work on styles due to its ability to create reusable styled components, which improved performance and loading speed. The Formik library usage provided an opportunity to store form data only on the needed page, which let us not clutter the main repository.
Result
Devico full-stack team implemented the following features:
1Storage unit booking;
2Payment;
3Purchase of extra packing materials (boxes, wrapping film, ropes);
4Booking tracking;
5Integration with the Store 365 service;
6Integration with the Sensorberg service;
7Implementation of the Adyen payment method;
Client and Business Goals:
To provide more storage locations and units than any other storage site