O TechFood é um sistema de autoatendimento desenvolvido para Fastfoods , com o objetivo de otimizar o processo de pedidos, pagamento, preparação e entrega de comida.
O sistema oferece aos clientes uma interface para personalizar seus pedidos e acompanhar o progresso deles em tempo real.
Também fornece aos administradores ferramentas para gerenciar os clientes, os produtos e os pedidos.
- Pedido Personalizado: Os clientes podem criar pedidos personalizados, escolhendo entre uma variedade de itens, como lanches, acompanhamentos, bebidas e sobremesas.
- Pagamento Integrado: Integração com o Mercado Pago, permitindo que os clientes efetuem o pagamento de seus pedidos através de um QRCode.
- Acompanhamento de Pedido: Os clientes podem acompanhar o status de seus pedidos em tempo real, desde o momento em que são recebidos até estarem prontos para retirada.
- Gerenciamento Administrativo: Os administradores têm acesso a um painel de controle para gerenciar clientes, produtos, categorias e pedidos em andamento.
- Kotlin
- PostgreSQL
- Arquitetura Hexagonal
- Docker
- Swagger
- Spring
- Maven
O TechFood expõe as seguintes APIs para integração:
- Cadastro do Cliente: API para cadastrar novos clientes no sistema.
- Identificação do Cliente via CPF: API para identificar clientes existentes utilizando o CPF.
- Gerenciamento de Produtos: APIs para criar, editar e remover produtos do menu, além de buscar produtos por categoria.
- Checkout: API para o checkout de pedidos, enviando os produtos escolhidos para a fila de preparação.
- Acompanhamento de Pedidos: API para listar os pedidos em andamento e o tempo de espera de cada pedido.
Enviar modificações para a branch main requer:
- Um PR aprovado (por membros do time e alguns serviços automatizados);
- Passar na formatação e nos testes de segurança;
- Passar nos testes de unidade e de integração;
No merging todas as mudanças será automaticamente integradas pelo Github Actions.
Para executar o sistema, siga as instruções abaixo:
- Certifique-se de ter o Docker e o Docker Compose instalados em seu computador.
- Clone o repositório, no terminal executando o comando:
$ git clone https://github.com/priscilasanfer/fiap-techfood.git
- Entre na pasta do projeto:
$ cd fiap-techfood
- Build o projeto rodando o comando
$ mvn install -DskipTests
- Execute o comando
$ docker compose up --build -d
para subir o ambiente completo em modo detached. - Acesse a documentação da API através do Swagger para começar a interagir com o sistema.
Para acessar o Swagger utilize a url http://localhost:8080/swagger-ui/index.html.
O ambiente de desenvolvimento já sobe com alguns dados no banco, isso facilita o processo de teste do código.
- Para subir o ambiente de desenvolvimento adicione a opção:
spring.profiles.active=dev
no arquivoapplication.properties
. - Agora faça o Build do projeto rodando o comando
$ mvn install -DskipTests
Se for necessário fazer um reset no ambiente, pode usar o comando:
$ docker compose down --rmi all
.