Skip to content

Platform to help NGOs and Associations within the Civic Society nominate candidates and vote in several rounds of elections

License

Notifications You must be signed in to change notification settings

code4romania/votong

VotONG

GitHub contributors GitHub last commit License: MPL 2.0

The VotONG platform is a redeployment of a previous Code for Romania application, RoHelp. The current code base is modified in order to serve a different purpose, namely allowing the representatives of NGOs and Associations within the Civic Society to nominate candidates and vote for them in several rounds of elections.

The vote implemented here is non-secret and is visible to the technical administrators of the platform. This codebase should not be used for any purpose that requires secret vote, not any purpose that requires a zero trust system.

Contributing | Built with | Repos and projects | Deployment | 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. If you want to make any change to this repository, please make a fork first.

Help us out by testing this project in the staging environment. If you see something that doesn't quite work the way you expect it to, open an Issue. Make sure to describe what you expect to happen and what is actually happening in detail.

If you would like to suggest new functionality, open an Issue and mark it as a [Feature request]. Please be specific about why you think this functionality will be of use. If you can, please include some visual description of what you would like the UI to look like, if you are suggesting new UI elements.

Built With

  • Django
  • Bulma

Programming languages

  • Python (3.6+)

Platforms

  • Web

Frontend framework

None. Includes Bulma for stilying.

Package managers

  • Pip

Database technology & provider

  • PostgreSQL

Pre-requisites

In order to run the project locally, you need to have Docker and the docker compose plugin installed.

Initial set-up

Initialize the environment variables:

cp .env.example .env

Check the .env file and see if there are any environment variables that you might need to provide a value for or change. This file is used by docker compose to pass the environment variables to the container it creates.

Starting the project

Get the project up and running:

docker compose build
docker compose up

You should be able to access the local environment site and admin at the following URLs:

Some dummy data is loaded automatically when starting the containers for the first time.

You can access the admin with email admin@example.test and password secret (all automatically created users in the dev environment have the password set to secret).

If you have problems starting the project, first check out the FAQ and if that doesn't work, ask someone from the project's channel. Maybe the issue you just had is worth adding to the FAQ, wouldn't it?

To work on running containers that were started using docker compose up, open another terminal and:

cd path/to/repo
docker compose exec web bash

IMPORTANT: Remember to run make lint before commiting your code in order to format the code properly. Thank you!

Deployment

Guide users through getting your code up and running on their own system. In this section you can talk about:

  1. Installation process
  2. Software dependencies
  3. Latest releases
  4. API references

Describe and show how to build your code and run the tests.

Production

A few steps need to be done after deploying to production:

# apply any new database migrations
$ ./manage.py migrate
# this will add any missing groups, flags (disabled by default) or email templates
$ ./manage.py init
# process static files
$ ./manage.py collectstatic --noinput

NOTE After the first deployment go into admin and edit the site data in /admin/sites/site/ with the correct name and domain. This is used in the site and in email templates.

Feedback

  • Request a new feature on GitHub.
  • Vote for popular feature requests.
  • File a bug in GitHub Issues.
  • Email us with other feedback contact@code4.ro

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 contact@code4.ro.

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.

About

Platform to help NGOs and Associations within the Civic Society nominate candidates and vote in several rounds of elections

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Sponsor this project

Packages

No packages published