Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/neeballearningpvtltd/inventorymanagementsystem
Rest based Inventory Management System build on Spring Framework
https://github.com/neeballearningpvtltd/inventorymanagementsystem
hibernate inventory inventory-management jpa rest-api spring-boot spring-framework
Last synced: 3 months ago
JSON representation
Rest based Inventory Management System build on Spring Framework
- Host: GitHub
- URL: https://github.com/neeballearningpvtltd/inventorymanagementsystem
- Owner: NeebalLearningPvtLtd
- Created: 2017-11-30T15:14:08.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2019-01-01T11:13:01.000Z (about 6 years ago)
- Last Synced: 2024-10-11T16:05:24.658Z (3 months ago)
- Topics: hibernate, inventory, inventory-management, jpa, rest-api, spring-boot, spring-framework
- Language: Java
- Size: 185 KB
- Stars: 10
- Watchers: 2
- Forks: 7
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# InventoryManagementSystem
> Rest based Inventory Management System build on Spring Boot Framework
## Setup
* Clone the Repository
```shell
git clone --recursive https://github.com/NeebalLearningPvtLtd/InventoryManagementSystem.git
```
* Import in eclipse
File > import > General > Projects from Folder or Archive
* Init DB Schema
* locate init.py in src/main/resources/database_files/
* run init.py
```shell
python3 init.py
```
## Description
* This is the code to create an Inventory management automated system for Kossine's physical classrooms .
* Design pattern used is M ~V~ C of spring boot's starter web .
> Note : Views are not done yet .
* Controller's can be found [here](https://github.com/NeebalLearningPvtLtd/InventoryManagementSystem/tree/master/src/main/java/com/kossine/ims/controllers) ,
paging support is also added can be accessed using
``` html
http://domain/controller_mapping/get/all?page=0&size=50
```
it fetches first 50 rows from first slot , for next slot page=1 and so-on
> Note size can be varied
* Complete controller code for say Model [Laptop](https://github.com/NeebalLearningPvtLtd/InventoryManagementSystem/blob/master/src/main/java/com/kossine/ims/models/Laptop.java) can be found [here](https://github.com/NeebalLearningPvtLtd/InventoryManagementSystem/blob/master/src/main/java/com/kossine/ims/controllers/LaptopController.java) which contains all the Request mappings for
GET , POST , PUT ,DELETE
is done .
* Exception handling of Api is done using@RestControllerAdvice
annotation , code can be found [here](https://github.com/NeebalLearningPvtLtd/InventoryManagementSystem/blob/master/src/main/java/com/kossine/ims/exceptions/CustomRestExceptionHandler.java)
* Hibernate framework was used for DAO layer and was implemented using JPA standards as well as spring data JPA .
* JPA's EntityManager way used in [GenericRepo](https://github.com/NeebalLearningPvtLtd/InventoryManagementSystem/blob/master/src/main/java/com/kossine/ims/repository/GenericRepo.java) , [LaptopRepo](https://github.com/NeebalLearningPvtLtd/InventoryManagementSystem/blob/master/src/main/java/com/kossine/ims/repository/LaptopRepo.java) , [AdapterRepo](https://github.com/NeebalLearningPvtLtd/InventoryManagementSystem/blob/master/src/main/java/com/kossine/ims/repository/AdapterRepo.java)
* Spring Data Jpa was used in [LaptopUsedByRepo](https://github.com/NeebalLearningPvtLtd/InventoryManagementSystem/blob/master/src/main/java/com/kossine/ims/repository/LaptopUsedByRepo.java) , [AdapterUsedByRepo](https://github.com/NeebalLearningPvtLtd/InventoryManagementSystem/blob/master/src/main/java/com/kossine/ims/repository/AdapterUsedByRepo.java)
* Inventory is abstract class for all the inventories .
* Testing was done using Junit 4 and@SpringBootTest
annotation provided by spring boot
> Note : H2 Inmemory Db was used during testing , but some queries were incompatible with H2 that runs with no problem in MySql/MariaDb
## dependency
> see [pom.xml](https://github.com/NeebalLearningPvtLtd/InventoryManagementSystem/blob/master/pom.xml)
## sub-modules
> [Excel-to-POJO](https://github.com/NeebalLearningPvtLtd/Excel-to-POJO) was used for maping excel data to POJO's found in models package