Skip to content

api-fatec-bd/api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ProjetoAPI

Projeto de Banco de Dados Distribuídos, com Back-end e Front-end e Job
para ETL e Analytics em DW com Deploy para Produção

📜 Introdução

Visão do Projeto

Desenvolver uma solução de dados voltada ao ensino à distância para a gestão e oferta de conhecimento, dando suporte às mais diversas arquiteturas de aprendizagem, alinhado com os objetivos estratégicos a serem alcançados por cada organização que atendemos como clientes. Fazer a gestão de logs para alimentar um Data Warehouse afim de possibilitar a melhor gestão estratégica do negócio.

Apresentação da Evolução do Projeto

✅ Sprint 1 ✅ Sprint 2 ✅ Sprint 3 ✅ Sprint 4

Planejamento

Para fazer o planejamento foi utilizado a metodologia de "Design Thinking". Segundo o wikipedia, Design Thinking é o conjunto de ideias e insights para abordar problemas, relacionados a futuras aquisições de informações, análise de conhecimento e propostas de soluções.

🔄O design thinking consiste em 5 partes ciclicas: empatia, definição, ideação, prototipo, teste.

  • A primeira etapa (empatia) do primeiro ciclo foi realizada junto ao cliente.
  • A etapa de definição é realizada durante as plannings do projeto.
  • A etapa de ideação e prototipo são realizadas durante a sprint e
  • A etapa de teste é realizada sempre que um prototipo vira funcionalidade através do fluxo de CI (continuous integration) e CD (continuous deploy/delivery) do projeto.

Cronograma

  • 16/08/2021 até 22/08/2021 - Kick Off do Projeto
  • 30/08/2021 até 19/09/2021 - Sprint 1
  • 20/09/2021 até 10/10/2021 - Sprint 2
  • 18/10/2021 até 07/10/2021 - Sprint 3
  • 08/11/2021 até 28/11/2021 - Sprint 4
  • 29/11/2021 até xx/12/2021 - Sprint Apresentação Final
  • xx/xx/2021 até xx/xx/2021 - Sprint Feira de Soluções

Gitflow

Aqui é discutido o Gitflow Workflow. Gitflow é um dos muitos estilos de fluxos de trabalho Git que você e sua equipe podem utilizar.

Alguns dos principais aprendizados para saber sobre o Gitflow são:

  • O fluxo de trabalho é ótimo para um fluxo de trabalho de software baseado em lançamento.
  • O Gitflow oferece um canal dedicado de hotfixes para produção.

O fluxo geral do Gitflow é:

  1. Uma ramificação development é criada a partir da main
  2. Uma ramificação de release é criada a partir da ramificação de development
  3. As ramificações de feature são criadas a partir da ramificação de development
  4. Quando um feature é concluído, deve ser aberto um Pull Request para development
  5. Para completar o PR é necessário ser homologado pelo PO
  6. Quando a ramificação release é feita, é feito o merge dela na ramificação development e na main
  7. Se for detectado um item na main, uma ramificação de hotfix vai ser criada a partir da main
  8. Depois que o hotfix for concluído, existe o mesmo processo de homologação, ele passa por merge para a ramificação development e à main

No nosso projeto, configuramos o CI para realizar o build da aplicação e validar os teste unitários.

🔠 Como usar

Dockerfiles para os serviços utilizados

Instalando o docker:

Subindo os containers

docker-compose -f <arquivo.yml> up -d

Down containers

docker-compose <arquivo.yml> down

Endereços importantes:

📝 Backlog

USER STORIES

Na descrição dos story cards, temos 4 personas: Aluno, Tutor, Gestor e Administrado.

  • Como aluno, eu sou capaz de acessar o chat em tempo real para interagir/discutir com outros alunos e tutores;;
  • Como tutor, eu sou capaz de acessar o chat do aluno para interagir/discutir com outros alunos;
  • Como aluno, eu sou capaz de acessar o chatbot da plataforma para buscar orientações rápidas;
  • Como aluno/tutor, eu sou capaz de acessar o sistema de LMS;
  • Como gestor, eu sou capaz de adicionar/editar/excluir cursos;
  • Como tutor, eu sou capaz de acessar um dashboard com painéis informativos específicos para tutoria;
  • Como gestor, eu sou capaz de acessar um dashboard com painéis informativos específicos para gestão;
  • Como administrador, eu sou capaz de acessar um dashboard com painéis informativos específicos para administração;

Requisitos Funcionais

◼️ Sprint 1

1 - Definir as tabelas FATO do Data Warehouse;

2 - Definir as dimensões e granularidade do Data Warehouse;

3 - Desenvolver um chat em tempo real com capacidade de até 1000 usuários simultâneos, capaz de gerar log das mensagens;

4 - Definir ferramentas para o pipeline ETL;

◼️ Sprint 2

5 - Criar rotinas ETL da plataforma e do chat para alimentar o DW;

6 - Criar os dashboards OLAP com os indicadores requisitados;

◼️ Sprint 3

7 - Definir os gráficos para visualização dos Dashboards;

8 - Criar um sistema OLAP com visualizações (com dados de testes) diferentes para os 3 tipos de usuário (Tutor, Gestor e ADM);

9 - Integrar o sistema OLAP com o Data Warehouse.

10 - Reestruturar os logs da aplicação de acordo com as métricas esperadas no Data Warehouse ( Ativação, Engajamento, Desempenho, Participação, Avaliação de reação, Registro do tempo de participação no curso)

◻️ Sprint 4

11 - Refatorar a plataforma de LMS desenvolvida pela turma do 3º semestre de banco de dados (no primeiro semestre de 2021), para armazenar os dados dos logs em um banco de dados não-relacional;

12 - Criar rotinas para carregar os dados no Data Warehouse.

🔳 Requisitos não Funcionais

  • Documentação completa e clara
  • Facilidade de uso
  • Segurança
  • Escalabilidade

Fluxo da Aplicação

Fluxo da Aplicação

💾 5. Diagrama do Banco de Dados

Diagrama do Banco de Dados

🔠Protótipo Dashboard (OLAP)

💪 Equipe

Gabriel Angelo Fernanda Ramos Nathan Nascimento Paulo Filipini Vitor Daniel
linkedIn linkedIn linkedIn linkedIn linkedIn
André Lars Daniel Delgado Felipe Braga Giovanni Guidace Jéssica Isri
linkedIn linkedIn linkedIn linkedIn linkedIn
<style> table { width: 100%; } </style>

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published