Coder Social home page Coder Social logo

avikalpg / indianvotingassistant Goto Github PK

View Code? Open in Web Editor NEW
8.0 8.0 1.0 1.49 MB

A personalised helper for voters in Indian Elections for only viewing information relevant to them for casting a vote.

License: Apache License 2.0

Shell 0.53% Python 27.06% Jupyter Notebook 72.41%

indianvotingassistant's People

Contributors

avikalpg avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

jaenil

indianvotingassistant's Issues

Get state based on location information

Is your feature request related to a problem? Please describe.
Not really. But currently (according to issue #4 ), the starting point for making our user interfaces location-aware is too steep. And working on this issue might make the development on this end simpler.

Describe the solution you'd like
Instead of directly getting into the constituency level, we can start with just looking at state and union elections. For this, we only need to derive the state or union territory corresponding to any location.
So we should create an API endpoint to get the name of the state or union territory based on latitude and longitude information.

Describe alternatives you've considered
Alternative solutions:

  • Currently, issue #4 is about getting the constituency information based on location. It is harder to accomplish and there doesn't seem to be any low-cost or easy way to achieve that.
  • We can rely on the frontend to directly use the external API that we will be using in our backend, but that would just lead to more confusion and increased development time on the frontend. Not to mention, repetition of code changes if the external API gets deprecated and we need to switch to a different service.

Additional context
This step also makes the progress towards the MVP of this FOSS product easier, by focussing on state and union elections for the time being and postponing the development of features for serving local elections.

Get constituency information based on location

This functionality will automatically identify the constituency (preferably along with city, district and state information) of a voter based on his/her latitude and longitude information.

Get Election Manifesto for a given candidate in a given election

Assuming that each candidate submits a manifesto for each election that he or she contests, we need to be able to return the manifesto over an API call.
In later versions of this project, we would also like to process the information in the manifesto to extract policy proposals relevant specific topics that different voter cohorts care about.

Get contesting candidates information based on election

For any given election (with enough specifications, to make it unique), the API should be able to return the names and details of all the candidates who are contesting in that election.
This must contain an identifier for each candidate so that further information can be extracted regarding him/her.

Get upcoming election information based on constituency

We will be able to extract "Assembly Constituency" and "Part No. and Name" from the voter id of the user. We want to be able to get information about the next elections that this voter will be eligible to vote for.

Just getting the name of the election and date of voting should be good enough.

Get history (CV) of a given candidate

This information is independent of the election. For any given candidate (probably based on an id), we should be able to return the equivalent of a resume, CV or LinkedIn profile of the individual.

This is important because we are modelling the election similar to job applications. All the candidates are applying for a particular vacancy, and the people are selecting the right candidate to do that job.

Dockerize the API

To prepare the API for scale, we will need to dockerize the application for deployment.
(We must also discuss at this point what is the right place to host this API, AWS Lambda, GCP functions or Heroku.

Add a database (without cost)

Without a database, we cannot support any personalization for the voters looking for assistance. In the V1, we do not need personalization, but it is a problem which needs a solution before we start development of V2.

Create multiple end-points on the API

We need multiple end-points on the API to be able to provide atomic functionalities. For example, here are the end-points of the V1 (non-personalized details of local candidates):

  1. Get constituency details based on location data (latitude and longitude)
  2. Get upcoming elections in a given constituency
  3. Get the list of candidates competing in a given election
  4. Get history (CV) of a given candidate
  5. Get election manifesto for a given candidate in a given election

According to the current architecture, this will be done as part of the same AWS Lambda function for easy deployment and management (free of cost for low traffic).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.