MCT TRIATHLON INTERNSHIP MCT Triathlon is a startup company ◦ Focusing on Triathlon coaching They had a limited website to introduce their business Develop an iPhone Application ◦ Generates an exercise plan ◦ Keeps track of user progress Currently everything is done manually… Our Application will change that by: ◦ Helping to organize the company ◦ Eliminating unneeded work ◦ Helping to extend the MCT Triathlon business Client-Server ◦ Client Collect the user’s information Keep track of the user’s progress ◦ Server Generate the exercise plan based on the information Provide alternative plans when the original plan cannot be fulfilled Collect the progress information for the coach Manage the payments What it consists of ◦ Login and registration pages ◦ Questionnaire pages for generating the plan Receiving questions from server Sending information to server ◦ Plan displaying pages Daily, weekly and monthly Options to choose alternative plans ◦ Our hopes and dreams that one day this will pay off Model View Controller ◦ Model contains an abstraction of our data Handles communication to the server ◦ View decides the GUI’s appearance Buttons, Labels, Test fields ◦ Controller handles the components behaviors Observer Design Pattern ◦ Handles communication between the MVC Some challenges we faced: ◦ Learning Objective-C and iPhone programming from scratch ◦ Working in a team ◦ Working with a start up company How we solved them: ◦ Group meetings every week with status updates ◦ Research Objective-C code solutions ◦ Learned/used Xcode Storyboards What it consists of ◦ Databases of user information Basic Account Information Current Exercise Plans Exercise Responses Payment Status ◦ Algorithms/Logic to generate plans ◦ Management console for Coach’s Based on widely-used frameworks ◦ Django Web Framework ◦ Django REST Framework Provide a clear RESTful Interface to the client Model-(Template)-View Model: Queries to database with Django’s ORM Framework View: Use the APIView classes of Django REST Framework to provide a RESTful access to operations Design the algorithm for plan generation ◦ Collaborated with the coach ◦ Create formulas based on the coach’s knowledge Design the models/database structure ◦ How to store the account information ◦ How to store the plans and responses Learn Django and REST interface