Progress

Week 6 - Proposal

Project Proposal: Link

This week we focused on the main idea of the app. We brainstormed what we believed was feasible and created our project proposal. 

Week 7 

This week we were still focusing on prototyping. We created the website for the app (which you're viewing now) and prototyped our app in Figma to finalize what the appearance would look like. 

Week 8 

This week we completely finalized the design of the app. We also created a GitHub repository for the app and uploaded our template code to it. We decided to use Android Studio's BottomNavigationViewActivity as a template since it had the toolbar we were interested in implementing. 

Week 9 

This week we started working on the XML files, specifically the ones for the log-in page and the task page. After we had finalized what we wanted the app to look like, it was a matter of adding the Views and properly constraining them to make them look like we wanted. We had a few issues related to the ListView on the Task page, but were able to resolve them when we realized the ListView could expand to fit its allotted space when its height was set to 0 dp. We also had to program our own ListAdapters for the ListViews to include the icons for users to click to check off the task. We ended up making two: one for the User page and one for the Partner page. Even though they appear similar, they have different functionalities that we were worried would interfere if put on the same adapter. 

We also set up our Firebase Cloud Storage, which we will use to store all the user information and tasks. 

Week 10 

This week was our big sprint to finish the app. We had our appearance halfway done and our Firebase set up, but we still had to finish the functionality of the multiple Activities our app needed. We split up the work, each working on one small portion at a time (eg one person worked on creating the NewTaskActivity while the other worked on making the Log In page). We kept each other updated as we went so we knew what the other was doing, careful not to overlap in the files we were working on so that our commits to GitHub and subsequent pulls would not interfere with each other. 

During this week we finished the Log-In page, the Task  page, the New Task page, the Partner page, and most of the settings page. This included the XML files and the Java files, in addition to checking to make sure the app was properly interfacing with Firebase to store all our data. We encountered several roadblocks with Firestore; reading/writing to the database proved more difficult than we thought with configuring our Firebase security rules and the amount of time we were reading from/writing to the database. We also were unfamiliar with Fragments when starting this app. But in both cases, as we worked through the app and looked through documentation, we became much more confident with our work and parts of repeating code became much more natural to write. 

Finals Week - Demo

This week was all about the finishing touches and testing, putting in the last touches and making sure everything was functional before the demo. We finished off the settings page, made the notifications functional, and corrected the appearance of the time and date on the buttons in the NewActivityFunction and in the CheckMarkAdapter and CheckMarkPartnerAdapter in the User fragment and the Partner fragment respectively. We also made some last minute changes to what we stored in Firebase, realizing that we needed to store the date in separate fields (day, month, year) rather than in one large string ("[DayOfWeek], [Month] [DayOfMonth], [Year]") in order to make our notifications functional. 

Our notifications are one example of how we approached the problem in different ways, resulting in two different notification implementations for different uses: one for notifications depending on time, and one for notifications depending on user activity. 

On Tuesday, we also gave our final demonstration, showcasing our app and its functionality.