The "Counting and Sorting" project endeavours to create an inventory management and stock replenishment system with a user friendly interface capable of real-time updates, enabling accurate reflections of stock availability and consumption patterns to minimise time and resources required for stock maintenance.
- Software & Hardware Requirements
- Installation Instructions
- Deployment Instructions
- Versioning Strategy
- Pull Request Strategy
- Additional Notes
- Team Members
- Gen AI Statement
- Operating System: Windows, macOS, or Linux.
- Desktop/Laptop: The project is web-hosted and can run on any desktop browser.
- Java JDK: Java JDK 8 or greater is required.
- Apache Maven: Use the latest version of Maven for project management.
- Storage: At least 500MB of free space for the Maven dependencies.
- Web Browser: Any modern browser (Chrome, Firefox, Safari).
- Install Maven: Download Maven from Maven's official website and follow the instructions. Ensure Java JDK is installed and JAVA_HOME is added to the system's environment variables.
- Clone the Repository:
git clone https://github.com/your-username/inventory-management-system.git
- Navigate to the Project Directory:
cd inventory-management-system/
- Clean and Install Dependencies:
mvn clean install
- Run the Application:
mvn spring-boot:run
After running the above command, the application will be accessible at http://localhost:8080.
To run the project, ensure Java JDK 8+ is installed. You can run the application using the following commands:
mvnw
(Windows) or ./mvnw
(Mac/Linux).
Then open your browser and visit http://localhost:8080.
For a production build: mvnw clean package -Pproduction
This will generate a JAR file that can be executed: java -jar target/liquor-store-1.0-SNAPSHOT.jar
To build and run the application with Docker:
- Build the Docker image:
docker build . -t liquor-store:latest
- Run the container:
docker run -p 8080:8080 liquor-store:latest
To view the API documentation for the inventory management system, follow these steps:
Before you can access the documentation, ensure the API server is running. Navigate to the api directory within the inventory-management-system project:
bash cd inventory-management-system/api
Start the server using Uvicorn:
bash uvicorn app.main:app --reload
The server will start on http://127.0.0.1:8000.
The Redoc-generated documentation provides a comprehensive view of the API endpoints and their details. Once the server is running, open your web browser and navigate to:
http://127.0.0.1:8000/redoc
This page will display the API documentation in a user-friendly, interactive format.
For a more interactive approach to testing the API endpoints, Swagger UI is available. You can access it via:
http://127.0.0.1:8000/docs
Here, you can execute API requests directly from the browser, making it easier to test and understand the API functionality.
We are adopting Semantic Versioning: [MAJOR].[MINOR].[PATCH]
MAJOR: Changes when incompatible API modifications are made.
MINOR: Changes when functionality is added in a backward-compatible manner.
PATCH: Changes when backward-compatible bug fixes are made.
Each release should be tagged in the Git repository with the version number to ensure traceability.
The current verson number is 4.1.1
- Create a New Branch.
git checkout -b feature/my-new-feature
- Commit Changes using the format: [Feature/Refactor/Fix] [Scope] [Description].
- Open a Pull Request. Submit your pull request (PR) with an appropriate title and description. Be sure to include appropriate version tags.
- Delete Source Branch after the PR is merged to maintain cleanliness in the repository.
MainLayout.java
insrc/main/java
contains the navigation setup (i.e., the side/top bar and the main menu). This setup uses App Layout.views
package insrc/main/java
contains the server-side Java views of your application.views
folder infrontend/
contains the client-side JavaScript views of your application.themes
folder infrontend/
contains the custom CSS styles.
- Read the vaadin documentation.
- Follow the vaadin tutorial.
- Create new vaadin projects.
- Search UI components and their usage examples.
- View use case applications that demonstrate Vaadin capabilities.
- Build any UI without custom CSS by discovering Vaadin's set of utility classes.
- Find a collection of solutions to common use cases.
- Find add-ons at vaadin.com/directory.
- Ask questions on Stack Overflow or join our Discord channel.
- Report issues, create pull requests in GitHub.
- Jun Hao Ng - [email protected]
- Tye Bram Leigh Samuels - [email protected]
- Navya Balraj - [email protected]
- Behnam Mozafari - [email protected]
- Reuben Gue - [email protected]
- Dylan Redman - [email protected]
- Andrew Rudnytsky - [email protected]
- Linuka Ekanayake - [email protected]
- Garv Vohra - [email protected]
- Jesse Gordon - [email protected]
- Ismail - [email protected]
- Abdus Sami - [email protected]
- Erin Koay - [email protected]
- Yokabit Fesshaye - [email protected]
This document has been created with the assistance of Generative Artificial Intelligence (Gen AI) technology. Specifically, Gen AI has been employed to create the structure of the markdown document.