tiagopolemarx / Ai-que-fome

Trabalho de conclusão de curso feito com padrões de mercado.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

🎓 Inspirado nos melhores do mercado, feito do zero

Página principal do sistema

Página principal do sistema



Restaurante

Restaurante

     Esse repositório contém o projeto de conclusão de curso para o curso de Engenharia de Computação do IFSULDEMINAS - Campus Poços de Caldas.
     O objetivo do projeto é desenvolver uma plataforma completa e funcional (back e frontend) de delivery de comida usando tecnologias semelhantes ao que o iFood usa em sua stack, focando em desempenho e escalabilidade.

📊 Frontend

     O frontend do projeto foi desenvolvido utilizando a biblioteca React e uma das suas principais bibliotecas: Redux.

Diagrama do frontend

Arquitetura do frontend (React + Redux)

Atualmente, essas são as tecnologias que foram utilizadas no frontend:

✅ React (v16)
✅ Redux e React-Redux
✅ SASS
✅ ESLint e Prettier
✅ Material UI
✅ Jest
✅ Cypress

Foram utilizadas as seguintes ferramentas para desenvolvimento:

  • IntelliJ IDEA
  • Visual Studio Code
  • Postman
  • Insomnia
  • GitKraken
  • Robo 3T
  • Trello
  • Clockify

Quer saber como o frontend foi construído e o motivo da escolha das tecnologias? Temos um vídeo no youtube a respeito.

🛠️ Backend

     O backend do projeto foi desenvolvido utilizando microsserviços em Java 8 e deployado em um cluster Kubernetes.

     Ao todo, o sistema conta com quatro microsserviços principais, sendo eles merchant, customer, order e auth. Cada qual conta com seu próprio banco de dados. Além disso, para deploy local, foi utilizado um microsserviço para service discovery. Todavia, para deploy em cluster, foi aproveitado o serviço de service discovery do próprio Kubernetes. Por fim, temos um microsserviço de gateway para realizar o redirecionamento dos requests e servir como porta única de entrada/saida dos requests.

Arquitetura do backend

Arquitetura do backend

     Todos os microsserviços foram deployados em um custer Kubernetes utilizando o MicroK8S como Kubernetes local.

Foram utilizadas as seguintes tecnologias no backend:

✅ Java 8
✅ Spring Boot
✅ MongoDB (devido fraco relacionamento entre tabelas)
✅ Docker
✅ JUnit e Mockito
✅ RabbitMQ
✅ Kubernetes
✅ MicroK8S (ambiente Kubernetes local)
✅ Eureka (service discovery)
✅ Zuul (gateway)

Além disso, foram usadas os seguintes design patterns e técnicas:

✅ DTO
✅ TDD
✅ Builder
✅ RestFUL APIs
✅ Inversão de controle / Injeção de dependência
✅ Mock object
✅ Produtor-consumidor
✅ Princípios SOLID

✒️ Equipe

About

Trabalho de conclusão de curso feito com padrões de mercado.


Languages

Language:JavaScript 57.6%Language:Java 36.7%Language:SCSS 5.6%Language:HTML 0.1%