All Projects → code4romania → monitorizare-vot-ios

code4romania / monitorizare-vot-ios

Licence: MPL-2.0 license
iOS election monitoring app - a mobile app through which commissioned observers can easily report back to their respective NGOs throughout the election day

Programming Languages

swift
15916 projects
shell
77523 projects

Projects that are alternatives of or similar to monitorizare-vot-ios

asset-declarations
Crowd sourcing implementation of Moonsheep platform for Romanian asset declarations.
Stars: ✭ 13 (-23.53%)
Mutual labels:  civic-tech, civic-hacking, code4ro
yournextrepresentative
A website for crowd-sourcing structured election candidate data
Stars: ✭ 56 (+229.41%)
Mutual labels:  civic-tech, elections
votacidade-app
Calculadora de afinidade para o Vota Cidade 2020
Stars: ✭ 12 (-29.41%)
Mutual labels:  civic-tech, elections
Captain Fact Frontend
🔎 CaptainFact - Frontend. The one you see on https://captainfact.io
Stars: ✭ 74 (+335.29%)
Mutual labels:  civic-tech
Vets Api
API powering VA.gov
Stars: ✭ 95 (+458.82%)
Mutual labels:  civic-tech
Everypolitician Data
data for national legislatures worldwide
Stars: ✭ 174 (+923.53%)
Mutual labels:  civic-tech
CityScoreToolkit
Open-source version of Boston's CityScore performance dashboard
Stars: ✭ 42 (+147.06%)
Mutual labels:  civic-tech
Pldp
Public Life Data Protocol
Stars: ✭ 56 (+229.41%)
Mutual labels:  civic-tech
publiccode.yml
A metadata description standard for public software and policy repositories
Stars: ✭ 18 (+5.88%)
Mutual labels:  civic-tech
Awesome Italian Public Datasets
A selection of interesting Open dataset from the Italian Public Administration and Civic Data use cases
Stars: ✭ 132 (+676.47%)
Mutual labels:  civic-tech
Studentinsights
We work within school communities to make open, secure, student-centered data systems. Say [email protected]!
Stars: ✭ 121 (+611.76%)
Mutual labels:  civic-tech
Od
Česká otevřená data
Stars: ✭ 99 (+482.35%)
Mutual labels:  civic-tech
Design System
Open source design and front-end development resources for creating Section 508 compliant, responsive, and consistent websites.
Stars: ✭ 192 (+1029.41%)
Mutual labels:  civic-tech
Covid19italia
Condividiamo informazioni e segnalazioni sul COVID19
Stars: ✭ 78 (+358.82%)
Mutual labels:  civic-tech
analises
Análises dos dados relacionados a Feira de Santana 📊
Stars: ✭ 31 (+82.35%)
Mutual labels:  civic-tech
Nosdeputes.fr
Repository of NosDéputés.fr : the french parliamentary monitoring website
Stars: ✭ 69 (+305.88%)
Mutual labels:  civic-tech
awesome-democracy-data
A curated list of awesome data sources related to elections, electoral reforms, and democratic political systems.
Stars: ✭ 59 (+247.06%)
Mutual labels:  elections
Terremoto Cdmx
Respuesta rápida ante el terremoto de la CDMX
Stars: ✭ 119 (+600%)
Mutual labels:  civic-tech
Maria Quiteria
Backend para coleta e disponibilização dos dados 📜
Stars: ✭ 115 (+576.47%)
Mutual labels:  civic-tech
Theyworkforyou
Keeping tabs on the UK's parliaments and assemblies
Stars: ✭ 173 (+917.65%)
Mutual labels:  civic-tech

Monitorizare Vot - iOS app Build status

GitHub contributors GitHub last commit License: MPL 2.0

See the project live

Monitorizare Vot is a mobile app for monitoring elections by authorized observers. They can use the app in order to offer a real-time snapshot on what is going on at polling stations and they can report on any noticeable irregularities.

The NGO-s with authorized observers for monitoring elections have real time access to the data the observers are transmitting therefore they can report on how voting is evolving and they can quickly signal to the authorities where issues need to be solved.

Moreover, where it is allowed, observers can also photograph and film specific situations and send the images to the NGO they belong to.

The app also has a web version, available for every citizen who wants to report on election irregularities. Monitorizare Vot was launched in 2016 and it has been used for the Romanian parliamentary elections so far, but it is available for further use, regardless of the type of elections or voting process.

Contributing | Built with | Repos and projects | Feedback | License | About Code4Ro

Contributing

This project is built by amazing volunteers and you can be one of them! Here's a list of ways in which you can contribute to this project.

IMPORTANT: Please follow the Code4Romania WORKFLOW

Important, before you start

Firebase

This project uses Firebase for event and usage tracking and Crashlytics for crash reports. So before you start work on it, you'll need to go to your Firebase console and create an app for this project, then download its GoogleService-Info.plist file and copy it to the Config folder.

CocoaPods

This project uses CocoaPods for its dependency management, so make sure you install it if you didn't already, then run a pod install before you build the project.

Built With

  • Swift 5
  • Core Data
  • Firebase (Remote Config, Analytics, Crashlytics)
  • Alamofire
  • Reachability

Swagger docs for the API are available here.

Architecture

  • The app is localized, meaning it's easier for any interested party to fork the project and use it in other countries, simply localizing the messages
  • The UI relies on the MvvM pattern
  • The data is stored in the local Core Data instance and is uploaded to the server using the API described above
  • In case of a faulty internet connection, the data is marked as unsynced (using the synced flag on interesting entities and we're automatically retrying when connection is re-established and when the user opening the app; there's also a manual sync function in the forms screen)
  • We rely on Firebase's RemoteConfig for remote settings
  • Most important events are logged using Firebase's Fabric events
  • We monitor crashes using Firebase's Crashlytics
  • The API client uses Codable models which are then transformed into Core Data models to be persisted locally

Localization & Internationalization

The Localization files can be found in the MonitorizareVot/Localizations folder. If you want to add a new language, simply add it in Xcode, then copy the Localizable.strings and InfoPlist.strings files from the Base/en lproj folders and copy them in the new language's folder.

You should only update the strings on the right side of the = (equals sign). Make sure they're enclosed in double quotes (") and that every line ends with a semicolon ;.

In order to make the new language available (and maybe restrict other ones), make sure you edit the ALLOWED_LANGUAGES value in Build Settings (it's a comma separate list of language codes.

Repos and projects

alt text

Other related projects:

Feedback

  • Request a new feature on GitHub.
  • Vote for popular feature requests.
  • File a bug in GitHub Issues.
  • Email us with other feedback [email protected]

License

This project is licensed under the MPL 2.0 License - see the LICENSE file for details

About Code4Ro

Started in 2016, Code for Romania is a civic tech NGO, official member of the Code for All network. We have a community of over 500 volunteers (developers, ux/ui, communications, data scientists, graphic designers, devops, it security and more) who work pro-bono for developing digital solutions to solve social problems. #techforsocialgood. If you want to learn more details about our projects visit our site or if you want to talk to one of our staff members, please e-mail us at [email protected].

Last, but not least, we rely on donations to ensure the infrastructure, logistics and management of our community that is widely spread across 11 timezones, coding for social change to make Romania and the world a better place. If you want to support us, you can do it here.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].