Frontend oficial do sistema Lost & Found, desenvolvido em Next.js para consumo das APIs FastAPI.
Este repositório representa a camada de interface do mesmo sistema descrito no backend, mantendo o mesmo domínio de negócio e as mesmas entidades.
O sistema permite o registro, busca e devolução de itens perdidos, conectando pessoas que encontraram objetos com seus proprietários legítimos.
- id: Identificador único
- nome: Nome/descrição breve do item
- categoria: Classificação do item (eletrônicos, documentos etc.)
- data_encontro: Data em que o item foi encontrado
- descricao: Descrição detalhada do item
- status: Status atual (disponível, devolvido etc.)
- id: Identificador único
- tipo: Tipo do local (sala, corredor etc.)
- descricao: Descrição específica do local
- bairro: Bairro onde o local está situado
- id: Identificador único
- nome: Nome completo
- cargo: Cargo/função do responsável
- telefone: Telefone para contato
- ativo: Status de atividade no sistema
- id: Identificador único
- data_devolucao: Data em que o item foi devolvido
- observacao: Observações sobre a devolução
- id: Identificador único
- nome: Nome completo
- documento: Documento de identificação
- telefone: Telefone para contato
- Item - Local: Um item é encontrado em um local (N:1)
- Item - Responsável: Um item é registrado por um responsável (N:1)
- Item - Devolução: Um item pode ter uma devolução (1:0..1)
- Devolução - Reclamante: Uma devolução é retirada por um reclamante (N:1)
- Next.js (App Router)
- React
- TypeScript
- ESLint + Prettier
- Vitest + React Testing Library
- APIs REST em FastAPI
- Contratos de dados compartilhados por domínio
- Node.js 20 ou superior
- npm 10 ou superior
- Serviços backend do sistema em execução
Clone o repositório do frontend:
git clone <https://github.com/ap2-frontend-next-js-ditko-br>Instale as dependências:
npm installCrie o arquivo .env.local:
NEXT_PUBLIC_APP_NAME=Sistema de Achados e Perdidos
NEXT_PUBLIC_ENV=localEste sistema utiliza arquitetura separada por serviços. Configure os endpoints por domínio:
NEXT_PUBLIC_API_ITEM_URL=http://localhost:5000
NEXT_PUBLIC_API_LOCAL_URL=http://localhost:5001
NEXT_PUBLIC_API_RESPONSAVEL_URL=http://localhost:5002
NEXT_PUBLIC_API_DEVOLUCAO_URL=http://localhost:5003
NEXT_PUBLIC_API_RECLAMANTE_URL=http://localhost:5004Execute em desenvolvimento:
npm run devAplicação disponível em: http://localhost:3000
npm run dev
npm run build
npm run start
npm run lint
npm run test
npm run test:watchsrc/
app/ # rotas e layouts (App Router)
components/ # componentes reutilizáveis
features/ # módulos por domínio (item, local, devolucao etc.)
services/ # clientes HTTP e integração com APIs
hooks/ # hooks customizados
lib/ # utilitários
styles/ # estilos globais
types/ # tipos compartilhados
public/ # assets estáticos
- Separação clara entre UI, estado e integração com API
- Componentes reutilizáveis e orientados a domínio
- Tratamento centralizado de erro de requisição
- Tipagem forte com TypeScript
- Testes unitários para lógica de negócio
- Testes de componentes para fluxos críticos
Executar testes:
npm run testdocker build -t achados-perdidos-frontend .
docker run -p 3000:3000 achados-perdidos-frontend- Crie uma branch a partir da main
- Implemente a funcionalidade
- Garanta lint e testes passando
- Abra um Pull Request com contexto da mudança
Projeto desenvolvido para a disciplina de Frameworks Full Stack:
Instituição: Faculdade Impacta
Professor:
![]() Giovani Bontempo |
Integrantes:
![]() Ryan Rodrigues Cordeiro |
![]() Felipe Wilson Viana |
![]() Iago Rozales |
Para mais informações sobre o projeto, entre em contato através do repositório no GitHub.
Projeto Acadêmico - Frameworks Full Stack | Prof. Giovani Bontempo | Faculdade Impacta




