GithubHelp home page GithubHelp logo

lobooooooo14 / seges-plus Goto Github PK

View Code? Open in Web Editor NEW
2.0 1.0 0.0 2.04 MB

[DESCONTINUADO] 🏫 Cliente mobile não oficial do SEGES para estudantes do Espírito Santo.

License: GNU General Public License v3.0

Java 0.27% TypeScript 75.96% HTML 2.01% Shell 2.12% CSS 15.26% SCSS 4.37%
android capacitor client educational-project ionic-framework react typescript webscraping scool student

seges-plus's Introduction

Projeto descontinuado

Recentemente, a Secretaria de Educação anunciou que um novo sistema de gestão escolar será lançado. Por isso, o aplicativo foi descontinuado e arquivado.

SEGES+

SEGES+

O que é o SEGES?

O Sistema Estadual de Gestão Escolar, conhecido como SEGES, é uma plataforma fornecida pela Secretaria de Educação. O serviço é utilizado por professores, pais e estudantes para consultas do boletim eletrônico, chamada escolar, rematrícula, etc. No entanto, devido à sua interface antiga e desatualizada, alguns usuários enfrentam dificuldades e insatisfações ao utilizá-lo. Pensando neste problema, desenvolvi o SEGES+, um aplicativo para Android que permite a consulta do boletim eletrônico de forma mais simples e fácil.

Warning

O SEGES+ não está relacionado ao SEGES e não é desenvolvido pela Secretaria de Educação.

Como funciona?

flowchart LR
    user(["Usuário"]);
    app(["SEGES+"]);
    seges(["SEGES"]);

    user --> app;
    app --> seges;

    app --> user;
    seges --> app;

    style user fill:#479dff,color:#FFF,stroke-width:0px;
    style app fill:#58aea0,color:#704789,stroke-width:0px;
    style seges fill:#f3d76a,color:#704789,stroke-width:0px;
Loading

Resumidamente, o aplicativo se comunica e realiza web scraping1 dos dados do usuário no site do SEGES e com isso disponibiliza uma interface aprimorada para o usuário.

Ploblemas desta abordagem

Warning

Dado que a única forma de obter dados do SEGES atualmente é por meio de web scrapping, o aplicativo pode parar de funcionar a qualquer momento, uma vez que qualquer alteração no SEGES pode causar problemas ao aplicativo: O SEGES+ é totalmente dependente do SEGES.

Limitações

O principal obstáculo para o projeto sem dúvidas é o CORS (Cross-Origin Resource Sharing). Como o SEGES não expõe um cabeçalho permitindo o compartilhamento de recursos com outra origem2, é totalmente inviável utilizar soluções, como proxys, para permitir o desenvolvimento de uma versão web da aplicação.

Sendo assim, a solução é desenvolver um app nativo e utilizar a Capacitor HTTP API, Ela corrige e aplica patches no fetch e no XMLHttpRequest para usarem as bibliotecas nativas do sistema, seria como acessar o website oficial diretamente pelo navegador. Porém esta solução não se aplica a web, apenas dispositivos nativos (iOS/Android).3

Executando

O projeto foi desenvolvido utilizando React, TypeScript, Ionic Framework, Capacitor e Vite. Abaixo estão as ferramentas para desenvolver o aplicativo, os comandos podem variar dependendo do seu sistema operacional:

Requisitos Versão Observação
Node lts/hydrogen Node 18.x
Java 17
Gradle 7.6
Apksigner 31.0.2-1 Suporte para assinatura v2, Android R+
  1. Depois de instalar e configurar as ferramentas, clone o repositório para o seu dispositivo com o comando abaixo:
git clone https://github.com/Lobooooooo14/SEGES-plus.git SEGES+
  1. Entre na pasta do projeto e instale as dependências:
cd SEGES+
npm ci
  1. Crie sua keystore para posteriormente assinar o APK. Deve se parecer com isso:
mkdir -p ./android/keystore/
keytool -genkey -v -keystore ./android/keystore/release.keystore -alias seuAliasAqui -keyalg RSA -keysize 2048 -validity 10000
  1. Crie um arquivo .env na raiz do projeto e configure as variáveis abaixo:
KEYSTOREPASS=
KEYSTOREALIASPASS=
KEYSTOREALIAS=
  1. Caso tudo esteja correto, agora você pode utilizar os scripts do npm para executar as seguintes tarefas:
Comando Ação
npm run dev Inicia o aplicativo em modo desenvolvimento, com hot reloading e Chrome inspect. Certifique-se de usar um emulador ou um dispositivo Android.
npm run build:debug Compila o app e assina o APK com uma assinatura de debug para desenvolvimento. Também é possível utilizar Chrome inspect.
npm run build:release Compila o app e assina o APK para lançamento.
npm run prettier:fix Corrige a formação dos arquivos.
npm run sync Sincroniza (copia + atualiza) as dependências e arquivos para a versão nativa.

Doações

Caso queira apoiar o projeto, você pode doar de duas maneiras: Github Sponsors, com valor mínimo de $ 1,00 dolar ou Pix com valor mínimo de R$ 1,00 reais:

Método Link
Github Sponsors Github Sponsors
Pix Pix

Instalação

Caution

Esteja ciente de que a aplicação pode deixar de funcionar a qualquer momento. Não me responsabilizo por possíveis problemas, banimentos ou restrições causadas pela aplicação.

Você pode baixar o APK mais recente do SEGES+ clicando no botão abaixo:

Download APK

No momento, o SEGES+ está disponível para download através das releases do GitHub.

Footnotes

  1. https://pt.wikipedia.org/wiki/Coleta_de_dados_web

  2. https://developer.mozilla.org/pt-BR/docs/Web/HTTP/CORS

  3. https://ionicframework.com/docs/troubleshooting/cors#1-native-only-apps-iosandroid

seges-plus's People

Contributors

lobooooooo14 avatar

Stargazers

 avatar  avatar

Watchers

 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.