Seleção de Estagiários

Objetivo

O objetivo deste projeto é desenvolver um sistema para apoiar o processo de inscrições de candidatos nas seleções para se tornarem estagiários da Seção Judiciária da Bahia e/ou suas subseções. O sistema deverá ser acessado por dois tipos de usuários: usuário candidato para fazer sua inscrição nos processos seletivos com inscrições abertas, sem a necessidade de autenticação, e com acesso apenas às páginas de inscrição, usuário servidor  para fazer cadastro das seleções e a gestão de todo o processo seletivo incluindo a conferência da documentação enviada pelo candidato.

Este projeto dá continuidade àquele iniciado pela primeira turma da residência com a proposta de revisar os requisitos e reescrever o código utilizando as tecnologias usadas atualmente como padrão para construção e manutenção de sistemas da SJBA.


1. [RF001] Sistema de Login - Prioridade: Essencial

>.Ao realizar o acesso no sistema, o usuário deve se autenticar utilizando suas credenciais da justiça. 


2. [RF002] Gerenciamento de Aceitação Usuários - Prioridade: Importante 

> Ao realizar o primeiro acesso, o usuário precisará ser aceito por um administrador para ter livre acesso ao sistema. 


3. [RF003] Cadastrar Seleção de Estagiários  - Prioridade: Essencial

> O usuário deve ser capaz de cadastrar uma seleção, fornecendo suas informações obrigatórias.

 

4. [RF004] Cadastrar Curso Acadêmico  - Prioridade: Importante 

> O usuário deve ser capaz de cadastrar, editar e excluir um curso de nível superior.


5. [RF005] Cadastrar Convênio - Prioridade: Importante 

> O usuário deve ser capaz de cadastrar, editar e excluir um convenio de nível superior, interligando uma instituição de ensino com uma unidade administrativa.

  

6. [RF006] Cadastrar Fase da Seleção - Prioridade: Importante 

> O usuário deve ser capaz de cadastrar, editar e excluir uma fase que será ligada a uma seleção. 


7. [RF006] Cadastrar Unidade Administrativa  - Prioridade: Importante 

> O usuário deve ser capaz de cadastrar, editar e excluir uma unidade administrativa 


8. [RF006] Sistema de Inscrição na Seleção  - Prioridade: Essencial 

> O usuário estagiário deve ser capaz de se inscrever em determinada seleção de acordo com sua escolha e com o devido preenchimento dos campos obrigatórios. 


9. [RF006] Sistema de Edição da Inscrição na Seleção  - Prioridade: Importante 

> O usuário estagiário deve ser capaz de se editar sua inscrição perante a data limite. 



1. [RNF01] Desempenho 

> O sistema deve possuir desempenho considerável para evitar erros e desistência devido à lentidão. 


2. [RNF02] Segurança 

> O sistema deve ser seguro para evitar ataques e roubo de dados 


3. [RNF03] Usabilidade 

> interface deve ser amigável, facilitando o processo de inscrição. 


4. [RNF04] Escalabilidade 

> A arquitetura deve ser escalável para lidar com um possível aumento de usuários, especialmente em expansões para outros tribunais. 

Desenvolvimento

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.

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. 

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 8 foi uma das versões mais significativas da linguagem de programação Java, lançada pela Oracle em março de 2014. Ela introduziu uma série de recursos poderosos que melhoraram significativamente a produtividade dos desenvolvedores e a eficiência dos aplicativos Java. 

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.

O MySQL 5.7 é uma versão importante do popular sistema de gerenciamento de banco de dados relacional MySQL. Lançada em outubro de 2015, ela trouxe várias melhorias e novos recursos em comparação com versões anteriores. Como uma versão importante, ela trouxe várias melhorias em desempenho, segurança, funcionalidade e usabilidade, tornando-a uma atualização significativa para os usuários do MySQL. Desde então, o MySQL continuou evoluindo com novas versões e recursos, mantendo sua posição como um dos sistemas de gerenciamento de banco de dados mais populares e amplamente utilizados do mundo.

Equipe

Claudio Sant'Anna

(Orientador) 

Carlos Henrique 

(Residente)

Vitor César Neves

(Residente)

Danilo Coimbra

(Orientador)

Lucas França

(Residente)

Paulo Cerqueira

(Residente)