Loading repository data…
Loading repository data…
Joaoof / repository
Este repositório contém o código-fonte do front-end para um avançado Sistema de Gestão de Biblioteca. O projeto foi concebido para unir o melhor de dois mundos: a performance, escalabilidade e manutenibilidade de uma arquitetura moderna baseada em Next.js 14 e TypeScript, com uma interface antiga
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
Este repositório contém o código-fonte do front-end para um avançado Sistema de Gestão de Biblioteca. O projeto foi concebido para unir o melhor de dois mundos: a performance, escalabilidade e manutenibilidade de uma arquitetura moderna baseada em Next.js 14 e TypeScript, com uma interface de usuário nostálgica e altamente funcional, inspirada na ergonomia clássica do Delphi.
O resultado é uma aplicação web de alta performance que oferece uma experiência de usuário familiar e intuitiva, ideal para ambientes que valorizam a eficiência e a clareza.
A aplicação foi projetada para ser uma solução completa e centralizada para a gestão de bibliotecas. O front-end é desacoplado do backend, comunicando-se através de uma camada de serviços bem definida, o que garante flexibilidade e a possibilidade de integração com qualquer API RESTful.
localStorage para a persistência da sessão do usuário.ModuloEmBreve) para funcionalidades futuras, assegurando uma experiência de usuário coesa e informativa.A arquitetura do projeto foi cuidadosamente planejada para ser escalável e manutenível, fundamentada nos princípios SOLID.
CadastroEditora.tsx lida exclusivamente com o formulário de editoras, enquanto ListasLivros.tsx gerencia a exibição e a lógica da lista de livros.shadcn/ui permite que componentes customizados, como Button ou Input, sejam usados consistentemente em toda a aplicação./lib/types/sistema.ts) define interfaces específicas para cada entidade do domínio, evitando que os componentes dependam de dados que não utilizam.ApiService (/lib/services/api.ts) abstrai a lógica de fetch, permitindo que a fonte de dados seja trocada sem impactar os componentes./
├── app/ # Definições de rota usando o App Router do Next.js
│ ├── layout.tsx # Layout principal da aplicação
│ ├── globals.css # Estilos globais e variáveis de tema
│ ├── page.tsx # Ponto de entrada: Tela de Login
│ └── sistema/
│ └── page.tsx # Página principal do sistema (Dashboard)
├── components/
│ ├── lista-livros/ # Componentes específicos para a listagem de livros
│ ├── sistema/ # Componentes de domínio do sistema
│ │ ├── cadastros/ # Formulários de cadastro (CadastroEditora, CadastroLivro)
│ │ └── dashboard/ # Componentes do painel principal
│ └── ui/ # Biblioteca de componentes de UI (shadcn/ui), desacoplada da lógica de negócio
├── lib/
│ ├── hooks/ # Hooks React customizados para encapsular lógica de estado e data-fetching (ex: useEditoras.ts)
│ ├── services/ # Camada de abstração para a comunicação com a API (api.ts)
│ ├── types/ # Definições de interfaces e tipos TypeScript (sistema.ts)
│ └── utils.ts # Funções utilitárias (ex: cn para merge de classes Tailwind)
├── public/ # Recursos estáticos (imagens, ícones)
├── styles/ # Arquivos de estilo adicionais
├── .eslintrc.json # Configurações do ESLint para qualidade de código
├── next.config.mjs # Configurações do Next.js
├── package.json # Dependências e scripts do projeto
└── tsconfig.json # Configurações do compilador TypeScript
useState, useEffect, useContext)O front-end foi projetado para ser agnóstico em relação ao backend.
ApiService: O Ponto Central de ComunicaçãoO ApiService em lib/services/api.ts é uma classe que encapsula toda a lógica de requisições HTTP. Isso centraliza o tratamento de erros, a configuração de headers e a manipulação da URL base, tornando o código mais limpo e fácil de manter.
// Exemplo de uso dentro de um hook
const { editoras, loading, error } = useEditoras();
A camada de serviço está preparada para consumir os seguintes endpoints (e outros que forem adicionados):
| Método | Endpoint | Descrição |
|---|---|---|
GET | /api/editoras | Retorna a lista de todas as editoras. |
POST | /api/editoras | Cria uma nova editora. |
PUT | /api/editoras/:id | Atualiza uma editora existente. |
DELETE | /api/editoras/:id | Remove uma editora. |
GET | /api/livros | Retorna a lista de todos os livros. |
| ... | ... | ... |
git clone https://github.com/seu-usuario/seu-repositorio.git
cd seu-repositorio
npm install
.env.local na raiz do projeto para configurar variáveis de ambiente, como a URL da API.
NEXT_PUBLIC_API_URL=http://localhost:3333/api
npm run dev
npm run build
zod e react-hook-form.Contribuições são bem-vindas! Para contribuir, siga os seguintes passos:
git checkout -b feature/minha-feature).git commit -m 'feat: Adiciona minha feature').git push origin feature/minha-feature).Por favor, mantenha o padrão visual do projeto e siga os princípios de arquitetura estabelecidos.
Este projeto está licenciado sob a Licença MIT. Veja o arquivo LICENSE para mais detalhes.