O Sua Grade UnB é um projeto da matéria Métodos de Desenvolvimento de Software, a qual tem como objetivo auxiliar os alunos da Universidade de Brasília a montarem suas grades horárias de maneira fácil e intuitiva.
Com apenas alguns cliques, o aluno poderá montar sua grade horária de acordo com as matérias que deseja cursar. Além disso, o sistema auxiliará o aluno ao resolver os conflitos de horários entre as matérias escolhidas, retornando as melhores opções de horários de acordo com suas preferências.
O projeto é software livre e está sob a licença MIT.
Nome | GitHub |
---|---|
Arthur Ribeiro e Sousa | @artrsousa1 |
Caio Falcão Habibe Costa | @CaioHabibe |
Caio Felipe Rocha Rodrigues | @caio-felipee |
Gabriel Henrique Castelo Costa | @GabrielCastelo-31 |
Henrique Camelo Quenino | @henriquecq |
Mateus Vieira Rocha da Silva | @mateusvrs |
Você pode clonar o repositório do projeto com o seguinte comando:
git clone https://github.com/unb-mds/2023-2-SuaGradeUnB.git
Para rodar o projeto, você precisa instalar as dependências globais, que são:
- GNU Make 4.3 (ou superior)
- Python v3.11.6 e Pip v22.0.2 (ou superior)
- Node v20.9.0 e NPM v10.1.0 (ou superior)
- Docker Engine v24.0.6 e Docker Compose v2.21.0 (ou superior)
Para configurar o ambiente, você pode rodar o seguinte script:
make config
Para instalar as dependências do projeto, você pode rodar os seguintes comando:
# Crie um ambiente virtual Python
python3 -m venv api/env
# Ative o ambiente virtual
source api/env/bin/activate
# Instale os pacotes do Python e Node
make install
Para executar o projeto, você pode rodar o seguinte comando:
docker compose up
# Se você quiser rodar em segundo plano
docker compose up -d
# Se alterações foram feitas no Dockerfile ou no docker-compose.yml
docker compose up --build
# Se for necessário deletar os volumes
docker compose down -v
Para que o login com o Google funcione, é necessário trocar o your_client_id
no arquivo web/.env.local
pelo Client ID do projeto no Google Cloud.
- Crie um projeto no Google Cloud.
- Vá para a página de Credenciais do projeto.
- Clique em Criar credenciais e selecione ID do cliente OAuth.
- Selecione Aplicativo da Web.
- Adicione
http://localhost:3000
como Origens JavaScript autorizadas e URIs de redirecionamento autorizadas. - Copie o Client ID e cole no arquivo
web/.env.local
no lugar deyour_client_id
.
Após isto:
- Vá para a página de OAuth Consent Screen.
- Selecione Usuários externos e clique em Criar.
- Preencha os campos obrigatórios e clique em Salvar e continuar.
- Na seção Usuários de Teste adicione o seu e-mail e clique em Adicionar.
- Clique em Salvar e continuar.
Adicionando serviços:
- Entre na aba APIs e Serviços.
- Clique em Ativar APIs e Serviços.
- Ative os seguintes serviços:
- IAM Service Account Credentials API
- Identity and Access Management (IAM) API
A obtenção dos dados das disciplinas é feita através de um web scraping no site da Universidade de Brasília e, por isso, é necessário atualizar o banco de dados com certa frequência. As requisições ainda são feitas de forma manual. Para realizar a atualização, rode o seguinte comando:
# Atualiza para o período atual e o próximo
make updatedb-all
# Comando equivalente
docker exec django-api python3 ./manage.py updatedb -a
Serviço | URL |
---|---|
Frontend | http://localhost:3000 |
Backend | http://localhost:8000 |
Migration é um recurso do Django que permite que você altere o modelo de dados do seu projeto. Portanto, sempre que você alterar o modelo de dados, você deve criar uma nova migration.
Para criar possíveis novas migrations, você pode rodar o seguinte comando:
# Crie as migrations
make makemigrations
# Execute as migrations
make migrate
A documentação do projeto pode ser encontrada clicando aqui.
- Para acessar o Story Map e o Activity Flow, clique aqui.
- Para acessar a arquitetura do projeto, clique aqui.
- Para acessar o protótipo do projeto, clique aqui.