Página principal do sistema
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.
O frontend do projeto foi desenvolvido utilizando a biblioteca React e uma das suas principais bibliotecas: Redux.
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.
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
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
-
Marcos Vinícius Moreira - Desenvolvedor backend - MarcosVMoreira
-
Otávio Palma - Desenvolvedor frontend - OtavioPalma