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 | Deployment | Feedback | License | About Code4Ro
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.
.Net Core 3.1
Swagger docs for the API are available here.
Please see more info and docs about the MV apps in the wiki.
Client apps:
- Android - https://github.com/code4romania/mon-vot-android-kotlin
- iOS - https://github.com/code4romania/monitorizare-vot-ios
- Web admin for NGOs - https://github.com/code4romania/monitorizare-vot-ong
The Assembly VotingIrregularities.Domain has EF Migrations configured and can generate a database complete with test data.
To do this, follow the steps bellow:
Fill-in appsetings.json
OR add in a new appsettings.target.json
file the connectionstring to the SQL instance where the DB should be created.
Run the following console command from the VotingIrregularities.Domain.Seed
folder:
src\api\VotingIrregularities.Domain.Seed> dotnet run
Important: the migrate action with delete the data from the following tables: Answers
, Questions
, FormSections
, Options
.
-
to test admin features, you will need to add a test NGO and a test NGO admin linked to that NGO
-
to test observer features, you will need to add observer accounts
-
some dummy db data can be found here
-
install .NetCore (refer to the Built With section for the proper version) (Open Source/Free/Multiplatform) from here
-
run the following console command from the
src
folder:src> dotnet restore
-
run the following console command from the
VoteMonitor.Api
folder:src\api\VoteMonitor.Api> dotnet run
-
browse to indicated address: http://localhost:5000/swagger
Use the swagger UI to understand the endpoints and routes; you can also use the UI for token generation (testing out the POST /api/v1/access/token
route)
For the rest of the endpoints you will need to use this token and inject a header (this is not currently possible using the swagger UI - it is probably a configuration effort - any hints are welcome)
The auth header is
Authorization: Bearer {token}
and it needs to be injected into each request.
- Request a new feature on GitHub.
- Vote for popular feature requests.
- File a bug in GitHub Issues.
- Email us with other feedback [email protected]
This project is licensed under the MPL 2.0 License - see the LICENSE file for details
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.