<?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: Prasanna Kumar</title>
    <description>The latest articles on DEV Community by Prasanna Kumar (@prasanna_rkumar).</description>
    <link>https://dev.to/prasanna_rkumar</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%2F77102%2F8898e7e1-6253-415b-9db5-df06f91babda.png</url>
      <title>DEV Community: Prasanna Kumar</title>
      <link>https://dev.to/prasanna_rkumar</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/prasanna_rkumar"/>
    <language>en</language>
    <item>
      <title>Flixplore - Explore Movies - DOHackathon Submission</title>
      <dc:creator>Prasanna Kumar</dc:creator>
      <pubDate>Tue, 05 Jan 2021 09:25:00 +0000</pubDate>
      <link>https://dev.to/prasanna_rkumar/flixplore-explore-movies-4npi</link>
      <guid>https://dev.to/prasanna_rkumar/flixplore-explore-movies-4npi</guid>
      <description>&lt;h2&gt;
  
  
  What I built
&lt;/h2&gt;

&lt;p&gt;I built an app to help you choose a movie to watch when it's difficult for you to find one. &lt;/p&gt;

&lt;h3&gt;
  
  
  Category Submission: &lt;strong&gt;Random Roulette&lt;/strong&gt;
&lt;/h3&gt;

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

&lt;p&gt;&lt;a href="https://flixplore-react-vfzxa.ondigitalocean.app/"&gt;https://flixplore-react-vfzxa.ondigitalocean.app/&lt;/a&gt;&lt;/p&gt;

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

&lt;h4&gt;
  
  
  Step - 1
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--uiGTbTeC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/iqptvud2gzc702ssg9ry.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--uiGTbTeC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/iqptvud2gzc702ssg9ry.PNG" alt="Step - 1"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Step - 2
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Xq_BBCpN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/pemv8p1x7wmr4k4rhzpy.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Xq_BBCpN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/pemv8p1x7wmr4k4rhzpy.PNG" alt="Step - 2"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Step - 3
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--3yHlxRqr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/ln177duymg4i8tj79yd8.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--3yHlxRqr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/ln177duymg4i8tj79yd8.PNG" alt="Step - 3"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Description
&lt;/h3&gt;

&lt;p&gt;We all would have been in a state where our mind craves a certain genre of film to watch but we couldn't find one.&lt;br&gt;
A tool to help you pick a movie at such times would be convenient and that's what Flixplore does.&lt;br&gt;
You just open the app and select a Genre, Language, Year of release and submit to get a random list of movies that satisfies your selected criteria. All these options are optional and not selecting generates a completely wacky list. Guess I took the category name &lt;strong&gt;Random Roulette&lt;/strong&gt; too seriously. &lt;/p&gt;

&lt;p&gt;Click on a movie from the list to get the details about the movie, including streaming providers &lt;a href="https://www.themoviedb.org/"&gt;(by TMDB)&lt;/a&gt;.&lt;/p&gt;

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

&lt;p&gt;&lt;a href="https://github.com/prasanna-rkumar/flixplore-react"&gt;flixplore-react&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/prasanna-rkumar/flixplore-api"&gt;flixplore-api&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;&lt;a href="https://github.com/prasanna-rkumar/flixplore-react/blob/master/LICENSE"&gt;MIT License&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;A couple of months back, a friend of mine asked me to suggest to him a good Hollywood thriller flix. I shared a few that I've watched. Guess what? He's seen them too. So I went on googling for thriller movies and realized how hard it is to find one that myself or my friend is yet to watch. That inspired me to build Flixplore. &lt;/p&gt;

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

&lt;p&gt;As the app has both front-end and back-end, I deployed them in DigitalOcean App Platform as &lt;strong&gt;two components&lt;/strong&gt; of &lt;em&gt;same App&lt;/em&gt; and assigned the root route to front-end and /api to the back-end. On other platforms, I had to enable &lt;strong&gt;CORS&lt;/strong&gt; in the back-end. But with DigitalOcean App platform it is not necessary.&lt;/p&gt;

&lt;p&gt;Also Deployment was as easy as pushing the code to the designated branch. &lt;/p&gt;

&lt;p&gt;Only issue was the react router didn't work as expected. &lt;a href="https://www.digitalocean.com/community/questions/react-router-with-the-app-platform"&gt;App reloading leads to 404 error&lt;/a&gt;. So I had to replace the URL params with location state in react-router.&lt;/p&gt;

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

&lt;h4&gt;
  
  
  Technologies used
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://reactjs.org/"&gt;ReactJS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://expressjs.com/"&gt;ExpressJS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://material-ui.com/"&gt;MaterialUI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://developers.themoviedb.org/3/getting-started/introduction"&gt;TMDB API&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>dohackathon</category>
      <category>react</category>
      <category>node</category>
    </item>
    <item>
      <title>Planning for my first Hackathon - DOHackathon</title>
      <dc:creator>Prasanna Kumar</dc:creator>
      <pubDate>Sun, 13 Dec 2020 14:56:35 +0000</pubDate>
      <link>https://dev.to/prasanna_rkumar/planning-for-my-first-hackathon-dohackathon-3k65</link>
      <guid>https://dev.to/prasanna_rkumar/planning-for-my-first-hackathon-dohackathon-3k65</guid>
      <description>&lt;p&gt;I decided to participate in my first ever &lt;a href="https://dev.to/devteam/announcing-the-digitalocean-app-platform-hackathon-on-dev-2i1k"&gt;hackathon&lt;/a&gt; and made a post yesterday about why it is very important to me. The idea that I chose to work on was an app that makes it easy for you to choose a movie to watch when you have a certain genre in mind. &lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Flixplore&lt;/strong&gt;, like most other apps, will consist of&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A &lt;strong&gt;React App&lt;/strong&gt; as frontend. &lt;/li&gt;
&lt;li&gt;An &lt;strong&gt;ExpressJS server&lt;/strong&gt; as backend.
&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  The frontend will be
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;A &lt;a href="https://create-react-app.dev/"&gt;CRA&lt;/a&gt; app&lt;/li&gt;
&lt;li&gt;With &lt;a href="https://material-ui.com/"&gt;Material-UI&lt;/a&gt;. &lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  The backend will be using
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;The &lt;a href="https://developers.themoviedb.org/3/getting-started/introduction"&gt;TMDB API&lt;/a&gt; for movie suggestions and&lt;/li&gt;
&lt;li&gt;The &lt;a href="https://rapidapi.com/utelly/api/utelly"&gt;Utelly API&lt;/a&gt; for finding a place to watch the movie (Netflix, Prime, Disney+).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I could do this without a backend server. But I chose to have a backend because the external API's have a private key and they are rate limited. So it would be better to abstract this in a backend to keep the frontend straightforward.  &lt;/p&gt;

&lt;p&gt;With the &lt;a href="https://www.digitalocean.com/docs/app-platform/"&gt;DigitalOcean App Platform&lt;/a&gt;, I can deploy both my react app and express server as two different &lt;a href="https://www.digitalocean.com/docs/app-platform/concepts/component/"&gt;Components&lt;/a&gt; (&lt;a href="https://www.digitalocean.com/docs/app-platform/concepts/static-site/"&gt;Static Site&lt;/a&gt; and &lt;a href="https://www.digitalocean.com/docs/app-platform/concepts/service/"&gt;Service&lt;/a&gt;) of the same app. All components of an app will have the same domain but you can assign &lt;a href="https://www.digitalocean.com/docs/app-platform/concepts/http-route/"&gt;individual routes&lt;/a&gt; for them. So I need not enable &lt;a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS"&gt;CORS&lt;/a&gt; in my Express app. &lt;/p&gt;

&lt;p&gt;Deploying the code to the app platform is very easy. Just link your Github repo. Whenever you push changes to the selected branch, the app platforms will build the new version of the app. &lt;/p&gt;

</description>
      <category>dohackathon</category>
      <category>react</category>
      <category>node</category>
    </item>
    <item>
      <title>Breaking free of Impostor Syndrome</title>
      <dc:creator>Prasanna Kumar</dc:creator>
      <pubDate>Sat, 12 Dec 2020 20:40:35 +0000</pubDate>
      <link>https://dev.to/prasanna_rkumar/breaking-free-of-impostor-syndrome-1agl</link>
      <guid>https://dev.to/prasanna_rkumar/breaking-free-of-impostor-syndrome-1agl</guid>
      <description>&lt;p&gt;Hey fellow programmers.  &lt;/p&gt;

&lt;p&gt;I am that developer who makes a lot of side projects that never make it out of the localhost because not a lot of those projects reach even a useable version. But even those that do will not be deployed.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why?
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Impostor Syndrome&lt;/strong&gt;.  I learned this term from programming memes. If you ask me, it's just a programmer's way of saying, &lt;strong&gt;&lt;em&gt;"I am insecure"&lt;/em&gt;&lt;/strong&gt;.&lt;br&gt;&lt;br&gt;
I've been coding since 2016 and built a bunch of apps and websites for clients. I then went on to co-found &lt;a href="https://thehooman.app"&gt;HoomanApp&lt;/a&gt; (flutter app), an application for pet parents. I was able to learn and build all of this because of the community.&lt;br&gt;&lt;br&gt;
But all this time, I've been only taking from the community. I've used a lot of open-source code in my projects and spent a lot of time on &lt;strong&gt;stackoverflow&lt;/strong&gt; and &lt;strong&gt;github&lt;/strong&gt; searching for solutions for my issues, like any other developer.  But I never ask questions or raise new issues.  &lt;/p&gt;

&lt;h3&gt;
  
  
  Why?
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;What if my question is so stupid?&lt;/li&gt;
&lt;li&gt;What if someone downvotes my question?
&lt;/li&gt;
&lt;li&gt;What if my question is duplicate?
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;and a lot of similar questions. &lt;/p&gt;

&lt;p&gt;I never made any (significant) contribution to the community. I don't even participate in any active conversations. I don't write blogs or document my journey on any platform. As days passed, it turned into guilt. I felt bad for taking a lot from the community and never returning anything. &lt;/p&gt;

&lt;p&gt;At this time (Q3, 2020), I was quite strong with Flutter and firebase. So one fine day, I made up my mind to go to stackoverflow and answer flutter or firebase related questions. This was my &lt;a href="https://stackoverflow.com/a/62561804/8002326"&gt;first answer&lt;/a&gt; for flutter on stackoverflow. But I never continued it. It was not until November 2020, that I made it a habit every morning to open flutter tag on stackoverflow and scroll through all the questions and try to help fellow flutter developers. I got my &lt;a href="https://stackoverflow.com/a/65062524/8002326"&gt;first answer marked&lt;/a&gt; on 29th, November and that further helped me to break out of the bubble.  &lt;/p&gt;




&lt;p&gt;A couple of days back, I came across the DOHackathon post. &lt;strong&gt;Perfect timing&lt;/strong&gt;. So I thought, why not use this as an opportunity to showcase my projects and blog about them while I build.&lt;br&gt;&lt;br&gt;
I am so happy to introduce &lt;strong&gt;Flixplore&lt;/strong&gt;.&lt;br&gt;&lt;br&gt;
Flixplore helps you choose a movie to watch when you crave a particular &lt;em&gt;Genre&lt;/em&gt; or &lt;em&gt;Language&lt;/em&gt;. It takes in your input for the genre, language, and year of release and suggests random movies that satisfy the criteria. It will be a react SPA with a node backend. The backend will be using the &lt;a href="https://developers.themoviedb.org/3/getting-started/introduction"&gt;TMDB API&lt;/a&gt; for the movie data. I am so delighted to deploy my project on the Digital Ocean App Platform.&lt;br&gt;&lt;br&gt;
I got the idea to build Flixplore when one of my friends asked me to suggest to him a good Hollywood thriller flix to watch. But he had already seen every movie that I suggested. That made me think of this project. I am so excited to build Flixplore and participate in my first ever Hackathon.&lt;/p&gt;

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