Eclipse - Frontend
Eclipse é um software desenvolvido para a gestão completa do envio, avaliação e acompanhamento de relatórios no âmbito jurídico-administrativo. A plataforma oferece funcionalidades específicas para três tipos de usuários:
- Defensores: Criam e submetem triagens e peças processuais.
- Avaliadores: Avaliam peças e triagens enviadas.
- Corregedor: Gerencia usuários, aprovações e negações, além de supervisionar o sistema.
O sistema também oferece notas automáticas, critérios de avaliação e um fluxo para solicitação de recursos, promovendo transparência e controle.
Tecnologias
- Next.js (App Router)
- TypeScript
- Tailwind CSS
- NextAuth (Autenticação)
- Docker (ambiente de desenvolvimento e produção)Usando Docker (ambiente de desenvolvimento)
- HeroUI: Biblioteca de componentes visuais modernos e acessíveis (botões, tabelas, modais, etc.), amplamente utilizada na interface do Eclipse para padronizar a experiência do usuário e facilitar/otimizar o desenvolvimento.
- Tailwind CSS: Utilizado em conjunto com HeroUI para estilização utilitária e responsiva.
Estrutura de Pastas
eclipse/
├── app/ # Rotas e páginas (App Router)
│ ├── api/auth/[...nextauth]/route.ts # Rota de autenticação (NextAuth)
│ ├── registrar/ # Página de registro de usuáros
│ ├── (user-routes)/ # Rotas específicas para usuários logados
│ └── (usuario)/ # OTP e redefinição de senha
│
├── components/ # Componentes utilizados no projeto
│ └── avaliador/ # Componentes de tela do avaliador
│ └── corregedor/ # Componentes de tela do corregedor
│ └── defensor/ # Componentes de tela do defensor
│ └── inicial/ # Componente de gerenciamento da Home
│ └── sidebar/ # Componente de gerencialmento da troca entre telas
│
├── providers/ # Contextos globais (auth, loading, sessão)
│ └── HeroProvider # Gerenciamento da biblioteca de User Interface que facilita a criação de componentes
│ └── LoadingProvider # Gerenciamento das funções de loading do software
│ └── ScreenProvider # Gerenciamento das trocas de componente em tela e seus parâmentros
│ └── SessionProvider # Gerenciamento das informações de sessão do usuário logado
│
├── public/ # Arquivos estáticos(Imagens e Icones)
│
├── utils/ # Funções utilitárias
│ └── NextAuthOptions # Configurações de autenticação de usuário
│ └── *.tsx # Demais utilitários
│
├── Dockerfile.* # Dockerfiles para build e produção
├── next.config.ts # Configurações do Next.js
└── tailwind.config.js # Configurações do Tailwind CSS
Autenticação
A autenticação é gerenciada por NextAuth com a configuração definida em:
app/api/auth/[...nextauth]/route.ts
Suporta autenticação por e-mail/senha com fluxo de redefinição de senha via token e OTP.
Padrões de Código
-
Componentes funcionais com Hooks.
-
Organização baseada em papéis de usuário.
-
ESLint configurado com suporte a TypeScript.
-
Estilização com Tailwind CSS.
- Uso de HeroUI para componentes reutilizáveis.
Colaboração
Branches
-
main: Produção -
develop: Desenvolvimento -
feat--*: Novas funcionalidades -
fix--*: Correções
Funcionalidades em Destaque
-
Triagens e submissões por defensores.
-
Avaliação e notas automáticas.
-
Acompanhamento de histórico.
-
Fluxo de aprovação/negação com recurso e/ou usuários do sistema.
-
Sistema robusto de autenticação e segurança.
Equipe de Desenvolvimento
-
Desenvolvedores Fullstack:
- João Vitor Viana Chaves
- Gustavo Costa
- Vinícius Jesus
- Guilherme Barbosa
-
Coordenação Técnica:
- Guilherme
- Layon