Skip to content

Monash-FIT3170/Counting-and-Sorting

Repository files navigation

Group 5 - Counting and Sorting

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.

Table of Contents

Software & Hardware Requirements

  • 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).

Installation Instructions

  1. 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.
  2. Clone the Repository: git clone https://github.com/your-username/inventory-management-system.git
  3. Navigate to the Project Directory: cd inventory-management-system/
  4. Clean and Install Dependencies: mvn clean install
  5. Run the Application: mvn spring-boot:run
    After running the above command, the application will be accessible at http://localhost:8080.

Deployment Instructions

Running the Application

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.

Deploying to Production

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

Docker Deployment

To build and run the application with Docker:

  1. Build the Docker image: docker build . -t liquor-store:latest
  2. Run the container: docker run -p 8080:8080 liquor-store:latest

API Documentation

To view the API documentation for the inventory management system, follow these steps:

Start the API Server:

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.

Accessing Redoc Documentation:

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.

Accessing Swagger UI:

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.

Versioning Strategy

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

Pull Request Strategy

  1. Create a New Branch. git checkout -b feature/my-new-feature
  2. Commit Changes using the format: [Feature/Refactor/Fix] [Scope] [Description].
  3. Open a Pull Request. Submit your pull request (PR) with an appropriate title and description. Be sure to include appropriate version tags.
  4. Delete Source Branch after the PR is merged to maintain cleanliness in the repository.

Additional Notes

Project structure

  • MainLayout.java in src/main/java contains the navigation setup (i.e., the side/top bar and the main menu). This setup uses App Layout.
  • views package in src/main/java contains the server-side Java views of your application.
  • views folder in frontend/ contains the client-side JavaScript views of your application.
  • themes folder in frontend/ contains the custom CSS styles.

Useful links

Team Members

Gen AI Statement

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.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published