Projeto Integrador em Computacao II
O objetivo do projeto é desenvolver um software com Framework Web que utilize/inclua:
- Banco de Dados.
- Script Web (JavaScript).
- Nuvem.
- Uso de API.
- Acessibilidade.
- Controle de Versão.
- Testes.
- Análise de Dados..
Ementa: Resolução de problemas. Levantamento de requisitos. Desenvolvimento web com framework. HTML. CSS. Linguagem de script (Javascript). Banco de Dados. Controle de Versão. Nuvem. API. Acessibilidade. Testes. Análise de dados.
Data: 1o Semestre, 2022.
O Projeto Escolhido
Software para acompanhamento de Indicadores OKRs (Objectives and Key Results) e/ou KPIs (Key Performance Indicator).
Dor:
Como medir a evolução de um planejamento de curto, médio e longo prazo? Como saber se a execução realmente está sendo efetiva e se vai cumprir o prazo?
Solução:
Criar um software que permita cadastrar indicadores e a partir deles gerar um Dashboard para a apresentação de indicadores diversos de maneira clara e que suporte a tomada de decisão.
Funcionalidades:
-
Criar conta (tennant)
-
Área Administrativa (acessada pelo criador da conta tennat ou admins) para:
- Cadastrar usuários adicionais, selecionar o nível (admin/gerente/user)
- Cadastrar indicador, selecionar se é OKR ou KPI,
- Cadastrar suas metas cadastrar a frequência de leitura, se é diária, semanal ou mensal.
-
Área de Usuário para:
- Imput dos indicadores.
- Dashboard para Visualização dos Indicadores.
-
API-REST para:
- POST com o ID do indicador - Permite o input do valor do indicador. (isso pode ser útil para cadastrar valores de indicadores automaticamente. Indicadores que recebam dados de outras aplicações.)
- GET com o ID do indicador - Permite a leitura do valor do indicador em JSON.
Tecnologias Escolhidas para Implementar:
-
Código:
- Linguagem de Programação: Python (https://www.python.org).
- Framework Web: Django (https://www.djangoproject.com).
- Bibliotecas: django-allauth (https://www.intenct.nl/projects/django-allauth).
- Bando de Dados: MySQL (https://www.mysql.com).
- Controle de Versões: Github (https://github.com).
-
Infraestrutura de Nuvem:
- Servidor físico na nuvem utilizando So you Start (https://www.soyoustart.com).
- Sistema operacional do Servidor utilizando Linux distribuição Debian 11 (https://www.debian.org).
- Containers em docker utilizando docker-compose (https://www.docker.com).
- Registro de domínio publico utilizando Registro Br (https://registro.br).
- Gerenciamento de DNS público e Registro de hostnames (https://www.cloudflare.com).
- Certificado de segurança SSL/HTTPS utilizando Let's Encrypt (https://letsencrypt.org).
- Serviço de envio de e-Mails Sendgrid (https://sendgrid.com).
-
Arquitetura:
Estrutura de microserviços com (arquitetura em n-níveis) utilizando um container docker para cada um dos servicos abaixo:
- Proxy Reverso utilizando Traefik (https://traefik.io).
- Banco de Dados utilizando MySQL (https://www.mysql.com).
- Aplicação Django utilizando Gunicorn (https://gunicorn.org).
Links:
- Gerenciamento do Projeto: https://github.com/acremonezi/Projeto-Integrador-em-Computacao-II/projects/1
- Documentação: https://github.com/acremonezi/Projeto-Integrador-em-Computacao-II/wiki
- Protótipo: https://www.figma.com/file/0G2EYzJad1vljI39ivhons/PI-II?node-id=0%3A1
- Data Models: https://github.com/acremonezi/Projeto-Integrador-em-Computacao-II/tree/main/docs/data_models
- Arquitetura: https://github.com/acremonezi/Projeto-Integrador-em-Computacao-II/tree/main/docs/architecture
- Repositório Git: https://github.com/acremonezi/Projeto-Integrador-em-Computacao-II/
- Versões do Software: https://github.com/acremonezi/Projeto-Integrador-em-Computacao-II/releases
- Software: https://bee.espertamente.com.br/
- Vídeo: https://youtu.be/CRUVC7qnq4s