Inspiration
I was inspired while I was working in the Middle East. The societies there are strongly hierarchical and most people are not involved in the governing of the nations. This got me thinking about people all over the world, including the mature democracies that we have. I got to learn a little bit the legislative system of Switzerland and that's when the muse struck.
As we know, technology is a great equalizer. Most people are able to live decent lives because of the magic of tech. Most people have access to digital tech, especially communication equipment like mobile phones, including the poorest and most remote nations. This means a system can be created to enable them to contribute in the legislative process of their nation.
This similarly applies to various other entities, be they organizations, team, clubs etc. If this system can be created to a satisfactory quality, it will find use.
What it does
It basically allows anyone (subject to eligibility) can propose some or all bills. Bills are voted for at a 1 man one vote basis and if it approaches a certain threshold, it is forwarded to parliament a 'committee'.
The committee can then draft the bill formally, make modifications then the bill is voted for by anyone (subject to eligibility) to either proceed or returned back to committee for further editing. This cascades up until final vote to law, or rejection.
How we built it
I decided to use the microservices paradigm, and the demostration system created using the Flask framework. The DBMS used mySQL and code / files hosted on github
Challenges we ran into
First of all, any system that seeks to scales to potentially millions of people, while providing a fairly large number of capabilities, security and ease of use is (not) obviously, easy. Before long I found myself in code jungle with the end further than I was when starting. Writing a service, debugging, testing, debugging on and on takes a toll on your strength. Now imagine this for 10 services. I have had 12 hours of sleep over the past 2-3 days.
Accomplishments that we're proud of
I have been able to write 5 services which pass (most) of their unit tests. It is not easy, and has 'shown me hands', but I am very surprised to have come this far so well.
What we learned
I have learnt a lot. I have gotten better at backend design for a larger system. I have a tighter lock on using systems design to design and implement a micro-services architecture. I have also gotten better, I think, at coming up with unit test scenarios.
What's next for Distributed Legislative System
I need to finish the other 4 microservices that are still unwritten; integrate the system; then deploy for an alpha test.
Afterwards, I will integrate blockchain; include data archiving; optimized security and documentation.
Log in or sign up for Devpost to join the conversation.