<?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: Luís Silva</title>
    <description>The latest articles on DEV Community by Luís Silva (@ludeed).</description>
    <link>https://dev.to/ludeed</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%2F91239%2Ff0582193-4ba7-4e22-864a-aaa1b4c4860f.jpeg</url>
      <title>DEV Community: Luís Silva</title>
      <link>https://dev.to/ludeed</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ludeed"/>
    <language>en</language>
    <item>
      <title>Software is Tetris</title>
      <dc:creator>Luís Silva</dc:creator>
      <pubDate>Sat, 27 Feb 2021 23:49:34 +0000</pubDate>
      <link>https://dev.to/ludeed/software-is-tetris-1kc2</link>
      <guid>https://dev.to/ludeed/software-is-tetris-1kc2</guid>
      <description>&lt;p&gt;Software and Tetris have a lot in common.&lt;br&gt;
No, I am not saying that the best software was written in 1984 or by Russians.&lt;br&gt;
What I am saying is that playing Tetris feels a lot similar like building software.&lt;/p&gt;

&lt;p&gt;So far I was not able to break the metaphor.&lt;br&gt;
It is so powerful that can even work at multiple levels of abstraction.&lt;/p&gt;

&lt;p&gt;A quick example: Tetris feels like a never ending game, and so does software.&lt;br&gt;
From small personal project to big budget, company powered ones. We can argue that it seems that there is always something to do.&lt;br&gt;
A feature to implement, a feature to add, if we want the ball would always keep rolling.&lt;br&gt;
Until eventually we give up or move onto another project.&lt;br&gt;
Basically until you lose and Tetris wins.&lt;/p&gt;

&lt;p&gt;Tetris is always easier at the starting point, with a clean slate.&lt;br&gt;
This goes without much to say, you can verbatin replace Tetris with Software in the last sentence.&lt;br&gt;
Sometimes you even throw the game when it gets too difficult in order for you to start a new one from the start.&lt;br&gt;
We all have that git repository with that old project that we abandon in order to seek happiness elsewhere.&lt;/p&gt;

&lt;p&gt;When you start a game of Tetris you are super focused, planning your every move optimizing every placement.&lt;br&gt;
Just like building software, you start planning your folder structure, putting everything in their place, but for how long?&lt;br&gt;
Sometimes you need to go fast.&lt;/p&gt;

&lt;p&gt;Speed and perfection, don't go together.&lt;br&gt;
This last one is true for Tetris, for software and for life in general.&lt;br&gt;
when building software if you go too fast you start making mistakes, taking shortcuts.&lt;br&gt;
Basically, you start leaving holes in your blocks.&lt;/p&gt;

&lt;p&gt;Sometimes you cannot be perfect.&lt;br&gt;
In order to move forward, you need to be able to accept less than perfect.&lt;br&gt;
Done is better than perfect.&lt;br&gt;
Sometimes, you need to use that L piece to close off a few lines.&lt;br&gt;
If you keep waiting for that I piece, that perfect Tetris every time you might end up throwing your whole game.&lt;/p&gt;

&lt;p&gt;What about working with others?&lt;br&gt;
Just play Tetris 99 for a while and you have a pretty decent picture of what it feels like building software with other people.&lt;br&gt;
You think you have the perfect blocks? Those perfect lines ready for that big Tetris? &lt;br&gt;
Baam! Now you have your bits and you need to integrate this new batch of changes from this random guy.&lt;/p&gt;

&lt;p&gt;There is always that guy who is better than you and can make lines faster than you.&lt;br&gt;
Probably is just he is doing this for far longer than you.&lt;br&gt;
Practice makes perfect.&lt;/p&gt;

&lt;p&gt;You see? Tetris and software are basically the same concept.&lt;/p&gt;

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

&lt;p&gt;First published on my &lt;a href="https://luissilva.eu/blog/"&gt;blog&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>programming</category>
      <category>computerscience</category>
      <category>architecture</category>
      <category>career</category>
    </item>
    <item>
      <title>Presenting: BeSustainable</title>
      <dc:creator>Luís Silva</dc:creator>
      <pubDate>Mon, 11 Jan 2021 03:04:13 +0000</pubDate>
      <link>https://dev.to/ludeed/presenting-besustainable-1lo1</link>
      <guid>https://dev.to/ludeed/presenting-besustainable-1lo1</guid>
      <description>&lt;h2&gt;
  
  
  What I built 👷
&lt;/h2&gt;

&lt;p&gt;A privacy-aware platform that will make people more environmentally conscious. &lt;em&gt;Users&lt;/em&gt; will be able to &lt;em&gt;Report&lt;/em&gt; anything they think needs an intervention (e.g. Trash on the park or beach, a water pipe leaking, garbage containers constant overflows). Each user will have an amount of &lt;em&gt;Reputation&lt;/em&gt; which they can use to &lt;em&gt;Endorse&lt;/em&gt; these &lt;em&gt;Reports&lt;/em&gt;. Eventually, the &lt;em&gt;Reports&lt;/em&gt; can turn into &lt;em&gt;Events&lt;/em&gt; that will deal with the problem, rewarding the user with more &lt;em&gt;Reputation&lt;/em&gt; to &lt;em&gt;Endorse&lt;/em&gt;. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;But above all, we will be rewarding mankind by making our planet better bit by bit.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Category Submission 👨‍💻
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Program for the People&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  App Link 🔗
&lt;/h3&gt;

&lt;p&gt;&lt;a href="//terranostra-y9ltb.ondigitalocean.app"&gt;Try it here&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Screenshots 📷
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--YHgb-li2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/8pn1rhxg7dyvk3furcrp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--YHgb-li2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/8pn1rhxg7dyvk3furcrp.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--a0-GBT-9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/s1ddj8tgn18auqnesq9n.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--a0-GBT-9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/s1ddj8tgn18auqnesq9n.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--_O0T3Wxg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/vrjx0vcrlhq10yhyrygp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_O0T3Wxg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/vrjx0vcrlhq10yhyrygp.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--pGIuH3-k--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/qkxja8fbsthkovs78f6u.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--pGIuH3-k--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/qkxja8fbsthkovs78f6u.png" alt="Alt Text"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;h3&gt;
  
  
  Link to Source Code
&lt;/h3&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--vJ70wriM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/github-logo-ba8488d21cd8ee1fee097b8410db9deaa41d0ca30b004c0c63de0a479114156f.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/LudeeD"&gt;
        LudeeD
      &lt;/a&gt; / &lt;a href="https://github.com/LudeeD/terranostra"&gt;
        terranostra
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      A privacy-aware platform for environmental reports and events
    &lt;/h3&gt;
  &lt;/div&gt;
&lt;/div&gt;


&lt;h3&gt;
  
  
  Permissive License
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://github.com/LudeeD/terranostra/blob/main/LICENSE"&gt;MIT&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Background 🔍
&lt;/h2&gt;

&lt;p&gt;Last year showed us some great things: the Human will achieve anything; Nature is always willing to come back in full glory.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/dSY9GgU0fWS8o/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/dSY9GgU0fWS8o/giphy.gif" alt="always look on the bright side of life"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;This second point is the one that strikes me the most. To see just how quickly Nature can change and adapt. From all around the world we saw drops in carbon emissions, an increase in the air quality in cities, increased water quality of rivers and lakes. Nature is just around the corner trying to restore the balance in our planet. For me, it was about time we help it achieve it.&lt;/p&gt;


&lt;div class="ltag__link"&gt;
  &lt;a href="/ludeed" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--1LoTi6vj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://res.cloudinary.com/practicaldev/image/fetch/s--NGDBrfE1--/c_fill%2Cf_auto%2Cfl_progressive%2Ch_150%2Cq_auto%2Cw_150/https://dev-to-uploads.s3.amazonaws.com/uploads/user/profile_image/91239/f0582193-4ba7-4e22-864a-aaa1b4c4860f.jpeg" alt="ludeed image"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/ludeed/the-idea-231j" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;The Idea 💡&lt;/h2&gt;
      &lt;h3&gt;Luís Silva ・ Jan  9 ・ 2 min read&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#dohackathon&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;
 

&lt;h3&gt;
  
  
  How I built it ⚙️
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Using Python and Django I was able to quickly prototype what a platform like this would look like.&lt;/li&gt;
&lt;li&gt;Learned a bit about &lt;a href="https://oauth.net/2/"&gt;OAuth 2.0&lt;/a&gt; in order to provide the users with a easy way to login to the platform without the need for a Sign In form.

&lt;ul&gt;
&lt;li&gt;Google and Digital Ocean are options to Login&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;A splash of &lt;a href="https://getbootstrap.com/"&gt;bootstrap&lt;/a&gt; to make it pretty&lt;/li&gt;
&lt;li&gt;Used &lt;a href="https://openlayers.org/"&gt;openlayers&lt;/a&gt; to provide me with map information completely for free!&lt;/li&gt;
&lt;li&gt;Hacked &lt;a href="https://en.wikipedia.org/wiki/Geohash"&gt;geohashes&lt;/a&gt; into submission to have all the features I wanted without hassle&lt;/li&gt;
&lt;li&gt;The Digital Ocean platform was a breeze to use! Followed this &lt;a href="https://www.digitalocean.com/community/tutorials/how-to-deploy-django-to-app-platform"&gt;tutorial&lt;/a&gt; and used 3 components:

&lt;ul&gt;
&lt;li&gt;A main component to deploy the Django App&lt;/li&gt;
&lt;li&gt;One to serve the static assets&lt;/li&gt;
&lt;li&gt;A Dev database to store the data
Overall very impressed with the service! However, since I have 3 components I could not add the "deploy to Digital Ocean button" because it had some service and component limits 😔&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I presented a more in-depth analysis of my findings and pain points in here:&lt;br&gt;
&lt;/p&gt;
&lt;div class="ltag__link"&gt;
  &lt;a href="/ludeed" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--1LoTi6vj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://res.cloudinary.com/practicaldev/image/fetch/s--NGDBrfE1--/c_fill%2Cf_auto%2Cfl_progressive%2Ch_150%2Cq_auto%2Cw_150/https://dev-to-uploads.s3.amazonaws.com/uploads/user/profile_image/91239/f0582193-4ba7-4e22-864a-aaa1b4c4860f.jpeg" alt="ludeed image"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="/ludeed/the-execution-5dg9" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;The Execution 💻&lt;/h2&gt;
      &lt;h3&gt;Luís Silva ・ Jan 11 ・ 3 min read&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#dohackathon&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#django&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#python&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;
 

&lt;h3&gt;
  
  
  Additional Resources/Info
&lt;/h3&gt;

&lt;p&gt;Great job from the organizers, from getting the credits to the platform to the platform itself, very nice hackathon&lt;/p&gt;

&lt;p&gt;See you next year(?) and until then... BeSustainable 🌳&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--QkOvYF5R--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/sec6kpqz55q4vlyiavhz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--QkOvYF5R--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/sec6kpqz55q4vlyiavhz.png" alt="BeSustainable Logo" width="200"&gt;&lt;/a&gt; &lt;/p&gt;

</description>
      <category>dohackathon</category>
    </item>
    <item>
      <title>The Execution 💻</title>
      <dc:creator>Luís Silva</dc:creator>
      <pubDate>Mon, 11 Jan 2021 01:44:40 +0000</pubDate>
      <link>https://dev.to/ludeed/the-execution-5dg9</link>
      <guid>https://dev.to/ludeed/the-execution-5dg9</guid>
      <description>&lt;p&gt;I left you with nothing but an idea in the previous post. Now, I will present to you the outcome. We will go over some pain points and lessons learned.&lt;/p&gt;

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

&lt;p&gt;I divided this post into N sections: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;user authentication &lt;em&gt;The Good&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;user image uploads &lt;em&gt;The Bad&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;geolocation &lt;em&gt;The Ugly&lt;/em&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  User authentication
&lt;/h2&gt;

&lt;p&gt;For this hackathon, I decided to go with python. To someone on a tight schedule to develop something nothing better than the one and only &lt;a href="https://www.djangoproject.com/"&gt;Django&lt;/a&gt;. This beast of a framework can do it all and once again, it didn't fail me. They call it "The web framework for perfectionists with deadlines." for a reason.&lt;/p&gt;

&lt;p&gt;However, I am not here to teach you how to use Django since there are a plethora of options on the Internet that would do a better job than me.&lt;br&gt;
But I need to give a big shout-out to one plugin in particular: &lt;a href="https://django-allauth.readthedocs.io/en/latest/overview.html"&gt;django-allauth&lt;/a&gt;. If you thought that working with &lt;a href="https://www.djangoproject.com/"&gt;Django&lt;/a&gt; was easy, imagine working with a plugin that completely sorts authentication for you. Bye, Bye old user Model from Django! Hello, OAuth2 from all your favorite providers.&lt;/p&gt;

&lt;p&gt;Using it was a breeze, the pure epitome of what prototyping should be all about. If you find yourself in the need of an authentication solution, go and take a &lt;a href="https://django-allauth.readthedocs.io/en/latest/installation.html"&gt;look&lt;/a&gt;. And yes, it is as easy as it looks. &lt;/p&gt;

&lt;p&gt;&lt;em&gt;Note: I am not in any way shape or form associated with them 😇 but it was a really nice experience&lt;/em&gt;&lt;/p&gt;

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

&lt;h2&gt;
  
  
  User image uploads
&lt;/h2&gt;

&lt;p&gt;What about those pesky images? Let's be honest, no one likes to deal with static files and images and whatnots...&lt;br&gt;
If only life could be just a big JSON file, no images, no content distribution networks... But life ain't like that...&lt;/p&gt;

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

&lt;p&gt;If dealing with images was already a nuisance, imagine not being able to upload them to the file system.&lt;br&gt;
Since these new platforms appeared, like the Digital Ocean one or Heroku appeared, that we are confronted with the question: where to store my pictures? Do I need another service for that? Why is this so hard?&lt;br&gt;
As you know, the issue is that these platforms, based on dockers and so on, can restart your "image" at any time. This means that anything you stored outside of your "image" is not persisted on system restarts. &lt;/p&gt;

&lt;p&gt;Tough luck, they said! Do a micro-services architecture! Bleh... Microservices were invented by start-ups that didn't want to upgrade their apps from the free tier. &lt;/p&gt;

&lt;p&gt;Joking aside, for me this is a big pain point. But not anymore!&lt;br&gt;
During development, I already had to set up one database for the rest of my data. Why not use this Database to store my images in some binary field? I bet some of you got a burning sensation behind your ears because of what I wrote just there. But stay with me!&lt;/p&gt;

&lt;p&gt;Just look at this &lt;a href="https://www.sqlite.org/fasterthanfs.html"&gt;page&lt;/a&gt;. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;SQLite reads and writes small blobs (for example, thumbnail images) 35% faster than the same blobs can be read from or written to individual files on disk using fread() or fwrite().&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Maybe it's not such a bad idea. 🤷 &lt;br&gt;
This is a &lt;strong&gt;hack&lt;/strong&gt; a &lt;strong&gt;ton&lt;/strong&gt; after all!&lt;/p&gt;

&lt;h2&gt;
  
  
  Geolocation
&lt;/h2&gt;

&lt;p&gt;When you want to do anything related to geolocation you already know that you are serving to yourself a big blob of work. No one likes to deal with coordinates. It's worst when you want to get to query your date based on location. You can't use simple math because the earth is round and difficult. You try to use database specif functions just to see that you don't have that plugin installed.&lt;/p&gt;

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

&lt;p&gt;But today I am here to share with you a little tip. Some might find it very ugly. Others will give it the credit it deserves.&lt;br&gt;
&lt;a href="https://en.wikipedia.org/wiki/Geohash"&gt;Geohashes&lt;/a&gt;! A god sent solution to all your location issues.&lt;br&gt;
The way it works is by subdividing the globe into sections again, and again, and again.&lt;br&gt;
This gives you a way to pinpoint a location in the world with any precision you want. It also provides a way to get nearby locations using only string operations. It's simply magical. &lt;a href="https://www.movable-type.co.uk/scripts/geohash.html"&gt;Try them&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;I hope you can find some interesting things in this post, maybe they will serve you in another hackathon!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--QkOvYF5R--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/sec6kpqz55q4vlyiavhz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--QkOvYF5R--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/sec6kpqz55q4vlyiavhz.png" alt="BeSustainable Logo" width="200"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;h4&gt;
  
  
  Until next time...
&lt;/h4&gt;

</description>
      <category>dohackathon</category>
      <category>django</category>
      <category>python</category>
    </item>
    <item>
      <title>The Idea 💡</title>
      <dc:creator>Luís Silva</dc:creator>
      <pubDate>Sat, 09 Jan 2021 14:21:30 +0000</pubDate>
      <link>https://dev.to/ludeed/the-idea-231j</link>
      <guid>https://dev.to/ludeed/the-idea-231j</guid>
      <description>&lt;p&gt;Any hackathon needs an idea. So this is where we will start.&lt;/p&gt;

&lt;p&gt;In the past year, the world had to face the most difficult challenge in recent history. The pandemic affected millions and millions of people who either lost their job or a loved one.&lt;/p&gt;

&lt;p&gt;However, like in any dark event, the best way to overcome it is to look on the bright side of things. Last year showed us some great things: the Human will achieve anything; Nature is always willing to come back in full glory.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/dSY9GgU0fWS8o/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/dSY9GgU0fWS8o/giphy.gif" alt="always look on the bright side of life"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;This second point is the one that strikes me the most. To see just how quickly Nature can change and adapt. From all around the world we saw drops in carbon emissions, an increase in the air quality in cities, increased water quality of rivers and lakes. Nature is just around the corner trying to restore the balance in our planet. For me, it's time we help it achieve it.&lt;/p&gt;

&lt;p&gt;For this hackathon, the idea is to develop a platform that tries to make people a little more environmentally conscious and enable actions to improve our world.&lt;/p&gt;

&lt;h2&gt;
  
  
  MVP requirements 📓
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Users&lt;/em&gt; can &lt;em&gt;Report&lt;/em&gt; 

&lt;ul&gt;
&lt;li&gt;e.g Beach in Bad conditions, Park with trash all over etc..&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Users&lt;/em&gt; can create &lt;em&gt;Events&lt;/em&gt; that tackle the &lt;em&gt;Reports&lt;/em&gt;

&lt;ul&gt;
&lt;li&gt;e.g. organizing a Beach or park cleanup, a educational activity to spread awareness&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Users&lt;/em&gt; can use &lt;em&gt;Reputation&lt;/em&gt; to vote on &lt;em&gt;Reports&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Users&lt;/em&gt; receive &lt;em&gt;Reputation&lt;/em&gt; by supporting &lt;em&gt;Reports&lt;/em&gt; that turn into &lt;em&gt;Events&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Reports&lt;/em&gt; and &lt;em&gt;Events&lt;/em&gt; presented must be geographically relevant to the &lt;em&gt;User&lt;/em&gt; and &lt;em&gt;Visitor&lt;/em&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--QkOvYF5R--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/sec6kpqz55q4vlyiavhz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--QkOvYF5R--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/sec6kpqz55q4vlyiavhz.png" alt="BeSustainable Logo" width="200"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;h4&gt;
  
  
  Until next time...
&lt;/h4&gt;

</description>
      <category>dohackathon</category>
    </item>
  </channel>
</rss>
