Sprint 5 Report - aaronkopplin/Metallic-React-Native GitHub Wiki

Prepared By: Aaron Kopplin, Brad Samack, Josh Hubbard, Myren Mitchell

Intended Progress

Aaron - It was important this sprint to finally get the Ethereum payment functionality working. This functionality built upon the previous sprints work of creating contacts, adding the chat functionality and displaying your recent chats. Aaron had to work with the ethers,js library to find the balances of ethereum accounts, as well as creating a function to make a payment and then incorporate it with the existing chat function.

Brad started this sprint with the aim to improve the apps overall look, view, and feel. This meant looking at feedback we received during the presentations on sprint 4 as well as other feedback from friends outside of the group. He also intended to finish implementing profile images throughout the remainder of the screens within the app.

Josh went into Sprint 5 with the intent of implementing the user score system, creating a new tab for the user's account page, and working with Myren to get permissions working with iOS to allow access to the user's camera roll on their iOS device. Once these were finished, Josh would then work on cleaning up and commenting code along with working on the consistency between screen UI.

Myren spent this sprint working along with the other group members on several small fixes to clean up the app. Josh and Myren completed work on the profile photo upload functionality by adding iOS permissions to access the user's camera roll. Myren also spent some time working on the modals featured in the app and continued to improve the speed of loading profile pictures with Brad.

Progress Reflection

Aaron - Aaron finished the ethereum payments functionality this sprint. Metallic allows you to add a payment amount to a chat, and then creates, signs, and sends the transaction the the ethereum test network. Free test ether can be received automatically by using this faucet website: https://faucet.ropsten.be/ . Aaron was also able to update the user account page, as well as redirect all references to other user accounts to the same account page. The UI / UX is significantly better on the new account page. Aaron also did some refactoring, with the main improvement being moving most of the firebase methods to a single file, making maintenance and future improvements easier.

Brad feels that his contributions to the design were good in some areas and fairly irrelevant in others. This is due to some aspects of the app changing very little with changes while others would have a drastic change. His main focus was improving a lot of the look and feel of the web version of the app while taking into account the mobile version as well. In the process of this too Brad also found ways to clean up much of the formatting of the screens within the code sending most of the styling to our "masterstyles" document making a lot of the code much easier to manage and read.

Josh feels that he had good progress during Sprint 5 since he was able to complete his main tasks for the sprint. He wasn't really able to get to any of the code cleanup/commenting though.

Myren feels that they were able to help out their other team members during this last sprint. While they did not have anything large to work on by themself, they enjoyed getting to work together with their teammates to further improve the app.

Problems Encountered

Aaron - Creating the function to send the ethereum payments was difficult. The main roadblock was that the ethers js documentation is outdated, and there are not many recent tutorials for ethers js online. Also, there are few stack over flow questions posted, so finding the correct code was like finding a needle in the haystack, but Aaron was able to write the code to send a transaction from one account to another.

Brad found issues with trying to implement the images to all the screens. This came due to the way that we currently loaded profile images was using firebase storage which in general takes a very long time to load images compared to other solutions. He found a work around by making the images in the database public allowing us to call them through a specific URL. This solved some of the loading time issues, but also resulted in many of the images appearing to be cached on the device meaning that changing a picture a second time them would not change them due to the URL taking some time before changing. Another problem resulted from both Brad and Aaron stylizing screens. Fortunately this came down to a conflict with only one screen, but it resulted in cherry picking more than usual due to merge conflicts. Despite that however, it was to be expected and Aarons work was a much better improvement to the screen look and feel overall.

There were no real coding problems encountered by Josh, but he did test positive for Covid at the start of the second week of Sprint 5 and was unable to do much work at all during that period of time.

Myren did not encounter any large problems during this sprint. Any small issues that came up were resolved fairly quickly.

Projected Progress

Aaron - The last half sprint will be mostly UI / UX improvements as well as refactoring and final testing. Aaron would like to do a little UI improvement on the payments screen.

Brad plans to continue working on UX / UI improvements. Also working on wrapping up all the final deliverables with the group and cleaning up details on the github.

Josh will mainly be focusing on warnings generated when setting the user's account image from an iOS device along with helping others if they need it. He will also work on cleaning up and commenting his code since he was unable to get to that during Sprint 5 as well as working on screen UI to make them a little more consistent with each other.

Myren is planning on continuing to improve our currently implemented features before our final presentation. Similar to this sprint, they will focus on fixing known errors and cleaning up the overall design of the app.

Update of Burndown Chart

Burndown Chart

The Team continued to make progress throughout the sprint. Slow start due to Sprint 4 releasing and then presentations in class then gradual progress as the week went on. Finishing with only 1 issue not being completed, but that was one that we felt was a stretch goal from our original plan.

Not many issues Added this last week given prep for the Final presentation and deliverables.

  • Payment Screen UI/UX
  • Fix Web Account Screen Bug
  • General UI/UX Design Improvements

Teamwork Reflections

Aaron - Aaron is really grateful for the work that his teammates have put in thus far, and is looking forward to pushing through and finishing this project!

Brad is happy with the continued help his team continues to put in. If there's not much direction for one member we work together to keep everyone working somewhere.

Josh believes that the team continues to work better with each other as we approach the final sprint. Everyone is helping out where needed to make sure that we can successfully wrap up this project.

Myren has enjoyed working together with their teammates. All the team members are easy to communicate with and everyone is doing their part to complete the project.

Conclusion

This sprint wrapped up the required functionality of the app. Thus far we have ethereum account security, transactions, user accounts and user names, as well as the ability to add contacts, search all of the users in the app, and keep an easily viewable record of all past transactions and chats. The next half-sprint will just be final testing and UI / UX improvements to polish up the final product.