{"id":18068384,"url":"https://github.com/ashannaveen/spring-mvc-pos_system","last_synced_at":"2026-04-13T13:02:50.130Z","repository":{"id":258648169,"uuid":"871300242","full_name":"AshanNaveen/Spring-MVC-Pos_System","owner":"AshanNaveen","description":"The Spring-POS-API is a comprehensive RESTful API designed to manage a Point of Sale (POS) system. This API facilitates seamless CRUD operations and transactional management for key entities such as customers, items, orders, and order details. Developed using the Spring framework, it ensures robust data handling and efficient processing. ","archived":false,"fork":false,"pushed_at":"2024-10-17T17:44:45.000Z","size":118,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-05T16:12:55.850Z","etag":null,"topics":["app","hibernate","hibernate-validator","java-21","jpa","logback","maven","modelmapper","mysql","restful-api","spring","spring-mvc","web","web-app"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AshanNaveen.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-10-11T17:03:00.000Z","updated_at":"2024-10-17T17:50:05.000Z","dependencies_parsed_at":"2024-10-20T01:11:00.353Z","dependency_job_id":null,"html_url":"https://github.com/AshanNaveen/Spring-MVC-Pos_System","commit_stats":null,"previous_names":["ashannaveen/spring-mvc-pos_system"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AshanNaveen%2FSpring-MVC-Pos_System","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AshanNaveen%2FSpring-MVC-Pos_System/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AshanNaveen%2FSpring-MVC-Pos_System/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AshanNaveen%2FSpring-MVC-Pos_System/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AshanNaveen","download_url":"https://codeload.github.com/AshanNaveen/Spring-MVC-Pos_System/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247361699,"owners_count":20926643,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["app","hibernate","hibernate-validator","java-21","jpa","logback","maven","modelmapper","mysql","restful-api","spring","spring-mvc","web","web-app"],"created_at":"2024-10-31T08:06:16.340Z","updated_at":"2025-10-25T17:39:33.686Z","avatar_url":"https://github.com/AshanNaveen.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Spring POS API\n\nA Point of Sale (POS) RESTful API developed using Spring. It includes CRUD operations and transaction management for Customer, Item, Order, and OrderDetail entities. The project is seamlessly integrated with Hibernate for ORM and JPA for repository management.\n\n## Features\n\n- CRUD operations for Customer, Item, Order, and OrderDetail entities.\n- Transaction management.\n- Validation using Hibernate Validator.\n- Logging using Logback.\n- Custom exceptions and error messages.\n- DTO and Entity mapping using ModelMapper.\n- Utility for Base64 image conversion.\n- Configuration files for application setup.\n\n## Tech Stack\n\n- **Java 21**\n- **Spring Framework**\n- **Hibernate ORM**\n- **Spring Data JPA**\n- **ModelMapper**\n- **Logback**\n- **MySQL**\n\n## Validation\n\nValidation is implemented using Hibernate Validator annotations in the DTO classes to ensure data integrity and correctness.\n\n## Logging\n\nLogging is configured using Logback. Logs are written to both the console and a file.\n\n## Custom Exceptions\n\nCustom exceptions are created to handle specific error scenarios, providing meaningful error messages to the client.\n\n## Utilities\n\n- **Mapping**: Utility class for converting between DTOs and entities using ModelMapper.\n- **AppUtil**: Utility class for converting MultipartFile to Base64 string for image storage.\n\n## Configuration\n\nConfiguration files are used to set up the application context, data source, JPA, and transaction management.\n\n## License\n\nThis project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.\n\n## Getting Started\n\n### Prerequisites\n\n- Java 21\n- MySQL\n- Maven\n\n### Installation\n\n1. Clone the repository:\n    ```sh\n    git clone https://github.com/AshanNaveen/Spring-MVC-Pos_System.git\n    ```\n2. Navigate to the project directory:\n    ```sh\n    cd Spring-MVC-Pos_System\n    ```\n3. Update the MySQL database configuration in `WebAppRootConfig.java`:\n    ```java\n    @Bean\n    public DataSource dataSource() {\n        DriverManagerDataSource dmds = new DriverManagerDataSource();\n        dmds.setDriverClassName(\"com.mysql.cj.jdbc.Driver\");\n        dmds.setUrl(\"jdbc:mysql://localhost:3306/spring_pos_api?createDatabaseIfNotExist=true\");\n        dmds.setUsername(\"root\");\n        dmds.setPassword(\"your_password\");\n        return dmds;\n    }\n    ```\n4. Build the project using Maven:\n    ```sh\n    mvn clean install\n    ```\n5. Deploy the WAR file to your preferred servlet container (e.g., Tomcat).\n\n### Usage\n\n- Access the API endpoints using your preferred API client (e.g., Postman).\n- Refer to the Postman documentation for detailed API usage.\n\n## Contributing\n\nContributions are welcome! Please open an issue or submit a pull request for any improvements or bug fixes.\n\n##\n\u003cdiv align=\"center\"\u003e\n\u003ca href=\"https://github.com/AshanNaveen\" target=\"_blank\"\u003e\u003cimg src = \"https://img.shields.io/badge/GitHub-100000?style=for-the-badge\u0026logo=github\u0026logoColor=white\"\u003e\u003c/a\u003e\n\u003ca href=\"https://git-scm.com/\" target=\"_blank\"\u003e\u003cimg src = \"https://img.shields.io/badge/Git-100000?style=for-the-badge\u0026logo=git\u0026logoColor=white\"\u003e\u003c/a\u003e\n\u003ca href=\"https://spring.io/projects/spring-framework\" target=\"_blank\"\u003e\u003cimg src = \"https://img.shields.io/badge/Spring_Framework-100000?style=for-the-badge\u0026logo=spring\u0026logoColor=white\"\u003e\u003c/a\u003e\n\u003ca href=\"https://spring.io/projects/spring-data-jpa\" target=\"_blank\"\u003e\u003cimg src = \"https://img.shields.io/badge/Spring_Data_JPA-100000?style=for-the-badge\u0026logo=spring\u0026logoColor=white\"\u003e\u003c/a\u003e\n\u003ca href=\"https://hibernate.org/orm/\" target=\"_blank\"\u003e\u003cimg src = \"https://img.shields.io/badge/Hibernate-100000?style=for-the-badge\u0026logo=Hibernate\u0026logoColor=white\"\u003e\u003c/a\u003e\n\u003ca href=\"https://tomcat.apache.org/\" target=\"_blank\"\u003e\u003cimg src = \"https://img.shields.io/badge/Tomcat-100000?style=for-the-badge\u0026logo=apachetomcat\u0026logoColor=white\"\u003e\u003c/a\u003e\n\u003ca href=\"https://logback.qos.ch/documentation.html\" target=\"_blank\"\u003e\u003cimg src = \"https://img.shields.io/badge/Logback-100000?style=for-the-badge\u0026logo=ko-fi\u0026logoColor=white\"\u003e\u003c/a\u003e\n\u003ca href=\"https://maven.apache.org/download.cgi\" target=\"_blank\"\u003e\u003cimg src = \"https://img.shields.io/badge/Maven-100000?style=for-the-badge\u0026logo=apachemaven\u0026logoColor=white\"\u003e\u003c/a\u003e\n\u003ca href=\"https://www.mysql.com/downloads/\" target=\"_blank\"\u003e\u003cimg src = \"https://img.shields.io/badge/Mysql-100000?style=for-the-badge\u0026logo=mysql\u0026logoColor=white\"\u003e\u003c/a\u003e\n\u003ca href=\"https://www.postman.com/downloads/\" target=\"_blank\"\u003e\u003cimg src = \"https://img.shields.io/badge/Postman-100000?style=for-the-badge\u0026logo=Postman\u0026logoColor=white\"\u003e\u003c/a\u003e\n\u003c/div\u003e \u003cbr\u003e\n\u003cp align=\"center\"\u003e\n  \u0026copy; 2024 Ashan Naveen\n\u003c/p\u003e","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fashannaveen%2Fspring-mvc-pos_system","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fashannaveen%2Fspring-mvc-pos_system","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fashannaveen%2Fspring-mvc-pos_system/lists"}