Backend database setup (6h): I spent most of the week learning how to use SQL more robustly (this is the querying language for SQLite). I think I’ve gotten pretty good with it! SQLite comes pre-installed on macOS so I messed around with creating tables, storing data, querying data, and general analytics (like aggregation, JOIN / WHERE / HAVING clauses), as well as style guidelines. This allowed me to solidify the app database backend on Android Studio and input those queries into it. I did run into a challenge with Alex of potentially migrating to a different framework outside of native Android Studio, but I’ll build on this more later.
Design Review Slides / Presentation (5h): I worked as part of the team to build finishing touches on the design review slides, as well as rehearsing for a few hours and improvising changes along the way to make sure my presentation went as smoothly as possible!
Mandatory Design Review Feedback Meeting (2h): I went on Monday to the Design Review meeting and presented + gave feedback to other groups that presented. I found it very valuable that the audience seemed to agree that the use of bluetooth / solely-Android reliant database+compute without cloud services was a good idea in this project! It really affirmed the research I did last week. I missed the Wednesday meeting and didn’t do much work on Thursday sadly, but I was feeling ill, and I contacted the course staff about this.
Progress
Alex and I discussed the potential of migrating our app framework to Flutter, rather than purely Android Studio, because of its more cross-platform agnostic features. However, for the purpose of backend, it doesn’t put me too behind, as the concern for me is less about writing code and more about the general data storage and retrieval ideas (which I have solid). I would have to take some time aside to learn Dart, however, if we do this change, but this should not take me long. I still feel like we’re in a good place here.
Next week task & goals
Alex and I will be touching base frequently throughout next week to finalize the framework we will choose for the frontend and backend components, as well as how they will integrate together. I want to start unit testing the HC-05 bluetooth module, but this will require it to be delivered first. This will allow me to see what it’s like receiving real-time data (even if it is junk for now) so Alex can start testing the AnyChartAPI. We have a lot to do this week!
Mobile App Development (7h): Several changes were made to our initial plans regarding the mobile app. We have decided not to include google OAuth sign in because session data will be stored locally on the device and thus there is likely no need for multiple users to be using the same mobile phone. After watching other team’s presentations during the design review, I found that Flutter SDK may also be a viable option for creating a cross-platform version of the mobile app. I am currently experimenting with using the Flutter plugin in addition to Android Studio IDE to create the frontend of the app. This decision may still change since Flutter is written in Dart as opposed to Kotlin. My main accomplishments regarding the mobile app this week was creating the initial landing page of the app which takes you to the first-time startup questionnaire in Android Studio (which may need to be modified when introducing the Flutter plugin).
Meeting with Vansh (0.5h): Met with another capstone team whose projects had some similar challenges and use cases as our project, and discussed how we were dealing with some of these issues. Also learned about Flutter as a possible solution for our mobile app development, and will give it a try before fully committing to Android Studio.
Design Review Slides (2h): Helped the team work on the block diagrams and design review slides for this week’s design presentation.
Mandatory Lab Meetings (4h): Watched design review presentations from other teams and received important feedback on our own project. One question that was raised during our presentation was regarding the usage of our device during dynamic (dyno) moves in climbing (which typically is defined by moves which require a jump off the wall where you lose all points of contact during the move). I did some research and found that dyno moves can typically double the force of the same climber on a similar static move, so that will have to be taken into consideration during our stretch goals. Our current MVP is for the device to take accurate readings during static moves (or hang boarding sessions), since this well have a less likely chance of breaking sensors and also because most climbs consist of mainly static moves rather than dynamic moves.
Progress
Depending on what decision we make regarding Flutter/AS, I will be a little behind on mobile app development if we decide to switch to Flutter. However if we stick with AS, I am on schedule for mobile app development. Me and Judi will make that decision soon so we can move on to integrating the frontend and backend of the app. We are meeting on Sunday to make this decision, so by the end of the week we will be back on track as far as the mobile app goes.
Next week task & goals
Mobile App Development: I plan on meeting several times with Jubi over the next week to begin planning integration of the frontend and SQLite database. We may also start looking at how to integrate bluetooth pairing and communication into the mobile app. I plan on finishing the home page such that I can integrate AnyChart API calls to begin testing of dummy data on the data visualization side of the app.