Gerador de cronograma do Uoft
Descrição
O gerador de cronograma da Uoft pretende criar o melhor cronograma da universidade para qualquer estudante da Uoft. Equipado com o algoritmo genético mais preciso, ele pode criar os melhores horários com base nas preferências do usuário, como definir um tempo máximo para a classe mais recente ou a menor distância a pé entre as classes.
O projeto do gerador de horários do Uoft é um projeto completo de desenvolvimento da web de pilha. É composto por vários componentes: o scrapper da web, a infraestrutura do banco de dados SQL, os modelos de dados, a biblioteca de horários de cronograma, o analisador de algoritmo genético, a API da Web C# e um aplicativo angular da Web JS front -end.
Índice
- Passo a passo
- Instalação
- Uso
- Créditos
- Licença
Passo a passo deste projeto
Este projeto consiste em vários componentes, cada um responsável por executar uma determinada tarefa para obter os melhores horários. A imagem abaixo ilustra a arquitetura do sistema do projeto.
Os usuários usarão o aplicativo da Web front-end para gerar seus horários. Na página inicial, eles terão que especificar os cursos que farão.
A digitação das três primeiras letras do código do curso na barra de pesquisa revelará os cursos relevantes e disponíveis.
Depois de selecionar os cursos, clique no botão "Gerar horários". Ele ligará para o servidor para gerar os horários e navegará para a página Timetables. Os horários gerados serão exibidos em ícones como a imagem abaixo.
Além disso, os usuários podem especificar restrições e preferências para adaptar seus horários às suas necessidades. Isso é feito clicando no botão Preferências ou restrições na parte superior da página. O painel Preferências/Restrições será exibido, revelando as opções que os usuários têm. A aplicação de suas novas restrições/preferências regenerará seus horários.
Os usuários podem visualizar, imprimir e marcar seus horários favoritos clicando em um dos cronogramas gerados.
Instalação
Programas e ferramentas necessários:
- MS SQL Server em uma máquina (Opcional: SQL Server Management Studio)
- Visual Studio
Configure o banco de dados
- Instale o MS SQL Server em uma máquina
- Configure um novo banco de dados para armazenar os dados do Uoft
- Abra as propriedades do projeto de banco de dados do Uoft no Visual Studio, edite a string de conexão de modo que ele vincule ao seu banco de dados recém -criado
- Selecione a configuração Criar nova banco de dados nas configurações de compilação das Propriedades do Projeto de Banco de Dados Uoft (para que crie a estrutura do banco de dados relacional no seu novo banco de dados).
- Execute o projeto de banco de dados do Uoft , configurando -o como um projeto de inicialização e pressionando F5.
Configure o Scrapper da Web e obtenha os dados mais recentes do Uoft:
- Certifique -se de que o Project Web Scrapper tenha os pacotes Nuget mais recentes:
- HTML Agility Pack
- Selênio WebDriver
- Suporte de selênio
- Certifique -se de que o driver Chrome (Chromedriver.exe) seja copiado para o diretório de saída, sob a pasta: Selenium/Web Drivers
- Edite a sequência de conexão do arquivo uoft.dbml para que quaisquer atualizações/exclusões no banco de dados sejam feitas no seu banco de dados.
- Execute-o selecionando o Project Web Scrapper como o projeto de inicialização e execute-o. Nota: leva um tempo para raspar os dados da web.
Configurar o projeto de modelos de dados
- Altere a string de conexão no arquivo uoft.dbml para o seu banco de dados.
- Crie o projeto definindo-o como um projeto de inicialização e pressionando F5.
Executando a API da Web e o aplicativo JS Angular na máquina local
- Abra o Solutions Explorer no Visual Studio.
- Clique com o botão direito do mouse na solução e selecione Propriedades .
- Configure o projeto de inicialização para que ele execute a API da Web e o projeto da página da web .
- Salve as alterações.
- Finalmente, execute os projetos pressionando F5. Duas páginas da web devem aparecer: a página da web da API da Web e a página da Web para o aplicativo front-end.
Uso
Observe que este projeto é usado para fins educacionais e não se destina a ser usado comercialmente. Não somos responsáveis por quaisquer danos/alterações feitas por este projeto.
Créditos
Emilio Kartono, que fez o projeto inteiro.
Licença
Este projeto está protegido sob a licença GNU. Consulte o Licence.txt para obter mais informações.