{"id":15,"date":"2022-10-15T00:53:28","date_gmt":"2022-10-15T00:53:28","guid":{"rendered":"https:\/\/blogs.oregonstate.edu\/phoenixaustin\/?p=15"},"modified":"2022-10-15T00:53:28","modified_gmt":"2022-10-15T00:53:28","slug":"tech-stack","status":"publish","type":"post","link":"https:\/\/blogs.oregonstate.edu\/phoenixaustin\/2022\/10\/15\/tech-stack\/","title":{"rendered":"Tech Stack"},"content":{"rendered":"\n<p>This is the second blog post in a series for the Online Capstone Project \u2013 CS 467 \u2013 at Oregon State University Ecampus, Fall 2022.<\/p>\n\n\n\n<p>The goal of Gone Local, my Capstone Project, is to produce a fully functioning mobile application that can act as a platform for the &#8220;Local Organic Market&#8221;. With only eight weeks to complete this project, I need to be smart and selective about the technologies I choose. The technologies I use to build this application should be platform-agnostic so that I don&#8217;t have to build different applications for iOS and Android, and they should be easy to pick up on the fly, as I have never made a mobile application before now.<\/p>\n\n\n\n<p>The best platform-agnostic frameworks for mobile development in 2022 are Flutter, made by Google, and React Native, made by Meta. There is a lot of debate over which of these two frameworks is the very best, but I don&#8217;t have time for debate&#8230; I only have eight weeks! I choose React Native because it is a JavaScript framework, which is a language that I&#8217;m very familiar with. I have even made a few plain React applications, so I should be able to pick up React Native with no issue.<\/p>\n\n\n\n<p>I am lucky that there exists a front-end framework for mobile development which I can so easily pick up, but can I be so lucky to find an equally intuitive back-end framework for mobile development? Yes, I can! I choose Firebase, an app development platform by Google. Firebase isn&#8217;t your typical NoSQL database; it&#8217;s a whole Back-End as a Service (BaaS). Firebase ships with a huge array of built-in functionality that I simply don&#8217;t have the time or patience to implement. These built-in features include monitoring of performance &amp; user engagement, A\/B testing, crash detection &amp; analysis, offline syncing, user authentication, and much more. I shouldn&#8217;t have any issue picking up Firebase on the fly because I&#8217;ve used Google&#8217;s Cloud Firestore, which is essentially Firebase without the extra features.<\/p>\n\n\n\n<p>Now, with React Native and Firebase, I can quickly make a beautiful, feature-rich mobile application, but with a bit of outside help, I can make my application even more useful. A platform for the Local Organic Marketplace would be inefficacious without an on-platform method for transactions; to this end, I choose the Stripe API. With React Native I can make nice looking screens that show invoices &amp; past purchases, with Firebase I can store &amp; analyze the transaction data, and with Stripe I can enable those transactions to happen within the app.<\/p>\n\n\n\n<p>Similarly, as a location-based application, Gone Local would be inadequate without integration of the powerful Google Maps API. I will build a map feature with React Native, I will store the farms&#8217; location data (and other farm data) with Firebase, and with the Google Maps API I will get information about Organic Farms that don&#8217;t yet have an account with Gone Local.<\/p>\n\n\n\n<p>Without these two APIs, Stripe and Google Maps, I could build a complete application, but it would be a less interesting. For the purposes of the Online Capstone Project, I consider the integration of these APIs to be a &#8220;stretch goal&#8221;. If I&#8217;m not able to reach my stretch goal by the end of these eight weeks, I plan to finish the job soon after. In fact, I plan to continue adding features to the Gone Local app long after the Online Capstone Project concludes.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This is the second blog post in a series for the Online Capstone Project \u2013 CS 467 \u2013 at Oregon State University Ecampus, Fall 2022. The goal of Gone Local, my Capstone Project, is to produce a fully functioning mobile application that can act as a platform for the &#8220;Local Organic Market&#8221;. With only eight [&hellip;]<\/p>\n","protected":false},"author":12820,"featured_media":17,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-15","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/blogs.oregonstate.edu\/phoenixaustin\/wp-json\/wp\/v2\/posts\/15","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.oregonstate.edu\/phoenixaustin\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.oregonstate.edu\/phoenixaustin\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.oregonstate.edu\/phoenixaustin\/wp-json\/wp\/v2\/users\/12820"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.oregonstate.edu\/phoenixaustin\/wp-json\/wp\/v2\/comments?post=15"}],"version-history":[{"count":2,"href":"https:\/\/blogs.oregonstate.edu\/phoenixaustin\/wp-json\/wp\/v2\/posts\/15\/revisions"}],"predecessor-version":[{"id":19,"href":"https:\/\/blogs.oregonstate.edu\/phoenixaustin\/wp-json\/wp\/v2\/posts\/15\/revisions\/19"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blogs.oregonstate.edu\/phoenixaustin\/wp-json\/wp\/v2\/media\/17"}],"wp:attachment":[{"href":"https:\/\/blogs.oregonstate.edu\/phoenixaustin\/wp-json\/wp\/v2\/media?parent=15"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.oregonstate.edu\/phoenixaustin\/wp-json\/wp\/v2\/categories?post=15"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.oregonstate.edu\/phoenixaustin\/wp-json\/wp\/v2\/tags?post=15"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}