Join Pixel, the most charming robot inventor, on a delightful adventure to organize the biggest, most bustling book fair in town! This vibrant tale celebrates teamwork, clever problem-solving, and the magic of technology, showing how even the trickiest challenges can be solved with a sprinkle of ingenuity and a dash of friendship. Discover how a little bot makes a big difference, ensuring every book lover finds their perfect stall!
Software Architecture Assignment (Group project) The total mark allocated: 30 Note: ● This is a group project. A group must not exceed more than 6(six) members. ● All the work should be committed to a git repository regularly. DO NOT WAIT UNTIL THE LAST MOMENT TO COMMIT YOUR WORK. ● A viva session will be conducted via zoom and participation is mandatory. The date of the viva session will be communicated later. ● Divide the work among group members before starting the work. ● Copied assignments will be given zero marks. ● You can submit the git repository link as the deliverable of this project. ● Better to use one single repository to push all the code. ● All the commits should be merged to the master/main branch before the evaluation. Evaluation Criteria The individual contribution will be the main evaluation criterion. Other than that, the marks will be given by evaluating the following points. ● The completeness of the functionalities. ● Code quality, maintainability and extensibility. Task User Requirement: Colombo International Bookfair, organized by the Sri Lanka Book Publishers’ Association, is the largest book fair and exhibition in Sri Lanka. Due to its growing popularity each year, there’s an increasing demand among book publishers and vendors to reserve a stall in this exhibition. Therefore, the organizers have decided to build a reservation management system to allow book publishers and vendors to book a suitable stall for their sales in this exhibition. Book publishers and vendors who wish to reserve a stall at the exhibition should first register themselves via an online portal by providing the necessary information. They should then be navigated to a separate page for stall reservations. Stalls are categorized into three sizes: small, medium, and large based on the dimensions, and are named alphabetically. A map of the exhibition venue should be displayed on this page, with available stalls for reservation on it. Ones that are already reserved should be grayed out. Users are allowed to reserve at most 3 stalls per business. Once the user selects a suitable stall(s), a pop-up screen should be displayed asking for confirmation for the reservation. Once the reservation is confirmed, an email must be sent to the user confirming the reservation. A unique QR must be generated, which acts as a pass to enter the exhibition premises. This QR should be included in the email to download as well. The user will then be navigated to a home screen. In the home screen, the user is prompted to add the literary genres they will be displaying/selling at the exhibition. Also, an employee-only portal should be implemented for the organizers to check the availability of stalls and reservations made. Assume that your team is assigned to build this system. You are required to build a separate backend Rest API application and separate front-end applications for each portal. Minimum requirements: ● Stall reservation management online portal (including a login page) ● Send email notifications confirming the reservations made for stalls ● Employee-only portal exhibition organizers (including a login page) Technologies to use: ● Use any language or framework to develop the backend REST API. (Java/Springboot preferred) ● Use any database technology as you wish. (Try to use JPA to access database) ● Use any framework to develop the applications as you wish. Ex: React, Vue, Angular ● The authentication should be handled by using JWT tokens. You can use the Spring Security library for this. add otp verification if forget passwor and refund option according to a logic 60+ days before event → 75% refund 30–60 days → 50% refund Less than 30 days → No refund