Parceiro Acadêmico: MidAll [B]
O projeto visa resolver o problema da empresa MidAll relacionado à criação de promoções em seu e-commerce. A solução proposta foi desenvolver um mini motor de regras que permitiu a flexibilidade e rápida atualização das mecânicas das promoções no sistema. Isso foi feito por meio de uma interface onde as regras das promoções poderiam ser cadastradas e aplicadas automaticamente quando os itens fossem adicionados ao carrinho de compras. Essa abordagem ofereceu agilidade na configuração e adaptação das promoções, proporcionando uma experiência personalizada aos clientes.
- Microsoft SQL Server: É um sistema de gerenciamento de banco de dados relacional desenvolvido pela Microsoft, amplamente utilizado para armazenar, manipular e recuperar dados de forma eficiente e segura.
- Java: É uma linguagem de programação de alto nível, multiplataforma e orientada a objetos, conhecida por sua portabilidade e segurança, amplamente usada no desenvolvimento de aplicativos e sistemas corporativos.
- Angular: É um framework de desenvolvimento de aplicativos web de código aberto, baseado em TypeScript, que permite a criação de interfaces de usuário dinâmicas e escaláveis, utilizando conceitos como componentes e injeção de dependência.
- CSS: É uma linguagem de estilo utilizada para definir a apresentação e o layout visual das páginas da web.
- Bootstrap: É um framework front-end de código aberto que facilita o desenvolvimento de interfaces responsivas e estilizadas, fornecendo um conjunto de estilos predefinidos e componentes reutilizáveis, agilizando o processo de criação de páginas web modernas e atraentes.
- Figma: É uma ferramenta de design colaborativo baseada na nuvem, que permite criar interfaces de usuário, protótipos interativos e compartilhar facilmente os designs com equipes de trabalho, agilizando o processo de design e feedback em projetos de design de produtos e interfaces digitais.
Fui responsável por ajudar no desenvolvimento front-end da aplicação. Por ser o terceiro semestre do curso, já havia construído uma base de conhecimentos necessários para desenvolver o projeto, embora o uso de tecnologias diferentes das apresentadas anteriormente tenha dificultado o processo de desenvolvimento.
Sendo responsável pelo desenvolvimento do front-end do sistema, implementei serviços de cadastro, leitura e remoção de dados coletados pela aplicação. Também, prestei apoio na criação das interfaces gráficas com o Java e no versionamento do projeto com a tecnologia Git.
Participei de forma efetiva da integração do Front-End com Back-End, criando alguns métodos e realizando testes para validação das requisições.
Trecho do código responsável de receber o retorno do back-end, da explicação citada acima.
Código em JavaScript - Informações
this.total = this.noDiscount += (element.price * element.quantidade);
this.service.getDiscount(this.id, this.quantidade, this.total, this.categoria).subscribe(
response =>
{ const product : Product = new Product();
this.discount = response;
this.product.discount = this.discount
this.finalPrice = this.finalPrice += (element.price * element.quantidade)-(this.discount)
console.log("teste", this.categoria)
errorResponse => console.log(errorResponse)
})
});
...
return new ResponseEntity<>(desconto, HttpStatus.OK);
- Esse método é responsável por passar os parâmetros para o back-end, processar a informação e direcionar o retorno para a camada de visualização do usuário, sendo um trecho importante pois enviar dados, processa o retorno e já devolve os resultados para usuário.
Click aqui GitHub para mais detalhes da implementação do método responsável por enviar a requisição para o back-end.
Implementação das telas de cadastro de produtos;
Desenvolvimento do formulário de cadastro de produtos, criação da classe de services para envio da requisição POST com objeto do tipo produto.
Código em TypeScript - Função na classe service para criação e atualização de produtos
onSubmit(){
if(this.id){
this.service.update(this.id, this.product)
.subscribe( res => {
this.success = true;
this.errors = null;
}
)
}
else{
this.service
.insert(this.product)
.subscribe( res =>{
this.success = true;
this.errors = null;
}, errorRes =>{
this.success = false;
this.errors = errorRes.error.errors
}
)
}
}
Implementação da interface do carrinho de compras;
Desenvolvimento de uma tela para mostrar todos os produtos selecionados pelo usuário no sistema
Código em HTML - Exibição dos produtos
<table class="table table-condensed table-hover">
<thead>
<tr>
<th>Name</th>
<th>Price</th>
<th>Quantity</th>
<th>Discount</th>
<th></th>
</tr>
</thead>
<tbody>
<tr *ngFor="let p of products">
<td>{{ p.name }}</td>
<td>{{ p.price }}</td>
<td>{{ p.quantidade}}</td>
<td>-{{ p.discount }}</td>
<td>
<button class="btn btn-warning" (click)="deleteProduct(p)">
<i class="fa fa-trash"></i>
Delete
</button>
</td>
</tr>
</tbody>
</table>
O desafio foi diferente do projeto anterior, pois deveríamos atender os requisitos necessários e ter uma comunicação ativa com o cliente a fim de produzir entregas de valores em cada etapa do processo, por isso ajudei a gerenciar a equipe utilizando a metodologia ágil Scrum.
A MidAll foi primeiro sistema web com o qual trabalhei. Em seu desenvolvimento, obtive meu primeiro contato com conceitos bases para todo profissional desenvolvedor de software.
A integração do projeto com as matérias do semestre se deu em diversas frentes. A mais importante delas foi na disciplina de Engenharia de Software. Iniciamos o aprendizado sobre diversos padrões de projeto nesta disciplina, pela primeira vez. Com isso, pela primeira vez nos preocupamos em separar nosso programa que se tornaria o produto em camadas, seguir padrões de arquitetura, torná-lo componentizável e seguindo modos de construção comuns aos utilizados no mercado e comunidade. Foi o passo inicial de estudo sobre tais competências tão importantes para qualquer desenvolvedor de software.
Durante o desenvolvimento do projeto, a performance do sistema foi uma questão central em seu desenvolvimento. Possuíamos uma base de dados minimamente volumosa, e precisávamos calcular diversos fatores de todos os seus registros. Com isso, precisávamos pensar em formas mais eficientes em processamento para garantir uma resposta rápida e confiável ao nosso usuário final. A evolução nos algoritmos de análise de dados com o passar do projeto é algo que foi de grande valia para a nossa formação como profissionais desenvolvedores.
Tecnologia/Metodologia | Nota | Classificação |
---|---|---|
Metodologia Ágil Scrum | ★★★★★ | Sei fazer com autonomia |
Microsoft SQL Server | ★★★☆☆ | Entendi |
Java | ★★☆☆☆ | Já ouvi falar |
Angular | ★★★☆☆ | Entendi |
CSS | ★★★★★ | Sei fazer com autonomia |
Bootstrap | ★★★★☆ | Sei fazer com ajuda |
Figma | ★★★★☆ | Sei fazer com ajuda |
Habilidade | Descrição |
---|---|
Tecnologias Emergentes | Explorei e aprendi novas tecnologias front-end, mantendo-me atualizado com as tendências do setor. |
Responsividade | Desenvolvi interfaces responsivas, garantindo uma experiência consistente em diferentes dispositivos e tamanhos de tela. |
Otimização de Desempenho | Otimizei o desempenho das aplicações, implementando práticas como lazy loading e minimização de recursos. |
Integração com API | Integrei interfaces front-end com APIs, garantindo uma comunicação eficiente entre o front-end e o back-end. |
Acessibilidade | Adotei práticas de desenvolvimento acessível, garantindo que as aplicações sejam utilizáveis por todas as pessoas, independentemente de suas habilidades. |