Code Monkey home page Code Monkey logo

inventory-backend's Introduction

Inventory Basic System - BACKEND

Inventory is a web app for maintaining a product's inventory. It was developed by Luis Espinosa Llanos and for the backend it was used the following technologies and tools:

Core Java 11, Spring Boot 2, Data JPA, Hibernate, Loombok, Jackson Databinding, Spring Security, Java JWT.
Database PostgreSQL 11
Testing Junit 5, Mockito, Sonar Lint, SonarQube
Server Apache Tomcat Embebido (Spring Boot)
IDE Spring Tool Suite
Web Server Nginx
Performance Tests JMeter
Executable Jar

It was written using the best practices for instance, a controller, service and repository layer approach, code reusing, unit tests, a good condition coverage, dependecy injection, inversion of control, abstractions, token and Role based security, design patterns and more...

Where is the FrontEnd?

This project still has no FrontEnd.... But It will soon, of course developed in reactJS.

Video

A video exposing the functionality of the proyect in local environment on a Desktop screen.

https://youtu.be/gGtKy-g_Dpc

Development Resources

I provide the following resources:

Database SQL Backup In the db folder
Postman Collection In the postman folder
Performance In the performance folder

Pictures

Some pictures of the project on a local environment respectively:

Eclipse Response Time Graph
JMeter SonarQube
Entity relationship model Heroku deployment
PostgreSQL Table Categories

Want to give it a try? Here you have it Online

Please don't overuse it, because it is a FREE tier, I wouldn't want to incur in unnecesary expenses :), REMEBER that I've provided the complete POSTMAN collection: NOTE: If the API is asleep, please contact me and I'll be happy to turn it on... https://inventory-springboot-backend.herokuapp.com

Installation

This proyect should be installed using the following command:

mvn clean install

Usage

In the target folder you will find the Jar archive, of course the configuration for Login purposes was externalized, this is to say that arguments have to be passed through command line, so please use the following command according to your values:

java -jar -DSECRET_KEY=securesecuresecuresecuresecuresecuresecuresecuresecuresecuresecure -DEXPIRATION_DAYS=800 -DSPRING_DATASOURCE_URL=jdbc:postgresql://localhost:5432/inventory -DSPRING_DATASOURCE_USERNAME=inventoryadmin -DSPRING_DATASOURCE_PASSWORD=123456 -DSPRING_DATABASE_SCHEMA=app inventory-0.0.1-SNAPSHOT.jar

Tests and coverage

In the project you will find the tests report with Jacoco. But you should scan it with SonarQube. Please be sure that your local SonarScanner is up.

mvn clean install sonar:sonar

You've got to see the following results on the dashboard, but of course as in the second image you could only use the coverage eclipse's plugin to get a glimpse of the overall coverage (Take into account that some clases were exluded from Sonar for instance DTOs):

SonarQube Project Eclipse Coverage

Contributing

This proyect is quite simple, and is part of my personal portfolio, so it is not intended to receive contributions.

License

It is free.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.