An open API service indexing awesome lists of open source software.

https://github.com/eneas-almeida/bestore

📜 Bestore é uma aplicação para venda de produtos em geral. Api Rest em Java com Spring Boot, com base em uma arquitetura Feature by Package.
https://github.com/eneas-almeida/bestore

docker java mysql spring-boot

Last synced: 3 months ago
JSON representation

📜 Bestore é uma aplicação para venda de produtos em geral. Api Rest em Java com Spring Boot, com base em uma arquitetura Feature by Package.

Awesome Lists containing this project

README

          

# BeStore

[![NPM](https://img.shields.io/npm/l/react)](https://github.com/venzel/bestore/blob/master/LICENSE)

> **BeStore** é uma aplicação para venda de produtos em geral.
👉 bestore.me

## 👤 Autores

| Foto | Nome | Ativo | Dt. inativo | Atribuições |
| ----------------------------------------- | ------------------------------------------- | ----- | ----------- | --------------------------------------- |
| ![Enéas](./media/images/venzel-thumb.png) | [Enéas Almeida](https://github.com/venzel/) | 🔥 | - | Manager, Arquiteto, FullStack Developer |

## Tecnologias

API Rest em **Java** e **Spring Boot** com uma arquitetura **Feature by Package** (módulos e casos de usos).


Java
Spring

### Back end

- Java
- Spring Boot
- JPA / Hibernate

### Persistência de dados

- MySQL

### Outras informações

O projeto tem como gerencimento de pacotes o **Maven** e o **Makefile** como automação de comandos, além disso, o mysql é gerenciado através de um container do **Docker**.

#### Bibliotecas externas utilizadas

- Model Mapper
- Lombok

## Quadro Kanban de atividades

👉 Quadro Kanban

## Gitflow


👉 [Documentação passo a passo](./documentations/gitflow.md)

## Arquitetura

### Porque Feature by Package?

Feature by Package (FBP) é uma arquitetura que utiliza conceitos do **DDD (Domain Driven Design)**, sugerida por empresas como a **Rocketseat**, com o objetivo de tornar o código mais **flexível**, **escalável** e de **manutenção simples**.

### Vantagens da arquitetura

- **MANUTENÇÃO**: Facilita o engajamento de muitas equipe e colaboradores em um projeto;
- **ESCALÁVEL**: Facilita refatoramento do código monolítico para uma uma estrura de microserviços;
- **SOLID**: Facilita a aplicação de todos os princípios do SOLID;
- **GIT**: Melhora o gerenciamento dos commits, evitando conflitos e etc;
- **TESTES**: Facilita o desenvolvimento de testes de unidade e integração.

### Organização das pastas

## Diagrama

### Versão 5

### Influências

Este projeto tem como principais influências, os fundamentos da Rocketseat, DevSuperior e AlgaWorks.

## Como executar o projeto

### Pré-requisitos

- Java 11
- Docker
- Docker compose

```bash
# Para clonar repositório
git clone https://github.com/venzel/bestore

# Para entrar na pasta do projeto
cd bestore

# Para subir o container do mysql na porta 3306
make up

# Para executar o projeto na porta 8080
make run
```

## Autor

Edivam Enéas de Almeida Júnior

👉 Linkedin