In this project, you will be creating your second team application, exploring the functionality of cloud storage and multiple screens.
The first step in any app creation is developing a clear idea about the goals and functionality of the application. Brainstorm with your team to define an application idea that incorporates cloud storage (as detailed in Project 5) and is of modest size (at least two screens, no more than four). Follow the structure provided in the Software Requirements Template from Asana to answer these questions as a group, including the relevant areas for your application.
When describing the User Interface (UI), be sure to draw and include a low-fidelity wireframe diagram to demonstrate the connections between different screens, and annotate your individual screens with indicators of the Widget hierarchy, using the following references. It is perfectly acceptable for this first diagram to be hand-drawn, which will make iteration and revision easier, as long as it is clearly legible.
You will submit your requirements document to Dr. Goadrich and develop a 6 minute class presentation with slides, highlighting
Once your requirements document is revised based on peer and instructor feedback and then approved, one member of your team (who did not create the initial repository for the last project) should create a new repository on GitHub, clone the repository, and commit the basic Flutter app.
Under the ‘Settings -> Collaborators’ menu, invite the rest of your team members to be collaborators on this project.
Give your repository a clear one-sentence Description of the project.
Now, each team member can clone the repository locally with GitKraken. Find the repository in your linked GitHub.com account, navigate to or create a good directory, and click the “Clone the repo!” button.
Use the Issues tab in your repository to turn your requirements document into a detailed list of things that need to happen. Refer to the GitHub Documentation for best practices using Issues, and the MarkDown possibilities for your issue text.
Issues
As you branch and then merge your code, update the Issues, comment on them, and close them as appropriate.
Your application should fulfill the following requirements.
Your project must use Firebase Cloud Storage. Build on the tutorial you completed for Project 5.
To increase the complexity of your application, you need to include at least two screens, connected through the Navigation framework. More information on Navigation can be found in the above demos as well as the Flutter documentation pages on
The code you write should be sensibly organized into Widgets (stateful and stateless) that capture related components into a flexible and abstracted structure. The following tutorial could be useful in understand the difference and how to refactor when necessary.
As in Project 4, you should update your Readme.md file to describe
Also, be sure to include an appropriate LICENSE for your application, and follow any LICENSE restrictions on code that you incorporate into your app.
Your code should also be commented, well-formatted, free of typos, and follow the Dart Style Guide
It is critical that your team develop the code collaboratively. Based on your requirements presentation, each member of the team should have a well-defined role and task to complete for the application.
As responsibilities are divided among team members, you should start to use branches for each component. Develop your component, provide unit tests that it will work as expected, and demonstrate through integration tests that your component will fit well with the existing code base. It is best if you develop your unit tests along the way instead of all at the end of your process. Once you are confident in your changes, you should merge your code into the main branch.
Each team member will need to demonstrate through regular GitHub commits that they developed a substantial component of the application. And, for any member to earn a Complete for this project, the project must include substantial contributions from at least two members.
In a reflection survey, each team member will detail their contributions to the application development, highlight the work of their teammates, and reflect on their growth as a Flutter developer.
You must work as a team on this project. You may search and find resources to assist with your app development process, be sure to properly cite them in your own repository and follow any licenses for the code you adapt. Your pattern of commits to your GitHub repository are a record of your work; it will be obvious to me if you do not contribute substantially to this project. I strongly encourage you to schedule office hours meetings with me if you are struggling with elements of this assignment.
To Partially Complete this lab, you must
To Complete this lab, you must do the above and