Author: gpimenta

Gabriella’s Status Report for 9/28

What did you personally accomplish this week on the project? Give files or photos that demonstrate your progress. Prove to the reader that you put sufficient effort into the project over the course of the week (12+ hours).

This week I worked on doing more research to ensure that MySQL would be the best database for our use case, and I looked into options of how to interact with the database from the Flutter front end.

This past week during one of the Capstone meetings, other options like hosting the database on the Cloud came up and so I looked into using Firebase instead for our database as it integrates well with Flutter and natively handles its scaling and security. Ultimately I came to the same conclusion that hosting our database on a server locally would be ideal, as Firebase is very convenient but it is also a NoSQL database which limits the queries we can use and it can also be expensive for scaling.

After officially coming to the conclusion that MySQL would be ideal for the project, I began planning out the database and decided on creating two tables, one with closet information and one for premade outfits. I then designed the table schema for the closet info table. I also set up MySQL on my computer and tested out running queries from the command line cli. Additionally, while planning out the schema, I discovered a potential issue with storing our clothing images directly in the database as it would lead to performance issues and a much larger database size. I looked into other options and decided it would be best to using a file storage system to hold the images and store the file path in the database instead. I feel that AWS S3 would be ideal for this because of its great scalability, availability and performance.

From here, I started looking into different options for interacting with the database from the front end. I mainly looked into using the HTTP Rest API, fastAPI, and using direct MySQL from Flutter. Ultimately I decided to go with fastAPI as it handles requests efficiently and works quickly because of its asynchronous capabilities. HTTP Rest API did not seem ideal because it can be difficult to scale and has performance limitation with high concurrency. Direct MySQL was also not the best choice for us because it has security vulnerability risks and was not good for scalability.

Then, I wrote up some simple fastAPI code to interact with a mySQL database based on this tutorial to get a better understanding of how I could get it to work for our application.

Besides this, I worked on the slides for the design presentation and have been practicing since I’m presenting this week.

Is your progress on schedule or behind? If you are behind, what actions will be taken to catch up to the proiect schedule?

I had to update the schedule again to add connecting the web app to S3 and backend as a new task. I also am prioritizing fully setting up the database and backend over the UI of the web app as all of us will need to be able to use the database. Based on these new updates, I am on schedule.

What deliverables do you hope to complete in the next week?

I hope to complete setting up the database and backend, or at least get very far in doing so. I also want to finish up the design report.

Gabriella’s Status Report for 9/21

What did you personally accomplish this week on the project? Give files or photos that demonstrate your progress. Prove to the reader that you put sufficient effort into the project over the course of the week (12+ hours)

This week I contributed to the project proposal presentation slides. I also did some more research on the database plan for holding the clothing items and their classification information.

I am more confident in our choice of using MySQL as it accommodates concurrency well (both the Jetson Nano and the Flutter app would be accessing it), and it is more scalable which would be ideal for having multiple users with the app as the project grows.

Additionally, I completed the setup of Android Studios and Flutter to prepare for working on the application. Originally we were planning to make the application for IOS, but while setting everything up I found out you can only develop IOS apps on a Mac so I am now creating an Android app that will be cross platform and work on IOS. I completed this tutorial to get used to working with Flutter as I have never used it before. Here is a demo of the app I made using the tutorial and an android emulator.

I have not begun working on the Figma mockup yet as originally planned, as instead we have prioritized finishing the functionality of the app before adjusting the style/look. Although we aren’t setting up the UI yet, I did look into some design ideas for later. This and this are the design concepts I am thinking of using for developing the app’s frontend.

Is your progress on schedule or behind? If you are behind, what actions will be taken to catch up to the project schedule?

We are reordering the schedule, to prioritize getting our app working first and then making it pretty/working more on the front-end design later. Based on this new ordering, I am on schedule!

What deliverables do you hope to complete in the next week?

Next week, I am planning on creating the design presentation slides. I also am hoping to set up the Github repo for the application and I want to get started on setting up the database.