đïž Sistema de Arquivo Morto / GestĂŁo de Processos
Um sistema moderno de organização de arquivos fĂsicos, desenvolvido com Next.js App Router, Prisma ORM e MySQL, permitindo organizar arquivos dentro de caixas, caixas dentro de gavetas, gavetas dentro de estantes, e estantes em locais fĂsicos (como secretarias ou departamentos).
đ Tecnologias Utilizadas
| Ărea | Tecnologia | Descrição | |------|-------------|------------| | Frontend / Backend | Next.js (App Router) | Framework React moderno com Server Actions e SSR | | Banco de Dados | MySQL | Sistema de banco de dados relacional | | ORM | Prisma | ORM moderno com tipagem automĂĄtica | | Linguagem | TypeScript | Tipagem estĂĄtica para JavaScript | | Estilo | Tailwind CSS | Framework CSS utilitĂĄrio | | Componentes UI | shadcn/ui | Biblioteca de componentes acessĂveis e modernos | | Autenticação | NextAuth.js | Login seguro com JWT e provedores OAuth | | Upload de Arquivos | Cloudinary | Upload e armazenamento de arquivos digitais | | Deploy | Vercel | Hospedagem otimizada para Next.js |
đ§± Estrutura HierĂĄrquica
A organização segue o modelo fĂsico de um arquivo real:
Local â Estante â Gaveta â Caixa â Arquivo
Exemplo:
Secretaria de Administração âââ Estante A âââ Gaveta 3 âââ Caixa CX-015 âââ Processo nÂș 2025/001
đ§© Estrutura do Banco (Prisma)
O banco foi definido com campos em portuguĂȘs no arquivo schema.prisma.
Entidades principais
- UsuĂĄrio â acessa o sistema e cria arquivos
- Local â prĂ©dio, setor ou secretaria
- Estante â mĂłvel fĂsico
- Gaveta â subdivisĂŁo da estante
- Caixa â contĂ©m arquivos fĂsicos
- Arquivo â documento ou processo especĂfico
âïž Instalação e Configuração
1ïžâŁ Clonar o repositĂłrio
git clone https://github.com/seu-usuario/arquivo-morto.git
cd arquivo-morto
2ïžâŁ Instalar dependĂȘncias
npm install
# ou
yarn install
3ïžâŁ Configurar o banco de dados
Crie um arquivo .env na raiz do projeto:
DATABASE_URL="mysql://usuario:senha@localhost:3306/arquivo_morto"
NEXTAUTH_SECRET="sua_chave_segura_aqui"
NEXTAUTH_URL="http://localhost:3000"
4ïžâŁ Executar migraçÔes Prisma
npx prisma migrate dev --name init
5ïžâŁ Rodar o servidor de desenvolvimento
npm run dev
Acesse: http://localhost:3000
đ§ Recursos do Sistema
â Cadastro e autenticação de usuĂĄrios â Organização hierĂĄrquica de locais, estantes, gavetas e caixas â Registro de arquivos com metadados e upload digital â Pesquisa e filtros avançados â Interface moderna com tema azul â Responsividade total (mobile-first) â Painel administrativo (opcional)
đš Tema Azul
O tema principal do sistema Ă© azul, configurado via Tailwind:
// tailwind.config.ts
theme: {
extend: {
colors: {
primario: {
DEFAULT: '#007bff',
escuro: '#0056b3',
claro: '#66b2ff',
},
},
},
}
đ Estrutura de Pastas
app/ ââ (auth)/ â rotas de login e registro ââ (dashboard)/ â ĂĄrea interna protegida ââ locais/ â CRUD de locais ââ estantes/ â CRUD de estantes ââ gavetas/ â CRUD de gavetas ââ caixas/ â CRUD de caixas ââ arquivos/ â CRUD de arquivos ââ api/ â rotas de server actions ââ layout.tsx â layout global lib/ ââ prisma.ts â conexĂŁo Prisma ââ auth.ts â configuração NextAuth ââ utils.ts â utilitĂĄrios gerais prisma/ ââ schema.prisma â definição do banco de dados components/ ââ ui/ â componentes reutilizĂĄveis (shadcn) ââ forms/ â formulĂĄrios com react-hook-form ââ layout/ â header, sidebar, etc
đ§âđ» Desenvolvimento
Com o servidor rodando em modo dev:
npm run dev
Para gerar o cliente Prisma tipado:
npx prisma generate
Para visualizar o banco:
npx prisma studio
đ§± PossĂveis ExtensĂ”es Futuras
- Controle de permissÔes (RBAC)
- Digitalização de documentos
- Integração com APIs de OCR
- Exportação em PDF e CSV
- Dashboard com estatĂsticas
đ Licença
Este projeto é open source sob a licença MIT.