Skip to content

marcosroriz/sete

Repository files navigation

SETE

SETE Logo

Build status

O Sistema Eletrônico de Gestão do Transporte Escolar (SETE) é um software de e-governança desenvolvido pelo CECATE UFG voltado a auxiliar na gestão do transporte escolar dos municípios brasileiros considerados suas singularidades. O sistema foi projeto com intuito de não depender de nenhum software proprietário, desta forma é possível utilizá-lo sem ter de licenciar programas dependentes.

O SETE possui versões para web, desktop e móvel (em andamento). A versão desktop possibilita que o mesmo seja utilizado para operar em municípios que possuem acesso restrito à Internet sendo resiliente o suficiente para continuar operando mesmo na ausência de acesso à Internet. A versão web e a versão desktop são aproximadamente idênticas. A diferença é que a versão web não inclui as ferramentas de sugestões de rotas.

Baixando o Sete

Para baixar o software, basta clicar na versão abaixo do seu sistema operacional.

baixar sete para windows      baixar sete para mac      baixar sete para linux

Construindo (building) o SETE

O SETE é construído em cima do framework Electron, um arcabouço para codificação de aplicações desktop modernas baseado no ecosistema Node.js.

O SETE utiliza bibliotecas nativas, a saber o SQLite, para possibilitar o uso e armazenamento de informações de forma offline.

Considerando estes fatores, para construir o SETE assume-se as seguintes dependências básicas:

  • Node.js v12 LTS (e.g., Node.js v12.18.3)
  • Yarn v1.22. (utilizado pelo electron para empacotar os binários)
  • Python 2.7 (muitos módulos nativos ainda usam o Python 2)
  • fakeroot, dpkg e rpm para compilar pacotes para GNU/Linux
  • windows-build-tools (para compilação dos módulos no Windows)
  • Wix Toolset (para gerar binários .msi e .exe para o Windows)

Para compilar o código execute os seguintes passos.

1: Instalação das dependências básicas

Instale o NodeJS v12. Você pode utilizar os binários disponbilizados no site nodejs.org ou utilizar uma ferramenta de versionamento para instalação (e.g., Node Version Manager - NVM).

Semelhantemente, instale o gerenciador de pacotes Yarn v1.22. Você pode utilizar os binários disponiblizados no site https://yarnpkg.com/. O yarn é utilizado pelo electron-forge para gerar os binários.

Caso queira compilar para GNU/Linux, instale os pacotes fakeroot, dpkg e rpm. Por exemplo, no Ubuntu 18.04, você deve executar o seguinte comando:

sudo apt-get install fakeroot dpkg rpm

Caso queira compilar para o Windows, instale o Wix Toolset e coloque o diretório bin do mesmo na variável PATH. Por exemplo, adicionando C:\Program Files (x86)\WiX Toolset v3.11\bin a variável de ambiente PATH.

No caso da plataforma Windows ainda é necessário instalar o pacote global windows-build-tools para compilação dos módulos nativos. Como administrador instale este pacote executando o seguinte comando:

npm install --global windows-build-tools

Por fim, o Windows ainda requer que o npm especifique a versão do compilador do Visual Studio, no caso 2017, e o caminho do binário do Python (instalado pelo windows-build-tools). Por exemplo, os comando abaixos especificam a versão 2017 e um caminho do Python (modifique para ser condizente com sua máquina).

npm config set msvs_version "2017"
npm config set python "C:\\Python27-x64\\pythonw.exe"

2: Baixe o código fonte

git clone https://github.com/marcosroriz/sete/

Depois instale as dependência:

npm install

Por fim, recompile a dependência nativa.

npm install sqlite3 --build-from-source --runtime=electron --target=8.5.2 --dist-url=https://electronjs.org/headers

3: Executando o projeto

Para executar o projeto basta utilizar o seguinte comando:

npm run start

4: Geração de Binários

A geração de binários é feita utilizando o utilitário electron-forge. Especificamente, para gerar os binários, que ficarão na pasta out, execute o seguinte comando:

npm run make

Licença de Uso

O sistema é distribuído gratuitamente sob a licença de software livre MIT que possibilita o compartilhamento e modificação do código do mesmo por terceiros, por exemplo, por agências públicas, empresas e equipes tecnológicas dos municípios.