Shops Management is a full-stack web application which allows owners to manage their respective shops. The backend is written in Java using Spring, which communicates with a PostgreSQL database, and the frontend in javascript using React. It can be deployed using Docker, with the required setup files already available. A UML Diagram of an earlier version of the backend is also available in the root folder, which shows its layered architecture.
Register and login: Implemented using Json Web Tokens and Spring Security. There are four user types: anonymous (not logged in), regular, moderator, and admin.
Seeing, adding, updating, and deleting entities: Based on their roles, the users can perform certain permitted operations. The entities of this application are shops, couriers, clients, products, user profiles, and transactions.
Chatting with other users: Users can choose a nickname and save it and chat with other users. Implemented using web sockets.
Modifying all records: The admin can generate realistic looking records for the database in order to test the application, provided that the backend is deployed on Linux. A C program writes multiple files for different entites with SQL insert batches, then a few Shell scripts make the PostgreSQL database read and execute the insertions. In a similar way, the admin can delete all records, update how many entries per page are shown, and see the total count for each entity. They can also modify user roles.
Validation and tests: Validations are available everywhere on both frontend and backend, and End-to-End tests using Cypress are also available.