Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NF-e / DANFE Demo Platform

Aplicacao local para consulta e visualizacao de NF-e com processamento assincrono.

Objetivo

Este projeto existe para demonstracao tecnica do fluxo de entrada de notas. Nao faz integracao fiscal oficial e nao depende de automacao de portais protegidos.

Stack

  • Frontend: Next.js + Tailwind + React Query
  • Backend: NestJS + Prisma + PostgreSQL + Swagger
  • Worker: Node.js + BullMQ + Redis + Prisma
  • Infra: Docker Compose

Servicos

  1. frontend
  2. backend-api
  3. worker
  4. postgres
  5. redis

Fluxo

  1. Frontend cria consulta em POST /consultations.
  2. API salva pending e enfileira job.
  3. Worker processa provider e normaliza dados.
  4. Worker salva documento, itens e logs.
  5. Frontend consulta status em polling.

Providers

  • MockNfeProvider
  • XmlUploadProvider
  • SimulatedNfeProvider
  • PublicPortalProviderExperimental

Endpoints principais

  • GET /health
  • POST /consultations
  • GET /consultations
  • GET /consultations/:id
  • GET /consultations/:id/status
  • POST /consultations/:id/upload-xml
  • GET /consultations/:id/document
  • GET /consultations/:id/logs
  • POST /nfe/parse-xml
  • POST /nfe/mock
  • POST /jobs/reprocess/:id

Swagger:

  • http://localhost:3021/api/docs

Executar com Docker

cp .env.example .env
docker compose up --build

Acessos padrao deste repositorio:

  • Frontend: http://localhost:3020
  • Backend API: http://localhost:3021
  • Swagger: http://localhost:3021/api/docs
  • Postgres (host): localhost:55432
  • Redis (host): localhost:56379

Variaveis de ambiente

Arquivo de exemplo:

  • .env.example

Principais variaveis:

  • DATABASE_URL
  • BACKEND_PORT
  • FRONTEND_PORT
  • NEXT_PUBLIC_API_URL
  • POSTGRES_HOST_PORT
  • REDIS_HOST_PORT
  • ENABLE_PUBLIC_PORTAL_PROVIDER

Execucao local sem Docker (opcional)

Backend:

cd apps/backend-api
npm install
npm run prisma:generate
npm run prisma:deploy
npm run prisma:seed
npm run start:dev

Worker:

cd apps/worker
npm install
npm run prisma:generate
npm run start:dev

Frontend:

cd apps/frontend
npm install
npm run dev

Testes

cd apps/backend-api
npm test -- --runInBand
npm run test:e2e -- --runInBand

Chaves de acesso para teste

As chaves abaixo sao ficticias e servem para teste local.

99960226000000000000000000000000000000000001
99960226000000000000000000000000000000000002
99960226000000000000000000000000000000000003
99960226000000000000000000000000000000000004
99960226000000000000000000000000000000000005
99960226000000000000000000000000000000000006
99960226000000000000000000000000000000000007
99960226000000000000000000000000000000000008
99960226000000000000000000000000000000000009
99960226000000000000000000000000000000000010
99960226000000000000000000000000000000000011
99960226000000000000000000000000000000000012
99960226000000000000000000000000000000000013
99960226000000000000000000000000000000000014
99960226000000000000000000000000000000000015
99960226000000000000000000000000000000000016
99960226000000000000000000000000000000000017
99960226000000000000000000000000000000000018
99960226000000000000000000000000000000000019
99960226000000000000000000000000000000000020
99960226000000000000000000000000000000000021
99960226000000000000000000000000000000000022
99960226000000000000000000000000000000000023
99960226000000000000000000000000000000000024
99960226000000000000000000000000000000000025
99960226000000000000000000000000000000000026
99960226000000000000000000000000000000000027
99960226000000000000000000000000000000000028
99960226000000000000000000000000000000000029
99960226000000000000000000000000000000000030
99960226000000000000000000000000000000000031
99960226000000000000000000000000000000000032
99960226000000000000000000000000000000000033
99960226000000000000000000000000000000000034
99960226000000000000000000000000000000000035
99960226000000000000000000000000000000000036
99960226000000000000000000000000000000000037
99960226000000000000000000000000000000000038
99960226000000000000000000000000000000000039
99960226000000000000000000000000000000000040
99960226000000000000000000000000000000000041
99960226000000000000000000000000000000000042
99960226000000000000000000000000000000000043
99960226000000000000000000000000000000000044
99960226000000000000000000000000000000000045
99960226000000000000000000000000000000000046
99960226000000000000000000000000000000000047
99960226000000000000000000000000000000000048
99960226000000000000000000000000000000000049
99960226000000000000000000000000000000000050
99960226000000000000000000000000000000000051
99960226000000000000000000000000000000000052
99960226000000000000000000000000000000000053
99960226000000000000000000000000000000000054
99960226000000000000000000000000000000000055
99960226000000000000000000000000000000000056
99960226000000000000000000000000000000000057
99960226000000000000000000000000000000000058
99960226000000000000000000000000000000000059
99960226000000000000000000000000000000000060

About

Projeto Academico para busca de notas fiscais

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages