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.
- Host: GitHub
- URL: https://github.com/eneas-almeida/bestore
- Owner: eneas-almeida
- License: mit
- Created: 2021-07-23T22:29:42.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2023-02-10T01:54:48.000Z (over 3 years ago)
- Last Synced: 2025-02-22T03:19:15.249Z (over 1 year ago)
- Topics: docker, java, mysql, spring-boot
- Language: Java
- Homepage: https://github.com/venzel/bestore
- Size: 2.5 MB
- Stars: 3
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# BeStore
[](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 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).
### 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
## 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