arquivo-morto

đŸ—‚ïž 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.


💙 Feito com Next.js, Prisma e muito cuidado