Giter VIP home page Giter VIP logo

grade-dot-engtelecom's Introduction

Grade da Engenharia de Telecomunicações

Esse repositório contém um conjunto de scripts para auxiliar montar um grafo com a grade de disciplinas. Se desejar, veja mais sobre DOT Language aqui. Se desejar, veja mais sobre a graph pattern scanning and processing language (gvpr) aqui.

Ferramentas necessárias

Gerando arquivo .dot a partir dos arquivos .docx

É necessário ter o aplicativo pandoc instalado.

Cada disciplina deve ter um arquivo .docx e estes arquivos estão organizados nos seguintes subdiretórios:

ementas
|-- eixo-amarelo
|-- eixo-azul
|-- eixo-cinza
|-- eixo-laranja
|-- eixo-marrom
|-- eixo-roxo
|-- eixo-verde-claro
`-- eixo-verde-escuro

Nesse repositório tem um diretório ementas com um exemplo de como deve ser o documento para cada disciplina.

É possível baixar o diretório ementas como um arquivo .zip a partir da pasta compartilhada no Google Drive (para quem tem acesso).

Para gerar o arquivo .dot a partir dos arquivos contidos no subdiretório ementas, digite:

bash gera-cadeia-requisitos.sh ementas saida.dot 

Gerando imagens .svg

O shell script gera-svg.sh gera uma imagem .svg e, se as disciplinas já estiveram alocadas dentro das fases, também fará a contabilização da carga horária total dentro de cada fase, além de incluir o número de créditos de cada disciplina no rótulo de cada nó do grafo.

Para executar o shell script gera-svg.sh é necessário informar o arquivo .dot e nome do arquivo .svg que será gerado. Exemplo:

  • O arquivo ppc2015.dot contém o fonte da grade da Engenharia de Telecomunicações do PPC de 2015.

  • Use o shell script gera-svg.sh para gerar uma imagem SVG do grafo.

    bash gera-svg.sh ppc2015.dot pagina-html/grade.svg

Isso vai criar um arquivo grade.svg no subdiretório pagina-html.

Servidor web local para carregar SVG com destaque em JavaScript

Para permitir destacar somente as arestas de um determinado nó (ao clicar sobre o mesmo), é necessário exportar o grafo para .svg e usar um servidor web para ofertar os arquivos contidos no diretório pagina-html. No computador pessoal é possível usar o servidor web que vem junto com o python3.

cd pagina-html
python3 -m http.server

Feito isso, aponte o navegador para a URL: http://localhost:8000/?grafo=grade.

É possível ter mais de uma imagem .svg no diretório pagina-html. Para carregar diferentes .svg, basta informar o nome do arquivo, sem a extensão, para a variável grafo.

Por exemplo, no diretório pagina-html tem dois arquivos .svg: grade.svg e novo.svg. Sendo assim, para carregar o arquivo novo.svg basta informar a seguinte URL: http://localhost:8000/?grafo=novo.

Se não for informado nenhum valor para a variável grafo, então será carregado por padrão o arquivo grade.svg.

Gerando um arquivo PNG por disciplina com suas sucessoras e predecessoras

Para gerar um arquivo png para cada disciplina basta informar o nome do arquivo .dot (gerado pelo script gera-cadeia-requisitos.sh) e no nome do subdiretório onde as imagens PNG deverão ser criadas. Exemplo:

bash gera-sucessores-predecessores.sh saida.dot pngs

Abaixo é apresentado um exemplo da saída gerada para a disciplina Sistemas Distribuídos (STD). Os arcos que representam correquisitos estão com estilo tracejado e com o rótulo correquisito. A disciplina STD está com uma borda preta para indicar que o grafo foi montado a partir dela. Ou seja, para listar as disciplinas sucessoras e predecessoras de STD.

Sistemas Distribuídos

grade-dot-engtelecom's People

Contributors

emersonmello avatar rwnobrega avatar mmoecke avatar gabrielluizep avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.