O objetivo deste projeto é desenvolver uma plataforma digital moderna que modernize e otimize o processo de atermação online da Justiça brasileira. O sistema deve permitir que cidadãos registrem ocorrências de infrações de menor potencial ofensivo de forma digital, enquanto oferece aos servidores da Justiça ferramentas completas para gerenciar, acompanhar e processar essas atermações. O sistema atenderá diferentes perfis de usuários: cidadãos (que registram ocorrências sem necessidade de autenticação prévia), servidores com diferentes níveis de acesso (atermadores, gestores locais, administradores) que gerenciam todo o fluxo processual desde o recebimento até a conclusão dos termos circunstanciados.
1. [RF001] Sistema de Autenticação Integrada - Prioridade: Essencial
O sistema deve permitir autenticação via credenciais da Justiça para servidores, integração com sistemas corporativos (LDAP/Active Directory), e acesso sem autenticação para cidadãos no módulo de registro de ocorrências.
2. [RF002] Gerenciamento de Usuários e Perfis - Prioridade: Essencial
O sistema deve gerenciar diferentes perfis de usuários: Administrador (acesso total), Gestor Local (gerencia atermações de sua unidade), Atermador (processa e analisa atermações), e Visualizador (consulta apenas). Novos usuários devem ser aprovados por gestores ou administradores.
3. [RF003] Registro de Ocorrência pelo Cidadão - Prioridade: Essencial
Cidadãos devem poder registrar ocorrências online fornecendo dados pessoais, descrição detalhada do fato, upload de documentos/provas, e seleção do tipo de infração. O sistema deve validar CPF e gerar protocolo automaticamente.
4. [RF004] Distribuição Automática de Atermações - Prioridade: Essencial
O sistema deve distribuir automaticamente as atermações para as unidades competentes baseado na localização do fato e tipo de infração, com possibilidade de redistribuição manual quando necessário.
5. [RF005] Processamento de Atermações - Prioridade: Essencial
Atermadores devem poder analisar ocorrências, solicitar documentação complementar, elaborar petições iniciais, e definir status do processo (em análise, pendente, concluído, arquivado).
6. [RF006] Sistema de Notificações - Prioridade: Essencial
O sistema deve enviar notificações automáticas por e-mail para cidadãos sobre status das atermações, agendamentos de audiência, solicitação de documentos, e conclusão do processo.
7. [RF007] Criação de Documentos - Prioridade: Essencial
O sistema deve permitir que atermadores criem petições iniciais, com templates personalizáveis por unidade judiciária e por assunto de atermação.
8. [RF008] Consulta Pública de Processos - Prioridade: Importante
Permitir consulta pública do andamento de atermações via número de protocolo e CPF, respeitando regras de privacidade e publicidade processual.
9. [RF009] Integração com Sistemas da Justiça - Prioridade: Desejável
Integração com PJe, sistemas de correios eletrônicos, e bases de dados nacionais para validação de informações e evitar duplicidade de registros.
1. [RNF01] Desempenho
O sistema deve suportar pelo menos 10.000 usuários simultâneos, com tempo de resposta inferior a 3 segundos para operações básicas e 10 segundos para relatórios complexos.
2. [RNF02] Segurança
Implementar criptografia de dados sensíveis, controle de acesso baseado em perfis, logs de auditoria completos, proteção contra ataques OWASP Top 10, e conformidade com LGPD.
3. [RNF03] Usabilidade
Interface responsiva compatível com dispositivos móveis, navegação intuitiva para cidadãos leigos, acessibilidade conforme padrões WCAG 2.1, e suporte a múltiplos navegadores.
4. [RNF04] Disponibilidade
Sistema deve ter disponibilidade de 99,5%, com backup automático diário, plano de recuperação de desastres, e monitoramento 24/7.
5. [RNF05] Escalabilidade
Arquitetura deve suportar expansão para outros tribunais e crescimento de volume de atermações, com possibilidade de implantação em nuvem ou on-premise.
6. [RNF06] Interoperabilidade
Conformidade com padrões de interoperabilidade do governo brasileiro, APIs RESTful para integração com sistemas terceiros, e formatos de dados padronizados.
Framework Scrum
Scrum é um framework ágil de gestão de projetos aplicável a diversos tipos de projetos e frequentemente utilizado no desenvolvimento de software. Foi inicialmente formulado como uma abordagem para gerenciar e desenvolver produtos de forma iterativa e incremental. No Scrum, o projeto é dividido em ciclos de trabalho chamados de sprints. Cada sprint tem duração de 1 a 4 semanas, durante o qual um conjunto específico de atividades deve ser concluído. Ao final de cada sprint, é esperado que um incremento do produto seja entregue.
O Scrum foi aplicado no projeto com a criação dos Sprints, totalizando 5 no total. Essa divisão por Sprints tornou o trabalho mais eficiente por dividir tarefas em atividades menores e mais direcionadas. No decorrer do projeto foram encontradas algumas limitações, as quais refletiram na Sprints iniciais, como: limitações impostas por certas liberações, inexistência de WebService que pudesse disponibilizar a informação necessária e restrições de acesso direto a base de dados do PJe. Vale ressaltar que a agilidade das Sprints foi decorrência da equipe altamente integrada, que trabalhou em conjunto e em cooperação constante, assim como a colaboração dos usuários finais, que se mostraram prestativos ao esclarecer dúvidas e realizar testes em ambiente de produção. Metodologia Ágil Scrum.
Plataforma de Gerenciamento JIRA
O JIRA é uma plataforma de gerenciamento de projetos desenvolvida pela Atlassian, que oferece uma variedade de ferramentas para planejamento, acompanhamento e relatório de projetos de software e outros tipos de projetos. O JIRA é uma ferramenta poderosa e versátil para o gerenciamento de projetos, que pode ser adaptada para atender às necessidades de uma ampla variedade de equipes e projetos, desde pequenas startups até grandes empresas. Ele oferece uma combinação única de recursos de planejamento, acompanhamento, colaboração e análise que pode ajudar as equipes a trabalhar de forma mais eficiente e produtiva.
BackEnd com Spring Boot e Java 11
Spring Boot é um framework do Spring Framework que simplifica drasticamente o processo de criação de aplicativos Java, especialmente aplicativos web e API RESTful. Ele foi projetado para acelerar o desenvolvimento, eliminando grande parte da configuração manual e permitindo que os desenvolvedores se concentrem na lógica de negócios.
O Java 11 foi uma das versões mais significativas da linguagem de programação Java, lançada pela Oracle em setembro de 2018. Ela introduziu uma série de recursos poderosos que melhoraram significativamente a produtividade dos desenvolvedores e a eficiência dos aplicativos Java.
FrontEnd com Angular 16
Angular é uma estrutura (framework) JavaScript amplamente utilizada para a construção de aplicativos da web de página única (SPA) e aplicativos da web progressivos (PWA). Desenvolvido e mantido pelo Google, o Angular oferece um conjunto abrangente de recursos para facilitar o desenvolvimento front-end.
Banco de Dados PostgreSQL
O PostgreSQL 9.5 é uma versão marcante do avançado sistema de gerenciamento de banco de dados relacional PostgreSQL. Lançada em janeiro de 2016, essa versão introduziu melhorias significativas em termos de desempenho, escalabilidade e recursos avançados, como a adição do comando UPSERT (através da cláusula ON CONFLICT), que facilitou a inserção e atualização de dados de forma mais eficiente. Além disso, trouxe melhorias em replicação, índices BRIN (Block Range Indexes) e suporte aprimorado para controle de acesso e segurança. Como parte do contínuo desenvolvimento da comunidade PostgreSQL, a versão 9.5 reforçou o compromisso com a estabilidade, conformidade com padrões e inovação. Desde então, o PostgreSQL continuou evoluindo com novas versões e funcionalidades, consolidando-se como uma das principais escolhas para bancos de dados relacionais em ambientes empresariais e de código aberto.