Skip to content

Davicsb/Virtual-Learning-Platform

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Virtual-Learning-Platform

Projeto de um ambiente virtual escolar baseado no sistema SIGAA, AVA e Google Classroom para a máteria de engenharia de software.

Rodando o Front-end (React)

Para rodar o ambiente de desenvolvimento front-end, siga os passos abaixo.

Pré-requisitos:


Guia de Instalação

  1. Clone o repositório (se ainda não o fez):

    git clone https://github.com/Davicsb/Virtual-Learning-Platform
    cd Virtual-Learning-Platform
  2. Navegue até a pasta do front-end:

    cd frontend
  3. Instale todas as dependências do projeto (React, Vite, etc.):

    npm install
  4. Inicie o servidor de desenvolvimento:

    npm run dev
  5. Abra seu navegador e acesse http://localhost:5173/ para ver o projeto rodando.


Rodando o Back-End (Java & MySql)

Pré-requisitos:


Guia de instalação

  1. 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.

  2. Abra a pasta do repositório no IntelliJ.

  3. Nas configurações, clique na seção plugins e instale o plugin "LomboK" no marketplace.

  4. 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]).

  5. 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).
  1. 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.

  2. 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.
    
    

História de usuários

1. Como usuário eu quero:

  • 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.

2. Como admin ou professor eu quero:

  • 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.

3. Como professor ou aluno eu quero:

  • Ver uma listagem de turmas que eu estou participando.

4. Como admin eu quero:

  • 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.

5. Como professor eu quero:

  • Ser capaz de dar avisos em uma turma.

6. Como aluno eu quero:

  • 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.

Requisitos

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

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.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors