Version History Date Author Version Changes made Rationale 10/10/2016 AO 1.0 Original Initial draft for FC package 10/17/2016 AO 2.0 Added information to the tables Made changes to the diagrams based on feedback from presentation. FCP Version 11/30/2016 AO 2.5 Added section 3,4,5 Missing sequence diagrams (4.1.3) DCP Version 12/04/2016 AO 3.0 Included sequence diagrams Completed section 4.1.3 DCP Final Version
Design Rationale App Fokcus is going to be integral in the near future for up and coming entrepreneur to develop their own skill sets as well as their respective companies. Therefore, it is vital for the modern entrepreneur to be able to access our application from anywhere through their phone. As mentioned above, we hope that all aspiring or existing entrepreneur will use our application to help him/her to achieve his or her respective goals. Our iOS application uses the architecture pattern. It helps us separate our application into 3 parts: UI Storyboard in Xcode Logic AWS Lambda: Matching Algorithm and functionalities Storage Amazon Firebase : Storing all the data The UI, which is built using Xcode and Swift, utilizes the MVC architecture to present the data it fetched and received from firebase and AWS respectively. The logic level is in charge of the matching algorithm functionality as well as other functionalities such as logging in, deleting accounts and signing up. The last section, Storage, is used to store and retrieve information from our database. Using API calls and our server data will be transferred to the application. We chose firebase because it uses a NO-SQL database, which is easier and better to implement, as the data gets large.
Architectural Styles, Patterns and Frameworks : Architectural Styles, Patterns, and Frameworks Name Description Benefits, and Limitations Three-tier Architecture This architecture supports the idea of keeping our functionally, data and UI separate. The UI is being designed using MVC architecture in Xcode. However the functionally such as our matching algorithm that is used by our application is being provided by the AWS Lambda server which in return fetches its data from Google Firebase Database. Benefits: Easy to use Makes our application truly mobile the data flow organized MVC Architecture This is a software design pattern that assists in creating user interface on devices when designing with It divides the software application into 3 parts, the model, view and controller. The model manages the data and logic. The view is the output and representation of the data. The controller is the intermediary that accepts and converts data for the view and model. Benefits: Easy to use the code clean Maintenance: The separation keeps the maintenance to a minimum and if there’s any it is easy to apply Cost: Free Firebase Database Firebase is a mobile and web application platform with and infrastructure designed to help developers build high-quality apps. Firebase is made up of complementary features that developers can mix-and-match to fit their needs As described in: https://firebase.google.com/ Benefits: Easy to use Stores all the data we need Cost: Free at the beginning Cost effective compared to the competition Cocapods CocoaPods is a dependency manager for It makes it easier to use 3 party frameworks such as Firebase and AWS Benefits: Easy to use Takes care of the integration for us