This week I am going to discuss the current state of my capstone project. 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. In order to implement these features, I had to do quite a bit of work on the backend of our project.
First, I need to deploy our app on Amazon’s Amplify. This was fairly straightforward but it required a lot of research beforehand. Amazon’s AWS is pretty intimidating when your first take a look at it. There are so many features, tools, applications, APIs, databases, and on and on. The hardest part is just figuring out what tools you need. 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. So, after following a step-by-step guide, I soon had our app deployed on Amplify.
The next step was to get our database set up through DataStore. This was much more involved, and it took many hours of troubleshooting and experimentation to create a connection with DataStore and do CRUD operations. DataStroe does provide a GUI for defining models and I found this quite intuitive and helpful. 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. The biggest obstacle was creating a relationship between 2 models in the app and having that reflected in DataStore.
Finally, I needed to deploy Amazon S3 for image storage. This was actually quite simple because the guide provided by Amazon is pretty thorough. I also was able to reference an old project from CS492 that used Google’s Firebase for image storage. Comparing the two, I was quite surprised by how much simpler Firebase’s code was and how much more was handled behind the scenes with built-in functions.
Next week I plan to work more on the UI and image display. Stay tuned!