Skip to content

codaqui/tutor

Repository files navigation

Codaqui Intranet

Publish a GitHub Packages Container to Tutor and Deploy

Objetivo

A ideia básica é criar um sistema que o aluno consiga criar sua conta com o GitHub e acessar a intranet da Codaqui.

  • Sistema de login via GitHub.
  • Perfil de Estudante
  • Criar um sistema de completar o cadastro.
  • Sistema de Carteira
    • Usuário poder ter uma carteira.
      • A ativação da conta é feita por uma custom action e automaticamente cria a carteira.
    • Usuário pode consultar seus pontos.
    • Usuário pode consultar histórico de transações na sua conta.
  • Criar um repositório para salvar as Issues da Intranet.
    • Vamos utilizar o proprio repositório do Tutor, ainda não foi definido um padrão.
  • GitHub Service
    • Consumir rotas da API com o App GitHub.
  • Sistema de Tarefas (Integração com o GitHub)
    • Usuário o pode ver as tarefas disponíveis.
    • O usuário pode se candidatar a uma tarefa disponível.
    • O usuário pode solicitar ajuda/mais informações sobre a tarefa que está realizando.
    • O usuário pode concluir (enviar para analise) a tarefa.
    • O usuário pode saber o resultado da analise.
  • Atualizar a Wallet para poder associar uma Issue na transação. (opcional)
  • Loja Virtual
    • Escolher item.
    • Revisão.
  • Testes Básicos
    • Exemplo de Testes
    • Aumentar Cobertura
  • Pré - Deploy - v1
    • Lint e iSort do Projeto
    • Escolher um Postgres da vida.
    • Build da Imagem em AMD64 e ARM64.
    • Deploy na Raspberry PI (Teste)
  • Rever fluxos de formulários, verificar se tem como cair em alguma exceção.
  • Criar página para editar perfil separada, para facilitar manutenção.
  • Resetar o banco de dados e partir como v1.

Futuros Apps

  • App de Integração com o Discord
    • Presença em Monitoria/Encontro
    • Mensagem automática de Encontro e Resumo do Encontro
    • Pontos automáticos para lista de presença.
  • Bot de Discord
    • Ranking de Pontuação
    • Consultar/Editar perfil
    • Vinculo de Perfil do Discord para Perfil da Codaqui
      • Modelo do Discord
      • 1:1 com Stundent
      • Integração de Carteira e Pontos

Melhorias de Infraestrutura

  • Cobertura de Testes
  • Modo de Desenvolvimento com Docker

Desenvolvimento

Criando dotenv

# Execute o comando abaixo para criar o arquivo .env
cp .env.example .env

# Abra o arquivo e preencha com as secrets, se você não sabe como conseguir entre em contato com o time de desenvolvimento.

Secrets Especiais para o GitHub

  1. Crie uma organização no GitHub.
  2. Crie um time chamado intranet.
  3. Crie um OAuth App para sua Organização.
  4. Crie um App para sua organização.

Preencha as secrets:

GITHUB_OAUTH_SECRET=""
GITHUB_OAUTH_CLIENT_ID=""
GITHUB_ORGANIZATION="<sua_organização>"
GITHUB_REPOSITORY="<repositorio_de_issues_para_teste>"
SECRET_KEY=""
GH_APP_INSTALL_ID=""
GH_APP_ID=""
GH_PRIVATE_KEY_FILE="private-key.pem"

Executando o Projeto

docker compose up --build

Criando um Super Usuário

# Utilize o Docker Desktop para executar o comando abaixo dentro do container.
python manage.py createsuperuser

Criando um App

poetry run python manage.py startapp <nome_do_app>

Criando um Modelo

poetry run python manage.py makemigrations

Tecnologia