Skip to content

reszkojr/manthano-backend

Repository files navigation

Manthano

1. Identificação

a. Integrantes da equipe:

  • Fabio S. Reszko Jr.

b. Professor Orientador:

  • Eduardo Tieppo

c. Data de criação do documento:

  • 05/03/2024

2. Introdução

Resumo

A internet, ferramenta que tornou possível a comunicação remota, permite que indivíduos se comuniquem de qualquer parte do mundo. Por conta de sua rápida evolução, grandes problemas emergiram, e grandes soluções foram criadas. Entre eles, a adaptação de instituições de ensino mostrou-se digna de diversos meios criados para facilitar a mudança do ambiente acadêmico para o mundo digital. Enquanto esses meios sucederam em simplificá-la e agilizá-la, desenvolveu-se um empecilho a mais: a multiplicidade e a dispersão de soluções. O cenário atual EAD, que oferece soluções diferentes para criação e gestão de atividades; organização de prazos; agendamento e programação de videoconferências; gerenciamento de notas e avaliações dos estudantes; comunicação e interação entre usuários e suporte técnico, encontra-se disperso, dificultando e atrasando a vida de educadores e educandos. Como tentativa de unificar essas soluções e elevar a eficiência tanto dos estudantes quanto dos docentes, este trabalho se materializa em desfragmentar o cenário atual do ambiente EAD na forma de um website, proporcionando ferramentas que harmonizam a jornada de trabalho do usuário. De modo específico, o objetivo do Manthano é criar um ambiente estudantil completo para todos os agentes do processo educacional, promovendo a centralização de recursos e funções específicas. Consequentemente, dispensa-se, assim, a necessidade de percorrer plataformas diferentes quando um obstáculo específico se apresenta.

a. Objetivos

2.1 Objetivo geral

Desfragmentar o cenário atual EAD unificando funções e soluções em apenas uma plataforma digital, proporcionando uma experiência centralizada e eficiente a todos os agentes do processo acadêmico-educacional, como alunos e docentes.

2.2 - Objetivos específicos

  • Melhorar a eficiência de gestão de atividades e suas correções por parte do professor;
  • Unificar funções de diferentes plataformas em uma só, dispensando a necessidade de uso de outras plataformas diferentes;
  • Facilitar o processo de criação e administração de salas de aula oferecendo soluções;
  • Centralizar informações com o objetivo de melhorar a eficiência de trabalho dos professores;
  • Oferecer sistemas de comunicação por texto e vídeochamadas com o propósito de estimular a organização de estudos por parte dos estudantes.

b. Escopo do projeto

O MVP do Manthano ofereceria funções básicas como:

  • Comunicação por chat: Em canais dedicados a matérias específicas, existiram chats de texto dedicados ao compartilhamento de arquivos e comunicação dos estudantes;
  • Agendamento e programação de reuniões online: Ambos os professores e alunos poderão agendar reuniões online com objetivos variados - como videoaulas de professores ou grupo de estudos entre estudantes;
  • Gestão de salas de aula por parte dos professores ou estudantes: a opção de fazer com que a sala de aula (Classroom) seja gestionado pelo professor ou aluno será dada ao usuário.

c. Principais entregas do projeto:

  • Desenvolvimento do webservice: a implementação das funcionalidades de back-end do projeto, feito em Django, como sua regra de negócio e o proporcionamento de informações para o front-end.

  • Desenvolvimento do front-end: fazendo uso do ReactJS e TailwindCSS, a parte frontal da aplicação receberá informações do webservice de modo a exibí-las de forma intuitiva e atraente.

d. Objetivos do projeto (itens quantificáveis que determinam se o projeto foi um sucesso ou não):

  • Implementação de todas as funcionalidades: com a grande diversidade e variedade de funções que o projeto deverá ter, seu sucesso será decidido pela porcentagem de soluções em si constituídas.

  • Feedback dos usuários: obter aprovação dos usuários com avaliações positivas ou críticas construtivas que colaborem na lapidação do projeto.

e. Critérios de aceitação do produto:

  • O projeto deverá ter um design intuitivo, agradável e atraente, oferecendo uma experiência agradável aos usuários;

  • O projeto deverá apresentar estabilidade conforme o uso do usuário, não apresentando bugs, erros e inconformidades de design;

  • O projeto deverá apresentar responsividade conforme diferentes proporções de resoluções são exigidas ao front-end, adaptando-se em diferentes tipos de dispositivos.

  • O projeto deverá apresentar uma navegação acessível, exibindo opções intuitivas de navegação ao usuário;

  • O projeto deverá de ter seu uso aprovado por ambos usuários e professores.

3. Matriz de Riscos

  1. Não cumprimento da implementação das funcionalidades do projeto Probabilidade: média Impacto: crítico Mitigação: desenvolver o projeto dentro de uma programação organizada que reflita a capacidade do desenvolvedor de implementar todas as funcionalidades devidas.

  2. Mudança nos conceitos funcionais dedicados ao projeto por conta de obstáculos em suas implementações Probabilidade: alta Impacto: médio Mitigação: implementar funções no projeto cujo tempo de desenvolvimento esteja dentro do tempo restante referente à entrega do projeto.

  3. Vulnerabilidades de segurança Probabilidade: média Impacto: crítico Mitigação: seguir práticas de segurança confiáveis, implementando sistemas de autenticação criptografados e a atualização frequente das bibliotecas e outras ferramentas utilizadas no projeto.

  4. Baixa aprovação dos estudantes ou professores devido a má implementação dos recursos do projeto Probabilidade: baixa Impacto: médio Mitigação: implementar ou redesenhar funções solicitadas pelos usuários com o objetivo de manter o projeto a par de seus desejos e vontades por meio de pesquisas com os estudantes e docentes.

  5. Baixa aprovação dos estudantes ou professores devido a inferioridade do projeto em relação a concorrentes Probabilidade: média Impacto: médio Mitigação: estudar os concorrentes e identificar onde se diferenciam e onde falham, comparando os resultados obtidos com o cenário atual oferecido pelo projeto.

4. Recursos utilizados:

Tecnologia Versão Descrição
NPM v10.5.0 Gerenciador de pacotes Node.JS
Node.JS v21.6.2 Runtime JavaScript utilizado para rodar JavaScript fora do navegador
VS Code v1.87.0 Editor de texto com suporte a plugins
Git v2.44.0 Sistema de controle de versionamento
GitHub - Plataforma de hospedagem de repositórios Git
ReactJS v18.2.15 Biblioteca JavaScript/TypeScript para criação de interfaces modularizadas
Django v4.2.6 Framework Python MVC para desenvolvimento web
TailwindCSS v3.3.3 Framework CSS utilizado para criação rápida de websites
LucidChart - Plataforma online de diagramação
SQLite v3.45.1 Base de dados relacional que dispensa o uso de um servidor
Firefox v123.0 Navegador web
ESLint v8.45 Ferramenta de análise estática para TypeScript
Typescript v5.0.2 Superconjunto sintático JavaScript com suporte a tipagem estética
Vite v4.5.2 Servidor de desenvolvimento local
Axios v1.5.1 Biblioteca cliente HTTP para o navegador e Node.JS

5. Instruções de Download e Execução

5.1 Requisitos

Antes de iniciar, certifique-se de que você possui os seguintes requisitos instalados no seu sistema: Python 3.9 ou superior; Git; Node.js e NPM.

5.2 Passos para Configuração e Execução

a. Primeiro, clone o repositório do projeto para o seu ambiente de desenvolvimento local.

git clone https://github.com/reszkojr/manthano-backend;
cd manthano

b. Crie e ative um ambiente virtual Python

python -m venv venv
source venv/bin/activate  # Para Linux e macOS
venv\Scripts\activate  # Para Windows

c. Instale as Dependências do Back-end

pip install -r requirements.txt

d. Configure o Ambiente

Crie um arquivo .env na raiz do projeto e configure as variáveis de ambiente necessárias, seguindo o exemplo do arquivo .env.example

e. Execute as Migrações do Banco de Dados

python manage.py migrate

f. Execute o Servidor de Desenvolvimento do Back-end

cd ..
python manage.py runserver

O servidor será aberto no endereço http://127.0.0.1:8000/.

Agora, o ambiente de desenvolvimento do Manthano está configurado e pronto para uso!