Welcome to the PointOfSaleSystem! This system is designed to manage sales, inventory, and customer transactions seamlessly, similar to popular POS systems like Square. This README will guide you through setting up the project, understanding its core features, and exploring the available APIs.
Before you begin, ensure you have the following installed on your local machine:
- Java 11
- Maven or Gradle
- MySQL or any other RDBMS
-
Clone the repository:
git clone https://github.com/rishabh-agarwal/PointOfSaleSystem.git cd PointOfSaleSystem
-
Build the project:
mvn clean install
-
Set up the database:
CREATE DATABASE pos_system;
-
Run the application:
java -jar target/PointOfSaleSystem.jar
Configure your database and other environment variables in the application.properties
file located in the src/main/resources
directory.
- Inventory Management: Track product quantities, manage stock levels, and set reorder points.
- Sales Transactions: Process sales, returns, and exchanges efficiently.
- Customer Management: Store customer information and purchase history.
- Reporting: Generate sales and inventory reports.
- User Management: Handle different roles and permissions within the system.
Below is a list of basic APIs available in the PointOfSaleSystem:
-
Get All Products
- Endpoint:
/api/products
- Method:
GET
- Description: Retrieves a list of all available products.
- Endpoint:
-
Get Product by ID
- Endpoint:
/api/products/{id}
- Method:
GET
- Description: Retrieves details of a specific product by its ID.
- Endpoint:
-
Create New Product
- Endpoint:
/api/products
- Method:
POST
- Description: Adds a new product to the inventory.
- Endpoint:
-
Update Product
- Endpoint:
/api/products/{id}
- Method:
PUT
- Description: Updates the details of an existing product.
- Endpoint:
-
Delete Product
- Endpoint:
/api/products/{id}
- Method:
DELETE
- Description: Deletes a product from the inventory.
- Endpoint:
-
Create Sale
- Endpoint:
/api/sales
- Method:
POST
- Description: Processes a new sale transaction.
- Endpoint:
-
Get Sale by ID
- Endpoint:
/api/sales/{id}
- Method:
GET
- Description: Retrieves details of a specific sale transaction by its ID.
- Endpoint:
-
Get All Sales
- Endpoint:
/api/sales
- Method:
GET
- Description: Retrieves a list of all sales transactions.
- Endpoint:
-
Get All Customers
- Endpoint:
/api/customers
- Method:
GET
- Description: Retrieves a list of all customers.
- Endpoint:
-
Get Customer by ID
- Endpoint:
/api/customers/{id}
- Method:
GET
- Description: Retrieves details of a specific customer by their ID.
- Endpoint:
-
Create New Customer
- Endpoint:
/api/customers
- Method:
POST
- Description: Adds a new customer to the system.
- Endpoint:
-
Update Customer
- Endpoint:
/api/customers/{id}
- Method:
PUT
- Description: Updates the details of an existing customer.
- Endpoint:
-
Delete Customer
- Endpoint:
/api/customers/{id}
- Method:
DELETE
- Description: Deletes a customer from the system.
- Endpoint:
-
Get Inventory Levels
- Endpoint:
/api/inventory
- Method:
GET
- Description: Retrieves current inventory levels for all products.
- Endpoint:
-
Update Inventory
- Endpoint:
/api/inventory/{productId}
- Method:
PUT
- Description: Updates the inventory level of a specific product.
- Endpoint:
Contributions are welcome! Please fork this repository, create a new branch for your feature or bugfix, and submit a pull request.
- Fork the repository.
- Create a new branch:
git checkout -b feature-branch-name
- Make your changes and commit them:
git commit -m 'Add new feature'
- Push to the branch:
git push origin feature-branch-name
- Open a pull request.
This project is licensed under the MIT License - see the LICENSE file for details.