# 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*