<?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: Cory Thomas</title>
    <description>The latest articles on DEV Community by Cory Thomas (@corythomas).</description>
    <link>https://dev.to/corythomas</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%2F553557%2Fe7f7e023-c185-4b22-8eb5-c588195bf63d.jpeg</url>
      <title>DEV Community: Cory Thomas</title>
      <link>https://dev.to/corythomas</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/corythomas"/>
    <language>en</language>
    <item>
      <title>Plant Purpose</title>
      <dc:creator>Cory Thomas</dc:creator>
      <pubDate>Thu, 25 Feb 2021 20:16:05 +0000</pubDate>
      <link>https://dev.to/corythomas/plant-purpose-4laa</link>
      <guid>https://dev.to/corythomas/plant-purpose-4laa</guid>
      <description>&lt;p&gt;Plant Purpose is a React application and plant management system, which helps plant owners take better care of their plants.&lt;/p&gt;

&lt;p&gt;This has been a very interesting and fun project for me because I built the application from scratch and also partnered with a web designer for the design side of the site. &lt;br&gt;
The designer's name is Hanina Syed and she created a very thorough figma design file laying out a huge chunk of the application.&lt;br&gt;
Hanina Syed's LinkedIn: &lt;a href="https://www.linkedin.com/in/hanina-syed-020321138/"&gt;LinkedIn Link&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Web Stack:&lt;/strong&gt; React, Styled-Components, Axios, Node, Express&lt;br&gt;
&lt;strong&gt;3rd party API:&lt;/strong&gt; FullCalendar&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Live Site:&lt;/strong&gt; &lt;a href="https://plantpurpose.netlify.app/"&gt;View Site&lt;/a&gt;&lt;br&gt;
&lt;br&gt;&lt;/p&gt;

&lt;p&gt;Picture of the Application: &lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--jquqg9AV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/eelxjii1h575w53tciph.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--jquqg9AV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/eelxjii1h575w53tciph.PNG" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Picture of the Design Files for the Dashboard:&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--8W-cOmoQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hofph0fhbrcyvyrqgzem.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--8W-cOmoQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hofph0fhbrcyvyrqgzem.PNG" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;



&lt;h2&gt;Current Goals &amp;amp; Features&lt;/h2&gt;

&lt;p&gt;The project started off with the goal of completing an mvp (minimal viable product) within two weeks which I was successful at doing. I created this time constraint because I wanted to put pressure on myself and to also simulate shipping products out on time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The MVP Features I strove for during my first phase:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt; Create a functioning Sign In and Sign Up form that connects to my Node backend server&lt;br&gt;
   &lt;strong&gt;2.&lt;/strong&gt; Have a functioning almost fully fleshed out Dashboard&lt;br&gt;
   &lt;strong&gt;3.&lt;/strong&gt; Ability to view, add, delete, and edit plants&lt;br&gt;
   &lt;strong&gt;4.&lt;/strong&gt; Connect to the FullCalendar api and view a calendar&lt;/p&gt;



&lt;h2&gt;Technical Challenges &amp;amp; Lessons Learned&lt;/h2&gt;

&lt;p&gt;The biggest challenge for me during the development process was probably architecture related. This application is the biggest I have created so far and I did my best to separate out the components, pages, styling, and assets and keeping them organized in appropriate folders. I believe I have learned a lot and I'm starting to see how I like things organized but I can still tell that I have a lot to learn about architecting and organizing a project.&lt;/p&gt;



&lt;h2&gt;What's Next?&lt;/h2&gt;

&lt;p&gt;There are many updates that I plan to keep working on through the next few weeks or months.&lt;/p&gt;

&lt;p&gt;Some of the features I want to implement are:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt; Updating the backend server to allow for adding plant tasks and notes&lt;br&gt;
&lt;strong&gt;2.&lt;/strong&gt; On the frontend fill out all of the four pages which are currently in progress: Tasks, Notes, Settings, and Notifications&lt;br&gt;
&lt;strong&gt;3.&lt;/strong&gt; Add functionality to upload a plant picture instead of having to submit an image URL&lt;br&gt;
&lt;strong&gt;4.&lt;/strong&gt; Implement a 3rd party API to handle the app notifications (still unsure what type on notification would be most ideal)&lt;br&gt;
&lt;strong&gt;5.&lt;/strong&gt; Fine tune the styling of the application and making it look better on different screen sizes&lt;/p&gt;

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

&lt;p&gt;Looking over everything I can say that I am proud of the project that I have built, and am extremely lucky to have been able to use Hanina's figma designs to guide me along. There is still a lot of work to be done but I am excited to continue working on this project even after its MVP phase.&lt;/p&gt;

</description>
      <category>programming</category>
      <category>webdev</category>
      <category>react</category>
      <category>node</category>
    </item>
    <item>
      <title>Helping out a non-profit organization as a bootcamp student</title>
      <dc:creator>Cory Thomas</dc:creator>
      <pubDate>Thu, 07 Jan 2021 17:40:25 +0000</pubDate>
      <link>https://dev.to/corythomas/helping-out-a-non-profit-organization-as-a-bootcamp-student-h2a</link>
      <guid>https://dev.to/corythomas/helping-out-a-non-profit-organization-as-a-bootcamp-student-h2a</guid>
      <description>&lt;p&gt;Over the past few months I have been attending Lambda School as a web development student and I'm rapidly nearing my graduation. This last month of being a lambda student involves taking part in a team environment and working on a project for a real company or client. &lt;/p&gt;

&lt;p&gt;I am on a team with six other web and data science developers all working with the company Human Rights First. The goal for this month long project is to build a web tool that aggregates data on asylum cases, allow users to explore that data, and predict and visualize how a judge might rule on a specific asylum case—as well as what specific elements of an asylum case seem to most impact a favorable or unfavorable ruling.&lt;/p&gt;

&lt;p&gt;The web tech stack for this project mainly consists of React and Ant Design for the front-end, Node/Express for the back-end, and using Okta for handling the authentication.&lt;/p&gt;

&lt;p&gt;Some initial concerns for this project was mainly around working with pdf's since that was new for everyone on the team.&lt;/p&gt;

&lt;h2&gt;Technical Challenges Popped Up Along The Way&lt;/h2&gt;

&lt;p&gt;This may be a small feature but one of the first technical challenges I ran into was on how to hide the header only on the login screen but nowhere else throughout the application.&lt;/p&gt;

&lt;p&gt;An easy but ineffective solution would be to just copy and paste the header over each component, or page, but that doesn't follow the DRY principle of coding.&lt;/p&gt;

&lt;p&gt;I did not have an immediate solution but eventually came up with a line of code that precedes the routes of the application as shown below.&lt;/p&gt;

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

&lt;p&gt;The logic behind it is that whenever the route is not on '/login' then the header will be displayed; if the route is on '/login' then the header will not show up and be null. This solution allowed me to only use one line of code instead of having to put some form of the header instance in other files and components.&lt;/p&gt;

&lt;h2&gt;Features Of The Application&lt;/h2&gt;

&lt;p&gt;Currently, as shown below this table is the core of the application and where most of the logic is focused on.&lt;/p&gt;

&lt;p&gt;The table displays some basic data retrieved from case files to be easily viewable and filterable. The data right now is just filler data since the data science team is still finalizing their side of the application and just recently released a partly functioning endpoint for the web side to use. We are on our last week so I am hoping that we can connect the endpoint successfully and fill in the table with real case data.&lt;/p&gt;

&lt;p&gt;Additionally, we have an upload button in the header which allows the user to upload case file pdf's which will then be sent to the data science team to scrape data from which has been a successful process.&lt;/p&gt;

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

&lt;h2&gt;What Next?&lt;/h2&gt;

&lt;p&gt;In its current form, the application is still a skeleton and a minimal viable product that still needs a lot of work to be put into it. However, that was to be expected since me and my other teammates were just the first wave and team to take on this product. The plan is to have a few more teams iterate onto our greenfield product and I truly believe we set up a good foundation for them.&lt;/p&gt;

&lt;p&gt;Future features would probably include more columns in the main table, functionality set up for viewing the original pdf's, give the ability to change the user's name or password, and possibly a scannable and highlightable text conversion displayed of the uploaded case file pdf.&lt;/p&gt;

&lt;p&gt;Some future technical challenges I can see is mainly around the pdf's. On the data science side they had memory issues with pdf's over 5 pages, so that needs to be addressed. If there isn't a solution by the data science side then it has also been proposed to see if the web side can split up the pdf's into smaller chunks and post them separately, but that is a bit inefficient.&lt;/p&gt;

&lt;p&gt;Personally, I improved during this whole process and appreciate being able to even work on this project. I even received some new helpful feedback from my peers; for example, my peer showed me a new way to separate my Styled-Component styles into a separate file to clean up the component. This month has been a great experience to push me further towards my goals of starting a career as a web developer.&lt;/p&gt;

</description>
      <category>bootcamp</category>
      <category>nonprofit</category>
      <category>react</category>
      <category>javascript</category>
    </item>
  </channel>
</rss>
