Este software faz parte de um projeto do PET Computação UFPR para análise de dados dos cursos de graduação da UFPR. Veja a wiki.
0.0.0
Os códigos fonte do projeto estão disponíveis publicamente no [gitlab] (gitlab.c3sl.ufpr.br/pet/adega).
E podem ser clonado com o comando
$ git clone git@gitlab.c3sl.ufpr.br:adega/adega.git
Para executar o projeto com o docker, siga os seguintes passos:
$ git clone git@gitlab.c3sl.ufpr.br:adega/adega.git # Comando já executado
$ cd adega/
$ sudo make docker-install # Instala o docker.io e docker-compose
$ sudo apt install docker.io
$ sudo make docker-up # Executa os containers postgres e webserver
Docker >=1.13.1
Docker-compose >=1.21.2
1: O docker-compose padrão nos repositórios podem não conter a versão mais recente. Caso a etapa de instalação não funcione, consulte a referência dos desenvolvedores.
2: Seu computador pode ter problemas ao configurar o DNS. Neste caso, erros parecidos como os a seguir irão acontecer:
E: Unable to locate package python3-pip
E: Unable to locate package postgresql-client
Neste caso, consulte este tutorial para resolver o problema.
Depois de fazer o tutorial, lembre de utilizar o comando sudo docker system prune -a
para limpar a cache e evitar os problemas.
Enquanto o sudo make docker-up
estiver sendo executado, as alterações feitas nos arquivos do projeto serão compartilhadas com os arquivos do container docker. Ou seja, é possível alterar qualquer arquivo do projeto e haverá resultados em tempo real.
Assim como é possível realizar qualquer comando como seria feito no com o manage.py, também é possível por meio do comando sudo make docker-manage
. Por exemplo:
$ sudo make docker-manage makemigrations submission
$ sudo make docker-manage migrate
$ sudo make docker-manage createsuperuser
Para realizar esses comandos, certifique-se que o comando make docker-up
está em execução (recomenda-se deixar uma aba no terminal para isso).
É recomendado que o usuário configure o docker para que o mesmo possa ser executado sem necessidades de privilégios de superusuário, assim não haverá necessidade do uso de sudo
. Caso contrário, os comandos realizados com sudo make
poderão criar arquivos cujo proprietário é o usuário root
. Caso a recomendação não for seguida, o seguinte comando irá alterar o proprietário dos arquivos para o usuário atual:
$ sudo make docker-fix
Para apagar os containers e o banco de dados, execute o seguinte comando:
$ sudo make docker-remove-all
Observação: Esse comando não irá deletar qualquer arquivo do projeto / diretório local, apenas os containers.
Para fazer o deploy do adega na versão de produção primeiro verifique se settings.py está com a seguinte linha:
DEBUG = False
Então execute:
$ sudo make docker-production
Este comando funciona da mesma forma que make docker-up
e portando também funciona com os comandos make docker-manage
.
O aplicativo vai rodar na porta 8000, para alterar mude a porta do container nginx no arquivo docker-production.yml
.
Se não for possível construir as imgens do docker no servidor será necessário copia-las manualmente por scp.
Para salvar uma imagem execute:
$ sudo docker save imagem -o imagem_destino
Para carregar:
$ sudo docker load -i imagem
É necessário carregar as imagens adega_web
, adega_db
e adega_nginx
.
Se alterações forem feitas no código do adega elas serão automaticamente refletidas no servidor, mesmo na versão de produção. Porém se mudanças forem feitas no container do nginx a imagem deste deverá ser refeita.
Para manter o aplicativo atualizado só é necessário dar pull na branch production.
sudo make install
make install-user
pipenv install --dev
Criar o banco de dados postgres
sudo -u postgres psql < postgres/create.sql
se você possui o arquivo do banco de dados compartilhado internamente pelos
desenvolvedores do projeto coloque-o na home do projeto, ele vem com um usuário
pet
com senha pet
pré-configurado para testes.
se você não possui o arquivo rode
python manage.py migrate
python manage.py createsuperuser
Por padrão ele irá rodar no 127.0.0.1:8000, ative o virtualenv antes
pipenv shell
python manage.py runserver
Se estiver usando o cloud9 use o ip e a porta que ele libera, assim:
pipenv shell
python manage.py runserver $IP:$PORT
Então acesse pela url fornecida
Ao sair do projeto execute exit
para sair do virtualenv e evitar polui-lo
Após você logar no sistema com o seu super usuário você terá acesso ao URL_DO_SITE/admin
, graças ao Django admin nesta tela você é capaz de gerenciar os dados salvos nas models do projeto.
Para transformar o seu usuário em professor basta clicar em professor
e então selecionar o seu usuário e o curso. Agora se você voltar para a página inicial do sistema você deve ver uma listagem dos seus cursos.
Para executar as análises, acesse localhost:8000/admin
e adicione um submission.
Após isso execute o comando:
sudo make docker-manage analyze 1 # usando o docker
ou
python3 manage.py analyze 1
Onde 1 é o id do submission.
Basta executar:
python manage.py graph_models -a -o diagrama.png
- Django - Framework base. Trata a requisição dos clientes e chama as devidas rotinas.
- Bootstrap - Framework css. Usamos os seus componentes para deixar as telas bonitas
- Charts.js - Biblioteca javascript para desenhar gráficos.
- chroma.js - Biblioteca javascript para escala de cores do heatmap.
- Pandas - usada para importação dos dados
- django-extensions - Várias extensões para o django. Estamos usando para gerar o diagrama do projeto.
Email - pet@inf.ufpr.br
Facebook - pt-br.facebook.com/petcompufpr