{"id":21,"date":"2022-04-21T21:52:35","date_gmt":"2022-04-21T21:52:35","guid":{"rendered":"https:\/\/blogs.oregonstate.edu\/chriscodes\/?p=21"},"modified":"2022-04-21T21:52:35","modified_gmt":"2022-04-21T21:52:35","slug":"capstone-project-week-4","status":"publish","type":"post","link":"https:\/\/blogs.oregonstate.edu\/chriscodes\/2022\/04\/21\/capstone-project-week-4\/","title":{"rendered":"Capstone Project &#8211; Week 4"},"content":{"rendered":"\n<p>This week I am going to discuss the current state of my capstone project.&nbsp; Currently, I am working on a page for our mobile app that (1) allows the user to create a new post on Craigslist and (2) shows a list of all their posts currently on Craigslist.&nbsp; In order to implement these features, I had to do quite a bit of work on the backend of our project.<\/p>\n\n\n\n<p>First, I need to deploy our app on Amazon\u2019s Amplify.&nbsp; This was fairly straightforward but it required a lot of research beforehand.&nbsp; Amazon\u2019s AWS is pretty intimidating when your first take a look at it.&nbsp; There are so many features, tools, applications, APIs, databases, and on and on. &nbsp;The hardest part is just figuring out what tools you need.&nbsp; After some research, I decided that Amplify was a great place to start because it is an application that houses many tools under 1, (somewhat) simple interface.&nbsp; So, after following a step-by-step guide, I soon had our app deployed on Amplify.<\/p>\n\n\n\n<p>The next step was to get our database set up through DataStore.&nbsp; This was much more involved, and it took many hours of troubleshooting and experimentation to create a connection with DataStore and do CRUD operations.&nbsp; DataStroe does provide a GUI for defining models and I found this quite intuitive and helpful.&nbsp; However, I found the instructions for Flutter to be somewhat lacking so I ran into some issues when trying to import the models into our app.&nbsp; The biggest obstacle was creating a relationship between 2 models in the app and having that reflected in DataStore.&nbsp;<\/p>\n\n\n\n<p>Finally, I needed to deploy Amazon S3 for image storage.&nbsp; This was actually quite simple because the guide provided by Amazon is pretty thorough.&nbsp; I also was able to reference an old project from CS492 that used Google\u2019s Firebase for image storage.&nbsp; Comparing the two, I was quite surprised by how much simpler Firebase\u2019s code was and how much more was handled behind the scenes with built-in functions.&nbsp;<br><br>Next week I plan to work more on the UI and image display.&nbsp; Stay tuned!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This week I am going to discuss the current state of my capstone project.&nbsp; Currently, I am working on a page for our mobile app that (1) allows the user to create a new post on Craigslist and (2) shows a list of all their posts currently on Craigslist.&nbsp; In order to implement these features, &hellip; <a href=\"https:\/\/blogs.oregonstate.edu\/chriscodes\/2022\/04\/21\/capstone-project-week-4\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Capstone Project &#8211; Week 4<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":12271,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-21","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/blogs.oregonstate.edu\/chriscodes\/wp-json\/wp\/v2\/posts\/21","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.oregonstate.edu\/chriscodes\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.oregonstate.edu\/chriscodes\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.oregonstate.edu\/chriscodes\/wp-json\/wp\/v2\/users\/12271"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.oregonstate.edu\/chriscodes\/wp-json\/wp\/v2\/comments?post=21"}],"version-history":[{"count":1,"href":"https:\/\/blogs.oregonstate.edu\/chriscodes\/wp-json\/wp\/v2\/posts\/21\/revisions"}],"predecessor-version":[{"id":22,"href":"https:\/\/blogs.oregonstate.edu\/chriscodes\/wp-json\/wp\/v2\/posts\/21\/revisions\/22"}],"wp:attachment":[{"href":"https:\/\/blogs.oregonstate.edu\/chriscodes\/wp-json\/wp\/v2\/media?parent=21"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.oregonstate.edu\/chriscodes\/wp-json\/wp\/v2\/categories?post=21"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.oregonstate.edu\/chriscodes\/wp-json\/wp\/v2\/tags?post=21"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}