The project aims to be an aggregator for election information in Romania. The project will contain historic information for elections in Romania, will contain real time results for each election, as it will parse results published by BEC (Biroul Electoral Central) and it will also contain information about the budgets spent during the electoral campaign.
The partial results published by BEC (Biroul Electoral Central) are often raw results that are not easily interpreted and give no meaningful information to regular users. The aim of the project is to aggregate the raw data and provide timely updates on the progression of voting results in Romanian elections.
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.
You can also list any pending features and planned improvements for the project here.
C# 7
.NET Core 2.2
NuGet
- Amazon S3 Storage
- Amazon DynamoDB
TBD
- .NET Core 2.2 (backend)
- AWS CLI
- NodeJS (frontend)
- Docker (for running localstack or the API on local machine)
cd localstack
.\setup.cmd
- this will use the docker-compose file to pull and run the localstack image
- after that it will add two settings called
electionsConfig
which is the list of elections andintervalInSeconds
which is the background task run interval
cd src\ElectionResults.WebApi
Besides Visual Studio or VS Code, you can use the command line or Docker to start the project- Using the dotnet CLI
dotnet run
- Running the Docker image
docker build --rm -f "src\Dockerfile" -t rezultatevot:latest "src" --build-arg asp_env=Development
docker run --rm -it -p 443:443/tcp -p 80:80/tcp rezultatevot:latest
In appsettings.{environment}.json you'll find the following settings:
- bucketName: "code4-presidential-2019"
- the name of the bucket where CSV files are downloaded
- tableName: "electionresults"
- the name of the DynamoDB Table where the JSON statistics are stored
- specifies how much information should appear in the AWS logs
If you run the project on your local machine, you can also modify the file localstack\config.json
before running localstack\setup.cmd
- PUT request on /api/settings/election-config with a JSON representation of a list of Election objects. This will overwrite the json from AWS Parameter Store.
- Each Election object has:
- a list of candidates where information about them can be provided(candidate picture, name, CSV column id, etc.)
- a list of BEC URLs, each file has the type of results(provisional, partial or final), location(Romania or Diaspora), URL
- An initial configuration is provided in the file
localstack\config.json
cd tests\ElectionResults.Tests
dotnet test
- 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.