Skip to content

Sistema de Votação do Agrupamento de Escolas Francisco de Holanda

License

Notifications You must be signed in to change notification settings

ruippgoncalves/svaefh

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AEFH Logo

Sistema de Votação AEFH

O que é o Sistema de Votação AEFH | Origem | Objetivos | Funcionalidades | Como Utilizar | Tecnologias Utilizadas

O que é o Sistema de Votação AEFH

O Sistema de Votação AEFH é uma plataforma de votação online, desenvolvida pelo Rui Gonçalves no ano létivo de 2020/2021 para a Escola Secundária Francisco de Holanda.

Origem

Esta plataforma surgiu como proposta feita pelos Professores Orientadores do meu Projeto de Aptidão Profissional.

Objetivos

O projeto apresenta os principais objetivos:

  • Disponibilizar à escola uma ferramenta facilitadora de eleições
  • Promover uma participação mais ativa de toda a comunidade escolar num processo de votação
  • Facultar à escola uma análise dos resultados mais rápida e fidedigna

Funcionalidades

As principais funcionalidades:

  • Integração com o Email Institucional
  • Diferentes Métodos de Votação:
    • Escolha Múltipla (Plurality Voting)
    • Escolha Classificada (Instant-Runoff Voting)
    • Método Condorcet
  • Utilização na Comunidade Escolar (Alunos e Professores) com Prevenção de Multiplos Votos e Utilização Externa sem Prevenção de Multiplos Votos
  • Restrição de Eleitores (Interno)
  • QRCode para a Eleição
  • Dados em Tempo Real
  • Aplicações Web, Android e IOS

Como Utilizar

São Necessários:

Intruções:

  1. Copiar server/config/config.example.env para server/config/config.env e proceder à sua edição (GOOGLE_CLIENT_ID_MOBILE vai ser preenchido mais tarde)
  2. Editar client/web/index.html (copie de client/template) e adicione a sua chave OAuth da Google (linha 20)
  3. Copie e edite o ficheiro client/lib/config.dart (client/template/config.dart)
  4. Configure o client/android/key.properties (https://flutter.dev/docs/deployment/android), coloque o key.jks em client/android/app/
  5. Ligue o firebase ao projeto no google cloud platform, adicione o a plataforma android (Comece adicionando o Firebase ao seu aplicativo) e coloque o google-services.json em client/android/app/ no servidor preencha o GOOGLE_CLIENT_ID_ANDROID com o Web client* (auto created by Google Services) (obter da google cloud api)
  6. Opcionalmente siga o passo 1 do iOS
  7. Execute num terminal linux com docker: sudo ./build/buildScripts/build.sh
  8. Envie o ficheiro build/build.zip para produção

* É o Web Client, não o Android Client

Em Adição, para IOS, São Necessários:

  • macOS (testado com 11.2.3) + XCode (testado com 12.4) + CocoaPods (testado com 1.10.1)

Instruções:

  1. Ligue o firebase ao projeto no google cloud platform, adicione o a plataforma ios (Comece adicionando o Firebase ao seu aplicativo) e coloque o GoogleService-Info.plist em client/ios/runner/ no servidor preencha o GOOGLE_CLIENT_ID_IOS com o iOS client (auto created by Google Services) (obter da google cloud api)
  2. Copie e configure o Info.plist da pasta client/template para client/ios/runner
  3. execute no terminal
cd client

mkdir build

mkdir build/symbols

mkdir build/symbols/ios

flutter build ipa --obfuscate --split-debug-info build/symbols/ios --no-sound-null-safety

Tecnologias Utilizadas

As principais tecnologias:

FrontEnd:

  • Flutter

BackEnd:

  • Express.JS
  • Mongoose
  • Webpack

Adicionalmente:

  • MongoDB
  • Docker
  • Mosaico
  • NginX
  • DigitalOcean NGINXConfig Tool

About

Sistema de Votação do Agrupamento de Escolas Francisco de Holanda

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published