Catalog · How the catalog works
RaizesDoNordeste_backend
- ★ 1 on GitHub
Anyone may press Interesting, signed in or not. It helps others find this project.
README
Raízes do Nordeste API
API REST desenvolvida em Delphi utilizando o framework Horse para gerenciamento de pedidos, produtos, estoque e pagamentos em uma rede de restaurantes.
Tecnologias utilizadas
- Delphi 12 Community Edition
- Horse Framework
- FireDAC
- PostgreSQL
- JWT (Autenticação)
- BOSS (Gerenciador de pacotes)
- Swagger (GBSwagger)
Requisitos
Antes de executar o projeto, é necessário ter instalado:
- Delphi 12 Community Edition
- PostgreSQL (versão 14+ recomendada)
- Git
- BOSS (Gerenciador de dependências)
Estrutura do projeto
src/
????????? controllers
????????? services
????????? dao
????????? models
????????? routes
????????? utils
????????? database
????????? constantes
????????? Swagger
db/
????????? migrations
libs/
????????? (DLLs do PostgreSQL)
docs/
????????? (prints dos diagramas)
tests/
????????? (collection insomnia das requisi????es)Arquivos de apoio
A collection do Insomnia está disponível em:
tests/RaizesDoNordeste_Insomnia_Collection.json
Os diagramas do projeto estão disponíveis em:
docs/diagramas_raizes_do_nordeste.drawio
As migrations estão disponíveis em:
db/migrations
Instalação
1. Clonar o repositório
git clone https://github.com/ThiagoBarcell/RaizesDoNordeste_backend.gitInstalar dependências (BOSS)
Este projeto utiliza o BOSS como gerenciador de pacotes para Delphi.
Como instalar as dependências
- Abra o Prompt de Comando (CMD) ou PowerShell
- Navegue até a pasta raiz do projeto:
cd caminho/do/projetoExemplo:
cd D:\Projetos\Delphi\RaizesDoNordeste- Execute o comando:
boss installEste comando irá baixar automaticamente todas as dependências necessárias do projeto, como:
- Horse Framework
- Horse JWT
- Horse Logger
- GBSwagger
Observação
O arquivo BOSS.exe já se encontra na pasta do projeto. Caso deseje instalar globalmente ou obter mais informações, acesse:
https://github.com/HashLoad/boss
Importante
O comando boss install deve ser executado dentro da pasta raiz do projeto.
Configuração do banco de dados
3. Criar banco
No PostgreSQL:
RaizesDoNordesteDB4. Executar migrations
Execute os arquivos da pasta:
db/migrationsNa ordem:
V01_...
V02_...
V03_...
V04_...
V05_...Configuração do ambiente
5. Criar arquivo .env
Na raiz do projeto:
API_PORT=9000
DB_HOST=localhost
DB_PORT=5432
DB_NAME=RaizesDoNordesteDB
DB_USER=postgres
DB_PASSWORD=sua_senha
JWT_SECRET=HORSE_API_TOP
APP_ENV=developmentConfiguração das DLLs do PostgreSQL
As DLLs devem estar na pasta:
libs/O projeto já está configurado para carregá-las automaticamente via:
SetDllDirectory(...)Executando o projeto
Abra o projeto no Delphi e execute:
Proj_RaizesDoNordesteAPI.dprSaída esperada:
Servidor: 9000Porta padrão
A API roda em:
http://localhost:9000Autenticação
A API utiliza autenticação JWT.
Fluxo:
POST /signupPOST /login- Utilizar o token nas demais rotas:
Authorization: Bearer SEU_TOKENUsuário administrador padrão
Após executar as seeds, o sistema possui um usuário administrador para testes:
E-mail: ADMIN Senha: 1
Esse usuário possui perfil ADMIN e pode acessar rotas administrativas, como cadastro de produtos e movimentação de estoque.
Documentação Swagger
Acesse:
http://localhost:9000/swaggerEndpoints principais
Auth
POST /signupPOST /login
Produtos
GET /produtosPOST /produtosPUT /produtos
Pedidos
GET /pedidosPOST /pedidosPATCH /pedidos/{id}/status
Estoque
GET /estoquePOST /estoque/movimentar
Fidelidade
GET /fidelidadePOST /fidelidade/consentimentoPOST /fidelidade/resgatar
Pagamentos
POST /pagamentos
Fluxo do sistema
Cadastro ??? Login ??? Criar Produto ??? Ajustar Estoque ??? Criar Pedido ??? Pagamento Mock ??? Fidelidade ??? Atualizar Status ??? EntregaControle de estoque
- Entrada
- Saída
- Ajuste
- Baixa automática por pedido
Logs de auditoria
O sistema registra:
- criação de pedidos
- alterações de status
- movimentações de estoque
- pagamentos
Pagamento (Mock)
Simulação de pagamento via endpoint:
POST /pagamentosPrograma de Fidelidade
O sistema possui um programa de fidelidade com controle de consentimento do usuário, atendendo aos cuidados mínimos relacionados à LGPD.
Funcionalidades implementadas:
- consulta de saldo de pontos
- aceite/remoção de consentimento
- resgate de pontos
- crédito automático de pontos após pagamento aprovado
- histórico de movimentações de pontos
A regra adotada foi:
1 real pago = 1 ponto
Testes
Recomenda-se utilizar ferramentas como:
- Insomnia
- Postman
Para testar os endpoints da API utilizando o token JWT gerado no login.
Observações importantes
- Separação em camadas (Controller / Service / DAO)
- Controle de transição de status de pedidos
- Validações de negócio implementadas
- Perfis de Usuário (Roles) O sistema foi modelado com suporte aos seguintes perfis de acesso: Role Descrição ADMIN Administração geral do sistema CLIENTE Usuário final responsável pelos pedidos ATENDENTE Funcionário do balcão COZINHA Responsável pela preparação dos pedidos
Autor
Thiago Afonso Barcelos RU: 4673653
Considerações finais
Este projeto atende aos requisitos propostos no trabalho, incluindo:
- API REST completa
- Autenticação JWT
- Controle de estoque
- Pagamento mock
- Logs de auditoria
- Documentação Swagger
- Estrutura organizada e escalável

