FRICT (Flexible Real-Time Inventory Control Tool) is a composed system, designed for sales and inventory control both in physical stores and in a companyβs online store, which will make the inventory management process easier and more efficient, while processing use-based data to provide more advanced functionalities. In this way, it will include:
- Management and analysis functionalities for administrators and managers
- Registration features for delivery personnel
- Order tracking and product purchasing and rating for users.
Feature sketches:
βΉοΈ NOTE: This software has not been implemented yet. At the moment, only functional and technical objectives will be defined.
Β
In order to provide the main functionality, the application will be able to:
- Log in or register users with different roles, and separate their permissions
- Provide CRUD operations to products, orders, reviews, truck or shops if allowed
- Display highly-precise current or predicted real-time data using charts or graphs
- Notify users about updates related to their orders, reviews or products
- Display approximate delivery truck location using embedded maps
- Capture and process use-generated data to obtain relevant predictions data
- Send email confirmations related to changes in an orders, products, reviews and trucks
- Generate documents using processed data (i.e. product resumes or invoices)
- Provide an automated system that could manage administration tasks when activated
- Spring Boot REST API backend
- JWT-based authentication
- Angular / Tailwind frontend
- MySQL database
- External API integrations
- JUnit / Selenium unit, integration and system tests
- Docker / Docker Compose packaging
- CI / CD using GitHub Actions
- Amazon Web Services (AWS) integrated cloud deployment
Β
The application will be implemented following an incremental model with 7 different phases:
- Phase 1: Main features definition, main frontend design and screens navigation flow
- Phase 2: Minimal services, tests and Continuous Integration (CI)
- Phases 3, 4 and 5: Basic, Intermediate and Advanced functionalities implementation
- Phase 6: First Report draft
- Phase 7: Project presentation
Phase | Description | Deadline | Start Date | End Date |
---|---|---|---|---|
Phase 1 | Main features, design and screens navigation | 15 September 2025 | 5 July 2025 | 11 August 2025 |
Phase 2 | Minimal services, tests and CI | 15 October 2025 | .... | .... |
Phase 3 | v0.1 - Basic functionality, Docker packaging | 15 December 2025 | .... | .... |
Phase 4 | v0.2 - Intermediate functionality | 1 March 2026 | .... | .... |
Phase 5 | v1.0 - Advanced functionality | 15 April 2026 | .... | .... |
Phase 6 | First Report Draft | 15 May 2026 | .... | .... |
Phase 7 | Project Presentation | 15 June 2026 | .... | .... |
Β
Basic funtionality | Anon User | Registered User | Store Manager | Delivery driver | Administrator |
---|---|---|---|---|---|
Modify/Delete profile information | β | β | β | β | |
View product details | β | β | β | β | β |
Add/Delete a product from/to the cart | β | β | |||
Add/Delete a product from/to the wishlist | β | ||||
Add/Modify/Delete any product from/to a shop | β | β | |||
Make/Cancel a personal order | β | ||||
Cancel any associated order | β | β | β | ||
Change order status | β | ||||
Publish/Delete a personal product review | β | ||||
Delete any product review | β | ||||
Ban/Unban any user | β | ||||
Add/Modify/Delete any shop | β | ||||
Add/Modify/Delete any delivery truck | β |
Intermediate funtionality | Anon User | Registered User | Store Manager | Delivery driver | Administrator |
---|---|---|---|---|---|
Real-time entities data updates | β | β | β | β | β |
Filter products by its fields | β | β | β | β | |
Filter products from lowest/highest field | β | β | β | β | |
Receive mail confirmations about relevant info | β | β | β | β | |
Receive in-app notifications about relevant info | β | β | β | β | β |
View product recommendations based on user preferences | β | ||||
Download PDF product/order resumes/invoices | β | β | β | β |
Advanced funtionality | Anon User | Registered User | Store Manager | Delivery driver | Administrator |
---|---|---|---|---|---|
View associated trucks approximate position in embedded map | β | β | β | β | |
View stored use data displayed in graphs | β | β | |||
View predicted and statistically-generated data displayed in graphs | β | β | |||
Import/Export Excel charts | β | β | |||
Read unique QR code for order reception | β | β | |||
Generate unique QR code for order reception | β |
Β
βΉοΈ NOTE: Both online shop and management subsystems have login, register and recover password screens in common, so that the user will be redirected to one of the subsystems depending on the permissions level provided.
- All detailed views
- Screen flow diagram:
- All detailed views
- Screen flow diagram:
In order to separate customers and staff functionalities and to prevent internal data from being accessed by any user, each functionality will only be available to its corresponding user roles, which will be:
- Anon user: Lowest level of permissions, restricted to product data read only.
- Registered user: Identified user which will be able to order products and track their orders.
- Store manager: Used by the person in charge of an specific shop. Allowed to check that shop statistics and products, and restock them if necessary.
- Delivery driver: Used by truck drivers to check the content of their assigned orders, and to update its status when delivered.
- Administrator: Highest level of permissions, will be able to manage all registered shops, check overall company data and restrict the system access to any registered user if needed.
Basic funtionality | Anon User | Registered User | Store Manager | Delivery driver | Administrator |
---|---|---|---|---|---|
Check product info | β | β | β | β | β |
Manage orders | β | β | β | β | |
Manage products | β | β | |||
Upload images | β | β | β | β | |
Manage trucks | β | β | |||
Manage shops | β | ||||
Ban/Unban users | β | ||||
Manage reviews | β | β | |||
Check basic use-based and predicted product data | β | β | β | β | β |
Check advanced use-based and predicted product data | β | β |
Product
: Multiple images per productProfile
: Single image per profile
- Weekly benefits: line chart
- Sells per shop: bar chart
- Assigned orders per truck: pie chart
- JS2PDF: Receipts/Invoices generation
- JavaMail: Email order confirmations/alerts
- OpenStreetMap: Shops and trucks positioning
- ng2-charts: Data charts
- Real-time truck positioning
- Real-time data processing and updating in order to obtain precise predictions
- Product filtering and recommendations based on userΒ΄s interests
Β
- Project Blog on Medium: Medium Blog
- GitHub Project Board: GitHub Project
Β
This application will be developed as part of the Bachelorβs Final Projects (TFGs) for both Computer Science and Software Engineering Bachelor Degrees, at Superior Technical School of Computer Science (ETSII) - King Juan Carlos University (URJC).
- Student: Marcos JimΓ©nez Pulido
- Professor: Γscar Soto SΓ‘nchez
Β
This project is under Apache 2.0 license. See the LICENSE
file for details.