Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
148 changes: 96 additions & 52 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,72 +1,116 @@
## Pré-Requisitos ##

- Apache 2.4 ou mais novo;
- Módulo `mod_rewrite` ativado;
- Configuração `AllowOverride` definida como `All`;
- PHP 7.0 ou mais novo (recomendável o uso do PHP 7.2);
- Extensão mysql_pdo;
- Extensão mbstring;
- Extensão curl;
- Extensão GD;
- MySQL 5.6.4 ou mais novo (recomendável o uso do MySQL 5.7) ou MariaDB 10.0.5 ou mais novo;
- InnoDB ativado com suporte a Full Text Indexes
<p align="center">
<a href="https://www.php.net/"><img src="https://img.shields.io/badge/php-%3E%3D7.4-blue" alt="PHP Version"></a>
<a href="https://mariadb.org/"><img src="https://img.shields.io/badge/mariadb-%3E%3D10.0.5-blue" alt="MariaDB Version"></a>
<a href="https://dev.mysql.com/"><img src="https://img.shields.io/badge/mysql-%3E%3D5.6.4-blue" alt="MySQL Version"></a>
</p>

## Instalação ##
<p align="center">
<img src="docs/assets/img/gde-logo.jpg" alt="GDE Logo" width="300" />
</p>

1. Instale o Composer de [getcomposer.org](https://getcomposer.org);
2. Acesse a pasta raiz do projeto e rode o comando `composer install`;
3. Copie o arquivo `common/config-sample.inc.php` para `common/config.inc.php`;
4. Edite o arquivo `common/config.inc.php` com os dados apropriados. As partes mais importantes que devem ser alteradas são as relacionadas ao banco de dados (DB) e à URL base do sistema;
5. Baixe o arquivo [gde_pacote.zip](https://gde.guaycuru.net/gde_pacote.zip) e descompacte-o;
6. Importe o arquivo `gde_pacote.sql` com o comando `mysql -u USUARIO -p BANCO < gde_pacote.sql` no qual USUARIO é seu usuário no MySQL e BANCO é o nome do banco de dados configurado no passo `4`. Esta importação irá demorar algum tempo, então tenha paciência;
7. Rode o comando `vendor/bin/doctrine orm:schema-tool:update --force` para ter certeza que as tabelas estão atualizadas.
<h2 align="center">🕵️‍♂️ GDE </h2>

## Configurando a API do Google ##
## 📋 Pré-Requisitos

1. Ative a API (https://console.developers.google.com)
2. Vá para a página de credenciais.
2. Nas opções da tela de consentimento OAuth colocar o nome para ser exibido.
3. Nas opções de Credenciais preencher:
- Origens JavaScript autorizadas: http://localhost
- URIs de redirecionamento autorizados: http://localhost/gde/views/google-calendar.php
4. Fazer download do JSON com as credenciais e colocar na pasta.
- **Servidor Web**: Apache 2.4 ou mais novo, com o módulo `mod_rewrite` ativado e `AllowOverride` definido como `All`;
- **PHP**: Versão 7.4 ou mais recente (recomendado: 7.4);
- Extensões PHP:
- `mysql_pdo`;
- `mbstring`;
- `curl`;
- `GD`;
- **Banco de Dados**:
- MySQL 5.6.4 ou mais recente (recomendado: 5.7);
- Ou MariaDB 10.0.5 ou mais recente;
- InnoDB ativado com suporte a índices Full Text.

### Sobre os dados no pacote ###
## 🛠 Instalação

- Utilize o login `login1`
- Todos os usuários possuem a senha `gde42`
- Todos os dados de alunos e usuários são fictícios
- O pacote possui alguns dados dos catálogos 2007 e 2016
- Por questões de tamanho, apenas alguns cursos, modalidades, disciplinas e oferecimentos estão presentes
1. **Instale o Composer**:
Baixe e instale o Composer diretamente de [getcomposer.org](https://getcomposer.org/).

## Sobre este projeto ##
2. **Dependências do Projeto**:
Na pasta raiz do projeto, execute:
```bash
composer install
```

P: Este é o GDE "de verdade"?
R: Sim. A versão 2.5 substituiu a 2.3 no dia 22/12/2017.
3. **Configuração Inicial**:
- Copie `common/config-sample.inc.php` para `common/config.inc.php`:
```bash
cp common/config-sample.inc.php common/config.inc.php
```
- Edite o arquivo `common/config.inc.php` com suas configurações, especialmente:
- Banco de Dados (`DB`);
- URL base do sistema.

P: Qual a diferença entre a versão 2.3 e a 2.5?
R: Em termos de funcionalidades: "avisos", "fóruns", "grupos" e "oportunidades" foram removidos (não eram utilizados). Em termos de backend: a versão 2.3 foi escrita entre 2009 e 2012, e contém código antigo, desatualizado, potencialmente inseguro e, sinceramente, às vezes vergonhoso. Nenhuma biblioteca ou framework foi utilizada, foi tudo feito do zero. Na versão 2.5 foi tudo reescrito para utilizar o ORM [Doctrine](http://www.doctrine-project.org/). Além disso, a versão 2.5 suporta disciplinas com a mesma sigla e níveis diferentes, cursos com o mesmo número e níveis diferentes e oferecimentos com mais de um professor ou com turmas com mais de 2 caracteres, além de várias outras correções menores.
4. **Dados do Pacote**:
- Baixe o arquivo `gde_pacote.zip` e descompacte-o.
- Importe o SQL para seu banco de dados:
```bash
mysql -u USUARIO -p BANCO < gde_pacote.sql
```
Substitua `USUARIO` pelo nome de usuário e `BANCO` pelo banco configurado.

P: Cadê o chat?
R: O chat da forma como foi escrito consumia muitos recursos de CPU e memória do servidor, então ele não será levado para a versão 2.5, no entanto buscaremos uma alternativa mais moderna para as próximas versões.
5. **Atualização de Esquema**:
Garanta que o esquema do banco está atualizado:
```bash
vendor/bin/doctrine orm:schema-tool:update --force
```

P: Onde encontro o código dos crawlers / robôs que pegam os dados?
R: Por requisição da DAC, essa parte do código não será disponibilizada.
## 🚀 Como Rodar o Projeto

P: Por que isso foi feito?
R: Porque eu acredito que a comunidade de alunos (e ex-alunos) da Unicamp podem colaborar com o projeto, e levá-lo muito mais longe do que eu e meus amigos que me ajudaram somos capazes, por questões de tempo, conhecimento, ideias, etc.
### **Windows** (Utilizando WAMP)
Para configurar e executar o projeto no Linux, consulte o guia completo neste link:
[Passo a Passo para Windows](docs/WINDOWS_CONFIG.md).

P: Posso colaborar?
R: Sim, por favor! Faça fork e envie seu pull request!
### **Linux**
Para configurar e executar o projeto no Linux, consulte o guia completo neste link:
[Passo a Passo para Linux](docs/LINUX_CONFIG.md).

P: Como posso ajudar?
R: Depende:
---

- Se você sabe programar em PHP, fique a vontade para corrigir um problema ou criar uma nova feature. Seu pull request será analisado com carinho!
- Se você é designer, crie um novo layout mais moderno (quem sabe, responsivo) para o GDE, ou melhore o atual, e envie seu pull request.
- Se você não se encaixa em nenhuma das opções anteriores, envie sugestões ou problemas encontrados criando uma [Issue](https://github.com/guaycuru/gde/issues).
## 🗂 Sobre os Dados no Pacote

- Login de exemplo: **`login1`**;
- Todos os usuários possuem a senha **`gde42`**;
- Os dados fornecidos são fictícios, incluindo alunos e usuários;
- Contém dados de catálogos dos anos **2007** e **2016**;
- Inclui amostras de cursos, modalidades, disciplinas e oferecimentos.

## ❓ Perguntas Frequentes

### Este é o GDE "de verdade"?
Sim. A versão 2.5 substituiu a 2.3 em **22/12/2017**.

### Quais as diferenças entre as versões 2.3 e 2.5?
- **Funcionalidades removidas**: "avisos", "fóruns", "grupos" e "oportunidades".
- **Melhorias**:
- Suporte a múltiplos níveis de disciplinas e cursos;
- Correções diversas no backend;
- Uso do ORM Doctrine.

### O chat foi removido?
Sim. O consumo excessivo de recursos levou à remoção do chat. Alternativas modernas serão consideradas no futuro.

### Onde encontro o código dos crawlers / robôs que pegam os dados?
Por requisição da DAC, essa parte do código não será disponibilizada.

### Por que isso foi feito?
Porque eu acredito que a comunidade de alunos (e ex-alunos) da Unicamp podem colaborar com o projeto, e levá-lo muito mais longe do que eu e meus amigos que me ajudaram somos capazes, por questões de tempo, conhecimento, ideias, etc.

## 🤝 Contribuições

Quer colaborar? Faça um **fork** e envie um **pull request**!

### Como posso ajudar?

- **Programador PHP**: Resolva problemas ou crie novas funcionalidades.
- **Designer**: Proponha layouts modernos e responsivos.
- **Outros**: Envie sugestões ou relate problemas criando uma **Issue**.

## Agradecimentos ##
- [Carlos Avelar](https://github.com/carlosamds) por desenvolver uma integração com o Google Calendar.
- [Luciano Zago](https://github.com/lcnzg) por ter corrigido um erro no planejador.
- [Nicolas Caous](https://github.com/NicolasCaous) por algumas correções de bugs e por ter descoberto e reportado (incluindo PoCs) duas vulnerabilidades.
- [Nicolas Caous](https://github.com/NicolasCaous) por algumas correções de bugs e por ter descoberto e reportado (incluindo PoCs) duas vulnerabilidades.
Empty file added docs/LINUX_CONFIG.md
Empty file.
50 changes: 50 additions & 0 deletions docs/WINDOWS_CONFIG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@

# Configuração no Windows

## Baixe e instale o WAMP

1. Faça o download do WAMP Server e inicie o processo de instalação.
2. Durante a instalação, certifique-se de selecionar os pacotes do **Apache**, **PHP** e **MySQL**.
3. Conclua a instalação conforme solicitado pelo instalador.

## Copie os arquivos do projeto para o diretório WWW

1. Após a instalação do WAMP, localize o diretório padrão do servidor:
```plaintext
C:\wamp64\www\
```
2. Crie a estrutura de pastas necessária para o projeto:
```plaintext
C:\wamp64\www\Web\gde
```
3. Copie os arquivos do projeto para a pasta criada acima.

## Configure o banco de dados

1. Acesse o phpMyAdmin pelo endereço:
```plaintext
http://localhost/phpmyadmin
```
2. Crie um banco de dados com o mesmo nome configurado no arquivo:
```plaintext
common/config.inc.php
```
3. Importe o arquivo **gde_pacote.sql** para o banco de dados criado.

## Inicie o servidor WAMP

1. Abra o painel do WAMP Server (ícone na barra de tarefas).
2. Certifique-se de que os serviços do **Apache** e **MySQL** estejam rodando:
- Ícone verde no WAMP indica que todos os serviços estão ativos.
3. Acesse o projeto pelo navegador em:
```plaintext
http://localhost/Web/gde
```

## Teste o sistema

1. Use as credenciais de exemplo abaixo para verificar o funcionamento do sistema:
- **Usuário:** login1
- **Senha:** gde42

Se todos os passos forem seguidos corretamente, o sistema estará pronto para uso! 🎉
Binary file added docs/assets/img/gde-logo.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.