Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
cfd4d88
testing branch
BryanRibeiro Mar 28, 2022
2444a99
atualização readme sprint 1
BryanRibeiro Mar 29, 2022
01b2a34
category promotion
VictorCavichioli Mar 31, 2022
626c6b6
Bootstrap class and created category promotion resource
VictorCavichioli Mar 31, 2022
27c2886
...
VictorCavichioli Apr 1, 2022
d173d25
add gitignore
VictorCavichioli Apr 1, 2022
f7fc6a6
Created Angular Application and init figma template
VictorCavichioli Apr 1, 2022
c211289
modify icons in sidebar
VictorCavichioli Apr 1, 2022
7c49698
atualizando infos
BryanRibeiro Apr 3, 2022
457705f
figma
BryanRibeiro Apr 3, 2022
1937666
solving problem with category promotions
VictorCavichioli Apr 4, 2022
bc82173
add products form componenent
VictorCavichioli Apr 4, 2022
8d83f5a
pre-persistence product
VictorCavichioli Apr 5, 2022
0c90ab0
add product-promotion insert-get by id
VictorCavichioli Apr 5, 2022
1223750
product description
VictorCavichioli Apr 5, 2022
0727748
insert product using front microservice
VictorCavichioli Apr 5, 2022
ac7a709
telas figma
BryanRibeiro Apr 9, 2022
9ee72df
Tratamento de erros e exceções dos métodos de produto
Antonio-Zago Apr 10, 2022
c1dc5c1
updating_productbacklog
BryanRibeiro Apr 11, 2022
d9615cd
updating_wireframe
BryanRibeiro Apr 11, 2022
d1f8c6c
Add files via upload
AndrewAugusto Apr 14, 2022
1a81eb2
Creating Product Promotion interface
VictorCavichioli Apr 14, 2022
fc174a5
Creating WebConfig
VictorCavichioli Apr 14, 2022
63347d5
burndown e backlog
BryanRibeiro Apr 15, 2022
e76b284
atualizando dados
BryanRibeiro Apr 15, 2022
52ea501
update promotions functions
VictorCavichioli Apr 16, 2022
c1f84d8
Merge branch 'SPRINT-1' of https://github.com/Doc-Docker/APIMidAll in…
VictorCavichioli Apr 16, 2022
65ac1db
deletando pasta images
BryanRibeiro Apr 16, 2022
65cf82b
pm_canvas
BryanRibeiro Apr 16, 2022
25a9e3f
finalizando_sprint-1
BryanRibeiro Apr 16, 2022
235aa02
apresentation_video
BryanRibeiro May 2, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
103 changes: 103 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
schemas/

###

### Node modules

/node_modules

### Maven

###

target/

.flattened-pom.xml

release.properties

dependency-reduced-pom.xml

buildNumber.properties

.mvn/timing.properties

###

### IDEs

###

## VSCode

.vscode

.jfrog_vscode/

## Eclipse

.metadata

bin/

tmp/

*.tmp

*.bak

*.swp

*~.nib

local.properties

.settings/

.loadpath

.recommenders

.classpath

.externalToolBuilders/

*.launch

.factorypath

.springBeans

.recommenders/

.apt_generated/

.apt_generated_test/

.project

.sts4-cached

## JetBrains IntelliJ

out/

.idea/

*.iml

###

### BOB / CI

###

/.bob*

/build

/?/

# direnv

.envrc
Binary file removed Images/imgapi.PNG
Binary file not shown.
129 changes: 62 additions & 67 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,116 +1,111 @@
<h5 align="center"> <img src = "https://github.com/Time-1-ADS/ProjetoGSW/blob/sprints/Imagens%20Geral/Fatec_logo.png" width="20" height="20" /> Projeto Integrador - DocDocker | BD </h5>
## :bookmark: Primeira Entrega - SPRINT 1

<br>

<p align="center">
<h3 align="center"> API MidAll </h3>
<p align="center">
<img src ="https://github.com/Doc-Docker/APIMidAll/blob/main/Images/imgapi.PNG" width="140" height="140"/>
<hr>

<p align="center">
<a href ="#pencil2-desafio"> Desafio </a> •
<a href ="#clipboard-proposta"> Proposta </a> •
<a href ="#hourglass_flowing_sand-planejamento-de-entregas"> Planejamento </a> •
<a href ="#date-as-sprints"> Sprints </a> •
<a href ="#card_index_dividers-cards-das-sprints"> Cards </a> •
<a href ="#computer-tecnologias-utilizadas"> Tecnologias </a> •
<a href ="#bulb-metodologia-utilizada"> Metodologia </a> •
<a href ="#dart-backlog-das-sprints"> Backlog </a> •
<a href ="#mortar_board-equipe"> Equipe </a>
</p>

<h4 align="center">
<a href="https://developer.mozilla.org/pt-BR/docs/Web/CSS"><img src = "https://camo.githubusercontent.com/e8ba07fa7cc79831afca90c574b74f1eefd0bf76af4e498cb0674330a1634e2a/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4353532d3233393132303f267374796c653d666f722d7468652d6261646765266c6f676f3d63737333266c6f676f436f6c6f723d7768697465"/></a>
<a href="https://www.postgresql.org/"><img src = "https://camo.githubusercontent.com/281c069a2703e948b536500b9fd808cb4fb2496b3b66741db4013a2c89e91986/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f506f737467726553514c2d3331363139323f7374796c653d666f722d7468652d6261646765266c6f676f3d706f737467726573716c266c6f676f436f6c6f723d7768697465"/></a>
<a href="https://developer.mozilla.org/pt-BR/docs/Web/Guide/HTML/HTML5"><img src = "https://camo.githubusercontent.com/d63d473e728e20a286d22bb2226a7bf45a2b9ac6c72c59c0e61e9730bfe4168c/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f48544d4c352d4533344632363f7374796c653d666f722d7468652d6261646765266c6f676f3d68746d6c35266c6f676f436f6c6f723d7768697465"/></a>
<a href="https://developer.mozilla.org/pt-BR/docs/Web/JavaScript"><img src = "https://camo.githubusercontent.com/93c855ae825c1757f3426f05a05f4949d3b786c5b22d0edb53143a9e8f8499f6/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4a6176615363726970742d3332333333303f7374796c653d666f722d7468652d6261646765266c6f676f3d6a617661736372697074266c6f676f436f6c6f723d463744463145"/></a>
<a href="https://www.python.org/"><img src =
"https://camo.githubusercontent.com/94be0a2e5be142925615e5821d97137a930d08fc154962ce43860f1957e6661e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f507974686f6e2d3337373641423f7374796c653d666f722d7468652d6261646765266c6f676f3d707974686f6e266c6f676f436f6c6f723d7768697465" /></a>
<a href="https://getbootstrap.com/"><img src =
"https://camo.githubusercontent.com/b13ed67c809178963ce9d538175b02649800772be1ce0cb02da5879e5614e236/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f426f6f7473747261702d3536334437433f7374796c653d666f722d7468652d6261646765266c6f676f3d626f6f747374726170266c6f676f436f6c6f723d7768697465" /></a>
</h4>
## :mag_right: Visão do Projeto

<br>
A empresa parceira MidAll tem um problema para criação de promoções em um Ecommerce. Precisamos de uma solução inteligente
onde, as mecânicas das promoções sejam feitas de forma flexível e de rápida atualização no sistema.

## :pencil2: Desafio
**O problema é:** O cliente tem um e-commerce, porém necessita de um sistema de compras inteligente que gere promoções com base nas vendas;

A empresa MidAll situada no Parque Tecnológico de São José dos Campos, propôs o seguinte desafio baseado na metodologia ágil Scrum.
"Temos um problema para criação de promoções em um Ecommerce. Precisamos de uma solução inteligente
onde, as mecânicas das promoções sejam feitas de forma flexível e de rápida atualização no sistema".
**Que afeta** as compras feitas pelos clientes no site;

<br>
**O impacto disto é** gerar mais vendas e lucros para a empresa, para que o cliente final fique satisfeito com suas promoções;

## :clipboard: Proposta
A ideia é criar um mini motor de regras com uma interface onde as regras das promoções possam ser cadastradas e aplicadas no momento que os itens forem para o carrinho de compras. Alguns exemplos de mecânicas: compre 2 produtos e tenha 10% de desconto. Na compra de 2 produtos, ganhe mais 1.
Na compra de 3 produtos, ganhe 50% de desconto no item de menor valor.
**A solução seria** O desenvolvimento de uma aplicação web que irá automatizar este processo no ato da compra, gerando promoções específicas.

<br>

## **Escopo do Projeto:**
## :black_nib: Escopo da Solução
Abaixo elencamos as necessidades identificadas em consulta aos stakeholders, classificando-as:

> **Requisitos Funcionais**
| Necessidades | Categorias |
| :--- | :---: |
| 1. Estruturação de Base de Dados local, com a finalidade de unificar e normalizar os dados oriundos do sistema web. | Essencial |
| 2. Desenvolvimento da aplicação WEB que permitirá a integração do Banco de Dados com o site. | Essencial |
| 3. Geração de relatórios analíticos/promoções estratégicas. | Importante |
| 4. Saída com análises adicionais, proporcionando múltiplas promoções. | Importante |
| 5. Aperfeiçoar a interface, de modo a proporcionar uma boa representação visual dos dados. | Desejável |

- [x] Interface para cadastros de produtos contendo, ao menos, código, descrição e valor;
- [x] Tela que represente um carrinho de compras para adicionar os itens. Pode ter somente os itens selecionados, valor
unitário, valor total e desconto aplicado;
- [x] Interface para criação das promoções;
- [x] Como opcional, entregar algum modelo de algoritmo utilizando inteligência artificial baseado no histórico de compras.
Por exemplo: Tentar criar um modelo de sugestão de produtos mais vendidos ou sugestão de produtos que foram
comprados juntos com itens que já estão no carrinho, para ser ofertado no fechamento da compra.<br><br>
:pushpin: **Principais deliverables**

> **Requisitos Não Funcionais**
Soluções que serão entregues na primeira sprint:

- [x] Linguagem Java;
- [x] Banco de Dados Relacional;
- [x] Documentações.<br><br>
> Cadastro de Produto

> Aplicação da Promoção

<br>

## :bulb: Metodologia Utilizada
## :rocket: Branches das Entregas

* **Metodologia Ágil:** Framework [Scrum](https://www.desenvolvimentoagil.com.br/scrum/)
| Sprints/Entregas do Projeto | Deliverables | Data de Início | Data de Término |
| :---: | :---: | :---: | :---: |
| `SPRINT 1` | Cadastro de Produto e Promoção | 25/03/2022 | 14/04/2022 |
| `SPRINT 2` | Processo de compra aprimorado e promoções | 25/04/2022 | 15/05/2022 |
| `SPRINT 3` | Integração da Inteligência Artifical + Promoções Específicas | 16/05/2022 | 05/06/2022 |

<br>

## :page_facing_up: Licença MIT
## 🚀 Apresentação SPRINT 1

Este projeto está sob a licença MIT - veja o arquivo [LICENSE.md](https://github.com/Doc-Docker/APIMidAll/blob/main/LICENSE) para mais detalhes.
**:link: Para visualizar a apresentação da Sprint 1 [clique aqui](https://www.youtube.com/watch?v=UgK59rlTc5M)**

<br>
[![](https://github.com/Doc-Docker/APIMidAll/blob/main/Images/youtubelogo.jpeg)](https://www.youtube.com/watch?v=UgK59rlTc5M)

## :hourglass_flowing_sand: Planejamento de Entregas
<br>

- [x] [Kickoff]() - 14/03/2022 a 18/03/2022
## :chart_with_downwards_trend: Burndown da Equipe

- [x] [SPRINT 1]() - 25/03/2021 a 14/04/2022
<img src = "https://github.com/Doc-Docker/APIMidAll/blob/main/Images/burndown_sprint1.png" width="890" height="500"/></h1>

- [ ] [SPRINT 2]() - 25/04/2021 a 15/05/2022
<br>

- [ ] [SPRINT 3]() - 16/05/2022 a 05/06/2022
## :newspaper: Backlog do Produto

- [ ] Feira de Soluções - 15/06/2022 às 19h
#### 🔗 [Visualizar o arquivo do *Product Backlog*](https://github.com/Doc-Docker/APIMidAll/blob/main/docs/ProductBacklog_2.xlsx)

<br>

## :date: As Sprints

🔖 SPRINT 1 ([Link da Pasta]()): Em Andamento 🚧
## :dart: Backlog das Sprints

🔖 SPRINT 2 ([Link da Pasta]()): Carregando 🔋
#### 🔗 [Visualizar o *Sprint Backlog* do projeto](https://github.com/Doc-Docker/APIMidAll/blob/main/Images/sprint_backlogg.png)

🔖 SPRINT 3 ([Link da Pasta]()): Carregando 🔋
#### 🔗 [Visualizar as Users Stories da Sprint-1](https://github.com/Doc-Docker/APIMidAll/blob/main/Images/userstorie.png)

<br>

## :sparkles: Wireframe Figma

Tela Inicial | Tela de Cadastro de Produto
:-------------------------:|:-------------------------:
![Login](https://github.com/Doc-Docker/APIMidAll/blob/main/Images/tela_home.png) | ![Inicial](https://github.com/Doc-Docker/APIMidAll/blob/main/Images/tela_cadastro.png)

Tela de Promoção | Carrinho
:-------------------------:|:-------------------------:
![Login](https://github.com/Doc-Docker/APIMidAll/blob/main/Images/tela_promocao.png) | ![Inicial](https://github.com/Doc-Docker/APIMidAll/blob/main/Images/tela_carrinho.png)

#### 🔗 [Clique aqui para visualizar o Wireframe do Projeto no Figma](https://www.figma.com/file/9x87JgSK0HbLfNtucaYlDW/API-MidAll)

_Nota: Nessa sprint, não focamos em criar um wireframe com estética e visual aprimorados. Este detalhe será adicionado nas próximas entregas, pois não é de valor para o cliente inicialmente._

<br>

## 📈 PM Canvas

<img src = "https://github.com/Doc-Docker/APIMidAll/blob/main/Images/PM_Canvas_Doc.png" width="900" height="600"/></h1>

<br>

## :clubs: Modelo Conceitual

<img src = "https://github.com/Doc-Docker/APIMidAll/blob/main/Images/Modelo_Conceitual.png" width="900" height="600"/></h1>

<br>

## :spades: Modelo Lógico Relacional

<img src = "https://github.com/Doc-Docker/APIMidAll/blob/main/Images/Modelo_Logico.png" width="900" height="600"/></h1>

<br>
2 changes: 2 additions & 0 deletions backend-midall/.idea/compiler.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 5 additions & 0 deletions backend-midall/.idea/jarRepositories.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
package com.backend.backend.bootstrap;

import com.backend.backend.domain.Category;
import com.backend.backend.domain.Product;
import com.backend.backend.repository.CategoryRepository;
import com.backend.backend.repository.ProductRepository;
import lombok.NoArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.stereotype.Component;

import java.util.Arrays;

@Configuration
public class Bootstrap implements CommandLineRunner {
@Autowired
CategoryRepository categoryRepository;
@Autowired
ProductRepository productRepository;

@Override
public void run(String... args) throws Exception {
Category cat1 = new Category(null, "informatica");
Category cat2 = new Category(null,"Escritorio");

Product p1 = new Product(null, "Computador", 2000.00, "Description p1");
Product p2 = new Product(null, "Impressora", 800.00, "Description p2");
Product p3 = new Product(null, "Mouse", 80.00, "Description p3");

cat1.getProducts().addAll(Arrays.asList(p1,p2,p3));
cat2.getProducts().addAll(Arrays.asList(p2));

p1.getCategories().addAll(Arrays.asList(cat1));
p2.getCategories().addAll(Arrays.asList(cat1,cat2));
p3.getCategories().addAll(Arrays.asList(cat1));

categoryRepository.saveAll(Arrays.asList(cat1,cat2));

productRepository.saveAll(Arrays.asList(p1,p2,p3));

System.out.println("CONECTADO");
System.out.println("CONECTADO");
System.out.println("CONECTADO");
System.out.println("CONECTADO");
System.out.println("CONECTADO");

}
}
Loading