Sprint 1 Report - aaronkopplin/Metallic-React-Native GitHub Wiki
Prepared By: Aaron Kopplin, Brad Samack, Josh Hubbard, Myren Mitchell
Intended Progress
Team Metallic started this sprint with the goal of wireframing our app's main pages and connecting firebase to react native.
Aaron intended to find a good database solution, as well as create the database, and to allow the app to create and authenticate users.
For Brad, the goal of this sprint was setup the contact/recent chats screen and wireframing it together with the app. Along with learning more about react native and helping out on database work.
Josh intended on further learning React Native along with being tasked with getting the navigation between the different screens working as well as wireframing the payments screen.
Myren started the first sprint intending on researching more about react native and starting work on the front end of the app. They were tasked with wireframing and creating both the login and create account pages.
Progress Reflection
Aaron's work included creating the database required a new google account as well as adding the firebase credentials to the app to allow the app to write and read from the database. All of the pages of the app will need to talk to the database, but to get the app running, the priority was user account creation and authentication. We made use of react native state variables to handle logging in and out. Once a user is created we can see the account information of the user on the firebase console. Aaron recognizes that there will be a lot of work to get the databse to talk nicely with the different pages of the app.
Brad believes that overall the team has made some good progress with sprint 1. They started out being a little confused as to how they were supposed to begin and on which areas to start work on first. Through group communication and a fair amount of React Native tutorials the project overall has a lot more focus. It came as quite a surprise how ambitious the intended progress and goals were once work began on this sprint. The limited knowledge of React Native and the addition of firebase and other new modules required more learning than was assumed. In the end though Brad found a route to contribute through solving discrepancies between versions of the code from some navigating with and without the database.
Josh is proud of what our group has been able to accomplish through the end of sprint 1, especially since they came into this project with limited knowledge of React Native, and were able to get a good base to the project that will better help with development going forward. He did fall a little short since he wasn't able to get the payments page wireframed, but he feels that development will become smoother as we continue on into sprint 2 and further develop our React Native skills.
Myren feels like the team has done a great job of communicating and working together for the first sprint. We did not reach all of our goals this time, but they feel like we have a much better understanding of what we need to do to hit our goals for the upcoming sprint. Also, since the team had little background experience in react native before this project, they were excited to see the progress that we have already been able to make.
Problems Encountered
Aaron found it was difficult to call the correct functions at the right times in the react native code to handle button presses. He also found it difficult to handle navigation, as react native seems to like 'magic' variables that are accessed through the context. the context is basically a set of global variables that are accessible within the namespace of the app.
Technical problems Brad faced often made it very hard to really delve into the code without taking a more direct slow and steady approach to them. Initially beginning with tutorials to make sense of the code that was already written, and then adapting that to be able to merge the styles from one way of doing things with another took much more time than expected. He also ran into installation issues along with Myren requiring many modules and packages to be reinstalled constantly.
Problems Josh encountered were generally related to not having a good understanding of certain aspects of React Native. Some of these problems include: general syntax of the code, nesting different navigation types (Stack navigation and Tab navigation) and getting them to work with each other, and figuring out how to style the different app components (Text, TextInput, View, TouchableOpacity, Button, etc.). These problems did add on a decent amount of additional time needed to accomplish my assigned tasks, but it was a good use of time to encounter and overcome these problems as it will greatly benefit him on further development of our app.
Myren had a lot of issues getting their computer to work with Visual Studio Code. Many times downloading and installing dependencies wasted a lot of time. Their limited knowledge also made small additions to the app more difficult, but the more familiar they get with our application and react native, the easier coding will become.
Projected Progress
The goal was to allow users to create accounts and log in and out of the app. This was accomplished. Going forward Aaron has to work on adding the database support that will allow for all of the intended functionality, including user profiles and data.
In light of what he feels was a slow start Brad intends to add more velocity into his work going forward. With the knowledge he has learned from the past sprint he is finding it more manageable and easier to make changes within the code.
Josh believes that the currently set goals for the next sprint should easily be attainable pending any possible future roadblocks. Going forward, his schedule has lightened up quite a bit, so he is hoping to be able to complete more work than was able to get done throughout the first sprint.
We were able to successfully create the base screens for our app this sprint. Myren believes that even though we did not hit our goals for this sprint, now that we have the base app created we will do a better job of achieving progress in a timely manner.
Update of Burndown Chart
The burndown chart currently is a bit inaccurate. For some of the issues we solved them a few days prior to registering them on the Zenhub. We also haven't estimated the amount of work for everything quite yet. This being the first sprint we focused more on learning our software tools and familiarizing ourselves with the code, so we also felt it a little weird including a React Native training issue. The current list of issues we also had laid out were overall too vague a topic to put as The tasks to be working on. Based on our progress so far and past experience this sprint we feel that creating more focused issues and assigning them will be much more fluid and easy to manage going forward.
Issues Modified / Migrated over for sprint 2:
- Wireframe Contacts/Payment History Page -> Wireframe My-Account Page / Wireframe User-Account Page
- Wireframe Payments Page | S1
Issues Created for Sprint 2:
- Create Accounts for Users
- Test Web3js
- Store, retrieve, and display information on the Account page
More will be added as needed.
Teamwork Reflections
Arron feels the team seems to be very motivated and persistent. We have been making steady progress despite encountering road blocks.
Brad believes the team is communicating very well and is very receptive to solving any issue that arise. Working through them to improve our footing, or to help us out more down the line has been a great experience. By clearing up vague goals into more focused one Brad also believe more meaningful progress will be made and the burndown chart will reflect progress more accurately.
Josh felt that having two, sometimes three, weekly team meetings is working well on getting the team caught up on what everyone has accomplished since the last meeting. This also allows us to set goals for each of us to accomplish by the next meeting, which helps with overall development progression on the app.
Myren has been extremely grateful to their teammates for taking the time to help them troubleshoot issues with their computer and help them understand the software development process. Everyone is great at communicating and they like how we meet several times a week to work on the project together.
Conclusion
Overall, the team finished the following: Login, Create account, and Recent Chats/Home pages were created and wireframed together. The Login, and Create Account pages were stylized with dimensions and aesthetic details. Created a rough UML diagram as reference to how we expect app page structure to flow. Initialized the database and integrated creating accounts within the app to the database. We also began creating and implementing a uniform styles sheet and separated our code for screen content outside of the App.js file.