Technical Design

Josh Miller

This week, our team was focused on more technical aspects of the planning process. The first step was to create a technical design document. This document will serve as a guide for all future development, laying out how the app will flow and detailing all of the data types and structures used. 

I worked on several sections of the document to prepare it for an initial review. After receiving feedback the team continued to work on revisions and additions. One of my responsibilities was to create a UML diagram. The purpose of this is to create a sort of visual map of the  code's structure.

UML Diagram
Building off of the UML diagram, I made a list of module breakdowns to further specify how each data structure is meant to operate and how it should be used once development begins. 

Module breakdown for the CExerciseGoal class

As a team, we also had to decide on what external libraries and APIs to be used and how to implement everything. We found an exercise database that is free to use and covered under a creative commons license, meaning we are able to both edit and re-distribute any of the contents. We will also use Google's Firebase to provide users with an online data backup service, as well as a library to produce data visualizations including many types of graphs and charts.

The final section of the technical document that I worked on was a complete overview. This section is essentially a summary of the rest of the technical document and gives a good description of the purpose and operation of our app:

    "RepAdvisor is an Android application developed in Java using object oriented programming practices. The app will use both local storage and a cloud database to store app and user information to provide a seamless experience that does not use too much storage on the local device. Several third-party libraries will be used to implement data visualization and source exercise descriptions and visuals. The application’s class structure centers around a list of the user’s goals. Each exercise goal includes a workout program that is generated to meet said goal, which in turn generates a list of individual routines that the user is expected to perform. Each workout routine will include a list of sets which detail the specific weight and reps completed for the target exercise."

Once the technical document was completed, the next item to finish was our wireframe. Previously, the team each worked on their own individual sections of the wireframe, but now, it was time to combine everything into one file. I worked with Kyle to merge all the separate files into one concise document. This involved creating new sections, integrating previous feedback, and streamlining the user interface experience to make the app as easy to understand and navigate as possible.

Current version of wireframe in Adobe XD

The last element I was able to work on was our team's Trello board. This is our main progress tracker and to-do list for everything that has to happen in our project. As a team, we took some time to list out every feature that has to be developed, decide on its importance, and set a timeline for everything that has to be completed. We created a schedule to follow for the next four months that will allow us to complete development by the end of our degree program at Full Sail.