<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Semion Rozov</title>
    <description>The latest articles on DEV Community by Semion Rozov (@srozov).</description>
    <link>https://dev.to/srozov</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F391844%2F3b9c6fd9-1626-4007-acde-226943c701f6.jpeg</url>
      <title>DEV Community: Semion Rozov</title>
      <link>https://dev.to/srozov</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/srozov"/>
    <language>en</language>
    <item>
      <title>How to deliver your App to the masses (without becoming hostage to your cloud provider)</title>
      <dc:creator>Semion Rozov</dc:creator>
      <pubDate>Sat, 30 May 2020 16:04:44 +0000</pubDate>
      <link>https://dev.to/srozov/how-to-ship-your-startup-idea-to-to-the-cloud-aws-gcp-419k</link>
      <guid>https://dev.to/srozov/how-to-ship-your-startup-idea-to-to-the-cloud-aws-gcp-419k</guid>
      <description>&lt;p&gt;In this post, I will share my experience of making use of two different cloud platforms for the deployment of the front and back end applications our startup has developed in the past few months, which I will most definitely introduce in my next posts.&lt;/p&gt;

&lt;p&gt;But today I would like to discuss the main decisions we had to make when architecting the two core parts of our App:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the &lt;strong&gt;client&lt;/strong&gt; - the interface between your service and your customers&lt;/li&gt;
&lt;li&gt;the &lt;strong&gt;backend&lt;/strong&gt; - whose resources are consumed by the client. The core of your service.&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;You might be going through a similar process, so hopefully this post will give you some leads and help you picture the options you have.&lt;/em&gt;&lt;/p&gt;





&lt;blockquote class="ltag__twitter-tweet"&gt;
      &lt;div class="ltag__twitter-tweet__media ltag__twitter-tweet__media__video-wrapper"&gt;
        &lt;div class="ltag__twitter-tweet__media--video-preview"&gt;
          &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--L4AG1D9x--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/ext_tw_video_thumb/1266342293050712065/pu/img/FL2BkHuF23B0Ip5H.jpg" alt="unknown tweet media content"&gt;
          &lt;img src="/assets/play-butt.svg" class="ltag__twitter-tweet__play-butt" alt="Play butt"&gt;
        &lt;/div&gt;
        &lt;div class="ltag__twitter-tweet__video"&gt;
          
            
          
        &lt;/div&gt;
      &lt;/div&gt;

  &lt;div class="ltag__twitter-tweet__main"&gt;
    &lt;div class="ltag__twitter-tweet__header"&gt;
      &lt;img class="ltag__twitter-tweet__profile-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--nZ3ChYxv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/profile_images/378800000558552970/928e58536ec646a9fdf4dcd66a96f780_normal.png" alt="The Crazy Programmer profile image"&gt;
      &lt;div class="ltag__twitter-tweet__full-name"&gt;
        The Crazy Programmer
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__username"&gt;
        @thecrazyprogrmr
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__twitter-logo"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--52oNvK_0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/twitter-ff4bdab814039c4cb172a35ea369e0ea9c6a4b59b631a293896ae195fa26a99d.svg" alt="twitter logo"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__body"&gt;
      Coding in 2000 vs 2020....&lt;br&gt;&lt;br&gt;credit: &lt;a href="https://twitter.com/chrisoncode"&gt;@chrisoncode&lt;/a&gt; &lt;br&gt;&lt;br&gt;&lt;a href="https://twitter.com/hashtag/Webdesign"&gt;#Webdesign&lt;/a&gt; &lt;a href="https://twitter.com/hashtag/webdeveloper"&gt;#webdeveloper&lt;/a&gt; &lt;a href="https://twitter.com/hashtag/HTML"&gt;#HTML&lt;/a&gt; &lt;a href="https://twitter.com/hashtag/javascript"&gt;#javascript&lt;/a&gt; 
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__date"&gt;
      12:16 PM - 29 May 2020
    &lt;/div&gt;


    &lt;div class="ltag__twitter-tweet__actions"&gt;
      &lt;a href="https://twitter.com/intent/tweet?in_reply_to=1266342584621940737" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="/assets/twitter-reply-action.svg" alt="Twitter reply action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/retweet?tweet_id=1266342584621940737" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="/assets/twitter-retweet-action.svg" alt="Twitter retweet action"&gt;
      &lt;/a&gt;
      43
      &lt;a href="https://twitter.com/intent/like?tweet_id=1266342584621940737" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="/assets/twitter-like-action.svg" alt="Twitter like action"&gt;
      &lt;/a&gt;
      98
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/blockquote&gt;


&lt;h2&gt;
  
  
  Cloud Provider's &lt;a href="https://aws.amazon.com/careers/culture/"&gt;customer obsession&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;In the past years, the big cloud service providers such as AWS and Google came up with their own solutions to facilitate development and deployment of applications. &lt;strong&gt;There's literally a service for anything available now&lt;/strong&gt;. Here's a few of many:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;AWS Amplify&lt;/strong&gt; - AWS-tailored library to develop your applications. Proposes solutions for authentication, messaging, analytics, AR/VR, ML and many more&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Google Firebase&lt;/strong&gt; - Google's equivalent to Amplify&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AWS Elastic Beanstalk&lt;/strong&gt; - a service for deploying and scaling web applications and services.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Google App Engine&lt;/strong&gt; - equivalent&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AWS Lambda&lt;/strong&gt; - allows to run serverless code, for ex. an API without servers&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Google Cloud Functions&lt;/strong&gt; - equivalent&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AWS DynamoDB&lt;/strong&gt; - frees you from running your own DB server&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Google Cloud Bigtable&lt;/strong&gt; - equivalent&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/vvWJJC1OGASzAzbzW1/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/vvWJJC1OGASzAzbzW1/giphy.gif" alt="they're obsessed with me"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Given the vast availability of "tailored" cloud services, it might seem surprising that they are yet not that popular among devs. There's only a hand full of startups which decided to go full serverless with AWS Lambda, relying entirely on the execution of Lambda functions. And &lt;em&gt;why&lt;/em&gt; would someone outsource essential services like chat, authentication or DBs to a third party if they're feasible to implement on your own?&lt;br&gt;
It is understandable that cloud providers offer those deeply integrated services mainly because they want to bind their customers into their cloud eco system on a long-term basis by promoting these services with reduced price tag. Unfortunately there is &lt;strong&gt;no net reduction in complexity for developers&lt;/strong&gt; working at the application level.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;It's simply swapping one set of hardware based computing primitives for an on-demand, cheaper (in terms of TCO), unfamiliar, proprietary set of software-defined computing primitives.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It is naive to think that cloud vendors fail to understand that startups in first place value flexibility and independence. They want to be able to run their Apps regardless of the infrastructure, environment and scale. And it's no secret what vendors are focused on: &lt;a href="https://aws.amazon.com/careers/culture/"&gt;customer obsession&lt;/a&gt; is in fact a well thought through business strategy. And I am not convinced that its primary target are startups.&lt;/p&gt;

&lt;h2&gt;
  
  
  Dilemma of choice
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/ouE6OPO1MADM4/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/ouE6OPO1MADM4/giphy.gif" alt="choices"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Choice itself is a challenge&lt;/strong&gt;. Making any kind of tradeoffs is difficult. Developers hate that and they most certainly they don't want to waste time figuring out which service is best suited for a particular feature of their application, which of the major cloud providers offers the best/most competitive solution and which is more developer friendly. Furthermore, figuring out the interaction between different services is an additional pain. While doing my research on this topic, I came across &lt;a href="https://www.cloudpegboard.com/cloudpegboard.html"&gt;Cloudpegboard&lt;/a&gt;. Without making any advertisement, this is just an example of how the complexity of cloud services can be used as an edge to make business from.&lt;/p&gt;




&lt;p&gt;A good &lt;a href="https://kinsta.com/blog/google-cloud-vs-aws/"&gt;AWS-GCP comparison&lt;/a&gt; I found recently.&lt;/p&gt;




&lt;p&gt;AWS (or GCS) is just &lt;strong&gt;hard to use&lt;/strong&gt;, and it's not your fault. Finding your way around all the services and figuring out how they interact with each other is a time consuming process. When I first started with AWS they had less than 100 services, now it's &lt;a href="https://medium.com/cloudpegboard/how-many-aws-services-are-there-51dda44fa946"&gt;283&lt;/a&gt;!&lt;br&gt;
Even &lt;strong&gt;company employees only know a fraction of those&lt;/strong&gt;, and I'm always surprised how HRs expect one to have "expertise"/"experience" with AWS (read GCS) without actually specifying any of the services, whose numbers are growing &lt;del&gt;constantly&lt;/del&gt; exponentially.&lt;/p&gt;

&lt;p&gt;Fortunately, AWS are aware of this and actively help their clients to gain practical knowledge for using their product: They partner with local digital skills training companies which help them organise seminars and summer schools around the world and introduce AWS on a practical basis. I've been to some AWS events in my city and can highly recommend! Especially if you're a beginner/student! It's a great chance to learn and network at the same time. Not only is it an easy way to get promotional credits, but it can also be an opportunity to get a certificate and formally prove your knowledge. That's how I got my first AWS Summer School certificate a few years ago for completing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Architecting on AWS (3 Day training)&lt;/li&gt;
&lt;li&gt;Hands-on cloud computing workshop: CI/CD, BigData, AI/ML, IoT (2 Day training)&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;It is so much easier to learn when you have an expert guiding you through the process. I would have probably never touched Lambda, Cognito or CodeCommit/CodeDeploy on my own, without need.&lt;/p&gt;




&lt;h2&gt;
  
  
  Setting requirements
&lt;/h2&gt;

&lt;p&gt;Sometimes this helps eliminating the dilemma of choice. If you have clear requirements from the start in terms of architecture and cost, the choice may be obvious, like in our case for example:&lt;/p&gt;

&lt;h4&gt;
  
  
  Architecture constraints:
&lt;/h4&gt;

&lt;p&gt;During the architecting phase of our application, we have set the following constraints:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Stay as platform agnostic as possible
&lt;/li&gt;
&lt;li&gt;Keep full control over the API and DB&lt;/li&gt;
&lt;li&gt;Use the cloud for its original purpose - deployment and scaling&lt;/li&gt;
&lt;li&gt;Most important: keep it lazy and simple&lt;/li&gt;
&lt;/ol&gt;

&lt;h4&gt;
  
  
  Resulting design choices:
&lt;/h4&gt;

&lt;p&gt;The evaluation of the above constraints was quite straight-forward:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Docker&lt;/strong&gt;. Learn it once, and use it everywhere. Docker is here to stay.&lt;/li&gt;
&lt;li&gt;Use a robust, proven web framework. Our choice fell on &lt;strong&gt;Django&lt;/strong&gt;, mainly because it's written in Python (yes, ML/DL enthusiast here), has a solid development history and major players like Instagram and Bitbucket chose it.&lt;/li&gt;
&lt;li&gt;As a startup, it's relatively easy to cover your hosting expenses for a few years through special startup programs. Most major cloud providers offer these. We happened to have a few k worth of AWS credits, so this was an easy choice. Right now were just running a simple EC2 with above average specs (t2.xlarge - probably an overkill), but we're considering running swarms on ECS if necessary.&lt;/li&gt;
&lt;li&gt;Since we wanted to reach our users on all three main platforms (Web, Apple &amp;amp; Android) - while having one codebase for the client app - the obvious choice fell on &lt;strong&gt;react&lt;/strong&gt; (mobile-friendly PWA/SPA) and &lt;strong&gt;react-native&lt;/strong&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Confession
&lt;/h2&gt;




&lt;p&gt;Truth is, sometimes it is not practical to refrain from using some cloud services because there is simply no good (enough) alternative:&lt;/p&gt;




&lt;p&gt;&lt;a href="https://i.giphy.com/media/Pla7xaix7x8ijBe15J/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/Pla7xaix7x8ijBe15J/giphy.gif" alt="aw man"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Google Maps&lt;/strong&gt;: of course we could go ahead and spin up our own OSM server with map tiles, geocoding and everything (I have already gone through this process once before), but the high maintenance costs, limited integration and less profesh look (if you're not using additional services like Carto or Mapbox) kept us away from this path. Furthermore, we have received enough GCS credits after enrolling into the Google Cloud for Startups program, and naturally, we wanted to make use of those.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Google Firebase&lt;/strong&gt;: It happens that real time chat functionality requires a real time database, and the easiest and most cost-efficient way of implementing this was to use Google Firebase (which has very generous limits for free usage). Unfortunately, at the time of development, Firebase Cloud Messaging was not yet available for our development framework. We will soon shift to this solution as it is free (!) and allows for push notifications.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;At first, we were slightly overwhelmed by the decisions we were faced with. But then we just established our base requirements and stepped through a minimal production setup to meet these goals. The essential features we check-off are:&lt;/p&gt;

&lt;p&gt;[x] Our setup is cheap and we still have plenty of cloud credits to use.&lt;br&gt;
[x] The Apps run well even under load.&lt;br&gt;
[x] We can scale at any time or run everything from my colleagues basement computer if necessary.&lt;br&gt;
[x] Deployment is easy: we run a command line script which reliably works. Even though it’s rather basic, our system manages package dependencies, versioning and configuration files.&lt;br&gt;
[x] We have all the monitoring we need: external status checks and log files.&lt;br&gt;
[x] We use third party services where its convenient, but could also do without.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final remarks
&lt;/h2&gt;

&lt;p&gt;As you can see, in the cloud it might be more comfortable to sit on multiple chairs, especially for startups. Unless you're planning &lt;em&gt;really long-term&lt;/em&gt;, it may be dangerous to fully commit to one provider. Therefore it is necessary to design your Apps to be as platform-agnostic as possible and not get trapped in a provider's proprietary framework. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/a1glqnNFVtDl6/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/a1glqnNFVtDl6/giphy.gif" alt="sitting on two chairs"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>startup</category>
      <category>aws</category>
      <category>googlecloud</category>
      <category>devops</category>
    </item>
    <item>
      <title>Petizio - a blockchain-based petition platform</title>
      <dc:creator>Semion Rozov</dc:creator>
      <pubDate>Thu, 21 May 2020 12:40:49 +0000</pubDate>
      <link>https://dev.to/srozov/petizio-a-blockchain-based-petition-platform-5729</link>
      <guid>https://dev.to/srozov/petizio-a-blockchain-based-petition-platform-5729</guid>
      <description>&lt;p&gt;Last year I had the chance to win one of the largest blockchain hacks in Europe - &lt;a href="https://hackathon.trustsquare.ch"&gt;SBHACK19&lt;/a&gt;. In a 42-​hour intensive hacking marathon my team managed to produce a working MVP for the eGovernment vertical, originally proposed by the &lt;a href="https://www.zh.ch/internet/en/home.html"&gt;Canton of Zürich&lt;/a&gt;, the &lt;a href="https://www.b2lab.ch/"&gt;b2Lab&lt;/a&gt; of ETH, as well as the blockchain startups &lt;a href="https://procivis.ch/de/"&gt;procivis&lt;/a&gt; and &lt;a href="https://kiltprotocol.com/"&gt;KILT&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Our dAPP - Petizio - allows users to vote pseudo-anonymously after verifying themselves through government identification. Citizens can then create new petitions and vote through the app without the need of exposing their identity in a way that each vote gets count once.&lt;/p&gt;

&lt;h2&gt;
  
  
  Official Problem Statement: 
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;While the past years have seen significant efforts in the area of eGovernment, Public Services yet lack powerful solutions for many of the new challenges such as Digital ID, E-​Voting and the Management and Registration of Documents. This challenge deals with the questions of how a government body can ensure that information can be updated flexibly while also being accurately and truthfully replicable and how it can prove that the information has not been manipulated.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The key areas here are:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;How can centralized public registries be protected, making official documents and credentials tamper-​proof and easily verifiable, and easing the burden of the individual to aggregate and share his information between governmental bodies as well as other stakeholders, such as employers, banks or insurances?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;How can we ensure trusted and secure standards, to solve the current issues around e-​Voting and in order to digitize the fundamental democratic process of voting.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Finally, how can institutions give their own representatives the temporary right to make legally binding signatures? &lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;




&lt;p&gt;&lt;em&gt;Our team decided to narrow down the challenge to the problem of petitions.&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Old Solutions:
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--3h3ioIEK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://files.ondemandhosting.info/imagecache/cropfit%40w%3D806%40qa%3D85/data/www.youthforhumanrights.org/files/petition-milano-yhri-banner_en.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--3h3ioIEK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://files.ondemandhosting.info/imagecache/cropfit%40w%3D806%40qa%3D85/data/www.youthforhumanrights.org/files/petition-milano-yhri-banner_en.jpg" width="220" height="220"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;how petitions were signed in the old days&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Until recently, there were three main approaches to gathering signatures for petitions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Physical: Petitions where signatures are gathered on the street through physical copies. This approach has multiple limitations ranging from signature consolidation to information dissemination.&lt;/li&gt;
&lt;li&gt;Private Entities: Websites such as change.org digitizes the process of voting and allows users to gather votes and make their issues heard. But the lack of identification creates the problem of a single person signing the petition multiple times.&lt;/li&gt;
&lt;li&gt;State Owned Websites: There are solutions provided by the state such as in Germany overcomes the problem of identification of citizens, however they are still vulnerable to attacks and they do not provide full anonymity.&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;None of these solutions have identity verification nor provide anonymity for citizens.&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Our Solution: 
&lt;/h2&gt;

&lt;p&gt;If you prefer audio-visual info more, here's a video presentation of our solution:&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/Slk-9oNCw5w"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;Otherwise, here's the text version: :D&lt;/p&gt;

&lt;p&gt;Our solution is to use governmental facilities to verify the citizens and then register the verified citizens on a private blockchain. The citizens are given pseudo-anonymous IDs &lt;del&gt;that can be identified by the government&lt;/del&gt;. Based on this premise:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The list of verified pseudo-anonyms are publicly displayed on the blockchain,&lt;/li&gt;
&lt;li&gt;Verified citizens can create and vote on petitions on the blockchain.&lt;/li&gt;
&lt;li&gt;When a citizen votes they use their anonymised pseudo ID.&lt;/li&gt;
&lt;li&gt;Petitioner can then compare the pseudo id published by the government and then count the votes.&lt;/li&gt;
&lt;li&gt;The counting of the signatures, creation of signature, and petitions are handled by a smart contract.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The entry process to the blockchain is depicted below:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--kM4wmlQN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://github.com/ssoima/petizio/blob/master/web-app/src/assets/Solution_Explanation.png%3Fraw%3Dtrue" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--kM4wmlQN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://github.com/ssoima/petizio/blob/master/web-app/src/assets/Solution_Explanation.png%3Fraw%3Dtrue" alt="petition-process"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The development of the project was done as follows:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A &lt;a href="https://github.com/ssoima/petizio"&gt;GitHub&lt;/a&gt; repository was used to coordinate.&lt;/li&gt;
&lt;li&gt;The repository was then moved into AWS CodeCommit&lt;/li&gt;
&lt;li&gt;A Rest API and Composer was used in an EC2 instance&lt;/li&gt;
&lt;li&gt;This EC2 instance was used between AWS Managed BlockChain and Angular.Js using REST:API&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--BAobpp6O--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://github.com/ssoima/petizio/blob/master/web-app/src/assets/TechnicalArchitecture.png%3Fraw%3Dtrue" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--BAobpp6O--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://github.com/ssoima/petizio/blob/master/web-app/src/assets/TechnicalArchitecture.png%3Fraw%3Dtrue" alt="dev-process"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why is this a good solution?
&lt;/h2&gt;

&lt;p&gt;Petizio's main strengths:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;One vote is one vote: The confirmation method prevents a single agent to vote multiple times.&lt;/li&gt;
&lt;li&gt;Immutability: Nobody can tamper with votes once they have been written to the blockchain.&lt;/li&gt;
&lt;li&gt;Anonymity: When the issues are being voted for, it is not known who supports the ideas, people can vote without revealing their identity.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why was this a great project?
&lt;/h2&gt;




&lt;p&gt;&lt;em&gt;For my team, this was a serious topic, dealing with current issues around trust, security and transparency.&lt;/em&gt;&lt;/p&gt;




&lt;blockquote&gt;
&lt;p&gt;Our main goal was to contribute to resolve these issues and perhaps make a step in the right direction and help establishing a new era in the relationship between governments and individuals.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;p&gt;&lt;em&gt;For me personally, this hack was one of the most fulfilling and rewarding experiences ever. I managed to pick up Angular in less than 4h, did an all-nighter to get the front-end done in time and also helped with deployment on AWS. In the end, we won our vertical challenge and received 18.000 CHF in cash, crypto and sponsor services.&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--E2mP2-Gh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://mtec.ethz.ch/news/d-mtec-news/2019/07/eth-team-wins-at-switzerlands-largest-blockchain-hackathon/_jcr_content/news_content/fullwidthimage/image.imageformat.lightbox.535187449.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--E2mP2-Gh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://mtec.ethz.ch/news/d-mtec-news/2019/07/eth-team-wins-at-switzerlands-largest-blockchain-hackathon/_jcr_content/news_content/fullwidthimage/image.imageformat.lightbox.535187449.jpg" alt="egov-winners"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The Epic Aftermovie:&lt;br&gt;
&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/anLx-ik-_d4"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>blockchain</category>
      <category>hackathon</category>
      <category>petitions</category>
      <category>egovernance</category>
    </item>
  </channel>
</rss>
