README.md 4.47 KB
Newer Older
João Denis Rodrigues's avatar
João Denis Rodrigues committed
1
# ADEGA
2 3


João Denis Rodrigues's avatar
João Denis Rodrigues committed
4
Este software faz parte de um projeto do PET Computação UFPR para 
Jomaro Rodrigues's avatar
Jomaro Rodrigues committed
5
análise de dados dos cursos de graduação da UFPR. Veja a [wiki](http://gitlab.c3sl.ufpr.br/adega/adega/wikis/home).
João Denis Rodrigues's avatar
João Denis Rodrigues committed
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21


## Versão
0.0.0



## Obtendo os códigos


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

```bash
Jomaro Rodrigues's avatar
Jomaro Rodrigues committed
22
$ git clone git@gitlab.c3sl.ufpr.br:adega/adega.git
João Denis Rodrigues's avatar
João Denis Rodrigues committed
23
```
24
## Instalação e dependências com docker
João Denis Rodrigues's avatar
João Denis Rodrigues committed
25

26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
Para executar o projeto com o docker, siga os seguintes passos:
```bash
$ 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 make docker-up # Executa os containers postgres e webserver
```

## Desenvolvimento com o docker

Enquanto o `sudo make docker-up` estiver sendo executado, as alterações feitas nos arquivos do projeto será compartilhado 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:
```bash
$ sudo make docker-manage makemigrations uploads
$ 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).

## Recomendações para o docker
É 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:
```bash
$ sudo make docker-fix
```

## Remover os containers + banco de dados
Para apagar os containers e o banco de dados, execute o seguinte comando:
```bash
$ sudo docker-remove-all
```
*Observação*: Esse comando **não** irá deletar qualquer arquivo do projeto / diretório local, apenas os containers.   
João Denis Rodrigues's avatar
João Denis Rodrigues committed
60

61
## Instalação e dependências manuais (não recomendado)
João Denis Rodrigues's avatar
João Denis Rodrigues committed
62 63 64


```bash
Jomaro Rodrigues's avatar
Jomaro Rodrigues committed
65 66 67
sudo make install
make install-user
pipenv install --dev
João Denis Rodrigues's avatar
João Denis Rodrigues committed
68 69
```

Jomaro Rodrigues's avatar
Jomaro Rodrigues committed
70 71 72 73 74 75 76
Criar o banco de dados postgres

```
sudo -u postgres psql < postgres/create.sql
```


João Denis Rodrigues's avatar
João Denis Rodrigues committed
77 78 79 80 81 82 83 84 85 86 87 88 89 90 91
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

```bash
python manage.py migrate
python manage.py createsuperuser
```


## Executando o projeto

92
Por padrão ele irá rodar no 127.0.0.1:8000, ative o virtualenv antes
João Denis Rodrigues's avatar
João Denis Rodrigues committed
93
```bash
94
pipenv shell
João Denis Rodrigues's avatar
João Denis Rodrigues committed
95 96 97 98 99
python manage.py runserver
```

Se estiver usando o cloud9 use o ip e a porta que ele libera, assim:
```bash
100
pipenv shell
João Denis Rodrigues's avatar
João Denis Rodrigues committed
101 102
python manage.py runserver $IP:$PORT
```
103

João Denis Rodrigues's avatar
João Denis Rodrigues committed
104 105
Então acesse pela url fornecida

106 107
Ao sair do projeto execute `exit` para sair do virtualenv e evitar polui-lo

João Denis Rodrigues's avatar
João Denis Rodrigues committed
108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135
## Transformando o seu usuário em um professor

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](https://docs.djangoproject.com/en/1.10/ref/contrib/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. 


## Gerar diagrama do projeto

Basta executar:
```bash
python manage.py graph_models -a -o diagrama.png
```

### Entendendo as dependências do projeto:

* [Django](https://www.djangoproject.com/) - Framework base. Trata a requisição dos clientes e chama as devidas rotinas.
* [Bootstrap](http://getbootstrap.com/) - Framework css. Usamos os seus componentes para deixar as telas bonitas
* [Charts.js](http://www.chartjs.org/) - Biblioteca javascript para desenhar gráficos.
* [Pandas](http://pandas.pydata.org/) - usada para importação dos dados
* [django-extensions](https://django-extensions.readthedocs.io/en/latest/) - Várias extensões para o django. Estamos usando para gerar o diagrama do projeto.


## Contato


Email - pet@inf.ufpr.br

Facebook - pt-br.facebook.com/petcompufpr