Projeto de um ambiente virtual escolar baseado no sistema SIGAA, AVA e Google Classroom para a máteria de engenharia de software.
Para rodar o ambiente de desenvolvimento front-end, siga os passos abaixo.
Pré-requisitos:
-
Clone o repositório (se ainda não o fez):
git clone https://github.com/Davicsb/Virtual-Learning-Platform cd Virtual-Learning-Platform -
Navegue até a pasta do front-end:
cd frontend -
Instale todas as dependências do projeto (React, Vite, etc.):
npm install
-
Inicie o servidor de desenvolvimento:
npm run dev
-
Abra seu navegador e acesse http://localhost:5173/ para ver o projeto rodando.
Pré-requisitos:
-
Abra o MySQL Workbench e execute o seguinte código no terminal:
create database AVA
Sua base de dados para o AVA e o AuthService foi criada.
-
Abra a pasta do repositório no IntelliJ.
-
Nas configurações, clique na seção plugins e instale o plugin "LomboK" no marketplace.
-
Nos arquivos application.properties de cada serviço (Auth e Data[que no caso é a pasta do backend/AVA]) troque a senha e usuário para a do seu mySQL (A rota de localhost usa a default do MYSQL [3306]).
-
Rode os arquivos:
- backend/APIGateway/src/main/java/DHT/APIGateway/ApiGatewayApplication.java
- backend/services/AuthService/src/main/java/com/example/AuthService/AuthServiceApplication.java
- backend/services/DataService/src/main/java/com/example/AVA/AvaApplication.java
simultaneamente no IntelliJ (abra cada pasta no Intelijei para roda-los).
-
Utilize o programa Postman para dar GET, POST, PUT e/ou DELETE em dados (colocados na aba "Body" em formato JSON) para a database AVA. O template de como deve ser o upload de dados com o POST está em
templates de POSTs.txt.
Para utilizar um token de login, copie-o do terminal e coloque em Authorization -> Type/Bearer_Token no Postman. -
As rotas no momento são:
localhost:8080/data/professor -> POST: Cadastra um usuário PROFESSOR na base, só pode ser feito com um token de login do ADMIN (no momento não precisa de token) GET: Lista todos os professores na base. localhost:8080/data/professor/id -> PUT: Atualiza os dados do professor com o id, só pode ser feito com um token de login do ADMIN ou PROFESSOR GET: Lista os dados do professor do id DELETE: deleta o professor da base, só pode ser feito com um token de login do ADMIN ou PROFESSOR localhost:8080/data/professor/grade -> PUT: Dá/Atualiza a nota de um aluno em uma atividade, usando o id de ambos e a nota, ó pode ser feito com um token de login do PROFESSOR localhost:8080/data/curso -> POST: Cadastra um curso na base, só pode ser feito com um token de login do ADMIN GET: Lista todos os cursos na base. localhost:8080/data/curso/id -> PUT: Atualiza os dados do curso do id, só pode ser feito com um token de login do ADMIN GET: Lista os dados do curso do id, DELETE: Deleta o curso da base, só pode ser feito com um token de login do ADMIN localhost:8080/data/turma -> POST: Cadastra uma turma na base, só pode ser feito com um token de login do ADMIN ou PROFESSOR GET: Lista todas as turmas na nase. localhost:8080/data/turma/id -> PUT: Atualiza os dados da turma do id, só pode ser feito com um token de login do ADMIN ou PROFESSOR GET: Lista os dados da turma no id. DELETE: Deleta a turma do id, só pode ser feito com um token de login do ADMIN ou PROFESSOR localhost:8080/data/atividades -> POST: Cadastra uma atividade na base, e todos os alunos na turma em que ela foi cadastrada a recebem, só pode ser feito com um token de login do PROFESSOR GET: Lista todas as atividades na base. localhost:8080/data/atividades/id -> PUT: Atualiza os dados da atividade do id, só pode ser feito com um token de login do PROFESSOR GET: Lista os dados da atividade no id. DELETE: Deleta a atividade do id, só pode ser feito com um token de login do ADMIN ou PROFESSOR localhost:8080/auth/register -> POST: Cadastra um usuário na base, é pública e o usuário cadastrado é automaticamente ALUNO localhost:8080/auth/login -> POST: Faz uma tentativa de login, se der sucesso retorna uma string de um token JWT //Debug localhost:8080/auth/public -> GET: Retorna "rota pública", feita para testar a camada de visibilidade localhost:8080/auth/private -> GET: Retorna "rota privada" se o token JWT de uma conta PROFESSOR for válido.
- Ser capaz de me cadastrar e logar no sistema.
- Ser capaz de editar minhas informações de usuário.
- Ver a página de uma turma especifica com informações dela como descrição, programação, notas, alunos participantes, professor e etc.
- Ver materiais como aulas em vídeo e documentos na página da turma especifica.
- Ver as atividades da turma em sua página especifica.
- Ver as informações de uma atividade em especifico.
- Ser capaz de adicionar um material (vídeos, documentos, etc) em um turma.
- Ser capaz de adicionar uma atividade em uma turma.
- Ser capaz de remover um aluno da turma.
- Ser capaz de avaliar/dar uma nota para atividades de alunos entregues.
- Ver uma listagem de turmas que eu estou participando.
- Ser capaz de cadastrar usuários no sistema.
- Ver uma listagem de cursos e turmas.
- Ser capaz de gerenciar um curso ou uma turma.
- Ser capaz de adicionar um curso ou uma turma.
- Ser capaz de adicionar um professor ou aluno em uma turma.
- Ser capaz de dar avisos em uma turma.
- Ver uma listagem de atividades pendentes de todas as turmas.
- Ser capaz de entregar uma atividade.
- Ser capaz de enviar/editar/ver um arquivo de uma atividade.
Até agora só tem requisitos funcionais.
RF001 - O usuário deve ser capaz de logar e se cadastrar no sistema. - Alta -> Tecnicamente já feito
RF002 - O usuário deve ser capaz de alterar suas informações cadastradas. - Alta -> Tecnicamente já feito
RF003 - O usuário deve ser capaz de ver a página de uma turma especifica com as informações dela. - Alta -> Tecnicamente já feito
RF004 - O usuário deve ser capaz de ver materiais de uma turma. - Média*
RF005 - O usuário deve ser capaz de ver uma página de atividades de uma turma. - Alta
RF006 - O usuário deve ser capaz de ver as informações de uma atividade. - Alta -> Tecnicamente já feito
RF007 - O admin deve poder cadastrar usuários no sistema. - Alta
RF008 - O admin deve poder ver uma listagem de cursos e turmas cadastrados no sistema. - Alta
RF009 - O admin deve poder cadastrar e gerenciar um curso ou turma. - Alta
RF010 - O admin deve poder adicionar um aluno ou professor em uma turma. - Alta
RF012 - O professor deve poder adicionar um material ou atividade na turma. - Alta -> A parte da atividade foi tecnicamente já feita
RF013 - O professor deve poder avaliar ou dar uma nota para atividades de alunos entregues. - Alta -> Tecnicamente já feito
RF014 - O professor deve poder remover um aluno da turma. - Média
RF015 - O professor deve poder dar avisos em uma turma. - Baixa
RF016 - O professor ou aluno deve poder ver uma listagem de turmas que estão participando. - Alta
RF017 - O aluno deve poder ver uma listagem de atividades pendentes/não entregues de todas as turmas. - Média
RF018 - O aluno deve poder entregar uma atividade. - Alta
RF019 - O aluno deve poder enviar/editar/ver um arquivo de uma atividade. - Alta
Microserviços para o funcionamento do sistema AVA.
AuthService - Lida com a autenticação e cadastro de usuários.
DataService - Lida com o gerenciamento de dados dos usuários e materiais do sistema.