01 / 02 / 2018 @ DEIB FILIPPO CALZAVARA GIOVANNI FILAFERRO BENEDETTO MARIA NESPOLI 898526 898594 898884 filippo.calzavara@mail.polimi.it giovanni.filaferro@mail.polimi.it benedettomaria.nespoli@mail.polimi.it
01 / 02 / 2018 @ DEIB T RAVLENDAR + SOFTWARE ENGINEERING II FILIPPO CALZAVARA GIOVANNI FILAFERRO BENEDETTO MARIA NESPOLI 898526 898594 898884 filippo.calzavara@mail.polimi.it giovanni.filaferro@mail.polimi.it benedettomaria.nespoli@mail.polimi.it
MAIN GOALS OF THE PROJECT
MAIN GOALS
MAIN GOALS IMMERSIVE USER EXPERIENCE Let people interact with the application in the most familiar way. SECURE ACCOUNTS The app does not require login, just open it up and it synchronises across all the iCloud devices. DAILY SCHEDULE The system automatically checks reachability of events so people can arrange their timetable to arrive always on time.
MAIN GOALS
MAIN GOALS
MAIN GOALS EVENT EDITING / CREATION Events can be created or modified through an unique interface, fast and intuitive. ALLOW REPETITIONS Events Repeating? No Problem, this app supports also repetitions. PERSONALISED TRANSPORTATION MEANS People can choose from a variety of transport means so that they can control the way they reach appointments.
MAIN GOALS
MAIN GOALS
MAIN GOALS EVENT DETAILS WITH ROUTES The system automatically creates custom routes based on preferences, traffic and other options.
MAIN GOALS
MAIN GOALS
MAIN GOALS MAP VIEWS Have a look at the appointments right from an In-App Map.
MAIN GOALS
MAIN GOALS
MAIN GOALS ON TIME / DELAY NOTIFICATIONS Receive notifications if events will become unreachable. Pay Attention! An event has recently become unreachable. Open the app to check it out!
MAIN GOALS
MAIN GOALS
MAIN GOALS HIGHLY CUSTOMISABLE SETTINGS People are allowed to customise pretty much everything. Adding Calendars, public transportation travel times and much more.
MAIN GOALS
TECHNICAL SIDE OF THE PROJECT
EVENTS STRUCTURE EVENTS FLEXIBLE FIXED
EVENTS STRUCTURE EVENTS FLEXIBLE LUNCH FIXED
SYSTEM ARCHITECTURE ARCHITECTURAL OVERVIEW Users Mobile App Heroku Architecture
SYSTEM ARCHITECTURE - CLIENT CLIENT SIDE (iOS APP) REST API Realm Networking Local Persistent Store Push Manager ViewControllers Controllers Layer
SYSTEM ARCHITECTURE - SERVER SERVER SIDE Webserver Application Logic Database Heroku Architecture
SYSTEM ARCHITECTURE - SERVER SCHEDULE OPERATION Fetch Data Initialisation Time Slots Notification Save Schedule Fitting
SCHEDULE - SERVER TIME SLOTS EXAMPLE 1 What is a time slot?
SCHEDULE - SERVER TIME SLOTS EXAMPLE 1 What is a time slot? 9:00 Event 1 - Fixed (Milan) 11:00 14:00 Event 2 - Fixed (Pavia) 17:00 18:00 Event 3 - Fixed (Pavia) 19:00
SCHEDULE - SERVER TIME SLOTS EXAMPLE 1 What is a time slot? 9:00 Event 1 - Fixed (Milan) 11:00 Time Slot (11:00 - 14:00) 3 hours 14:00 Event 2 - Fixed (Pavia) Time Slot 17:00 (17:00 - 18:00) 18:00 1 hour Event 3 - Fixed (Pavia) 19:00
SCHEDULE - SERVER TIME SLOTS EXAMPLE 1 EXAMPLE 2 What is a time slot? Why do we need it? 9:00 9:00 Event 1 - Fixed Event 1 - Fixed (Milan) (Milan) 11:00 11:00 Time Slot (11:00 - 14:00) 3 hours 14:00 14:00 Event 2 - Fixed Event 2 - Fixed (Milan) (Pavia) Time Slot 14:30 17:00 (17:00 - 18:00) 18:00 1 hour Event 3 - Fixed (Pavia) 19:00 15:30 Event 3 - Fixed (Milan) 17:00
SCHEDULE - SERVER TIME SLOTS EXAMPLE 1 EXAMPLE 2 What is a time slot? Why do we need it? 9:00 9:00 Event 1 - Fixed Event 1 - Fixed (Milan) (Milan) 11:00 11:00 Time Slot (11:00 - 14:00) Event 4 (Lunch) - Flexible 3 hours (Milan) - 40 minutes (10:00 - 15:20) 14:00 14:00 Event 2 - Fixed Event 2 - Fixed (Milan) (Pavia) Time Slot 14:30 17:00 (17:00 - 18:00) 18:00 1 hour Event 3 - Fixed (Pavia) 19:00 15:30 Event 3 - Fixed (Milan) 17:00
SCHEDULE - SERVER TIME SLOTS EXAMPLE 1 EXAMPLE 2 What is a time slot? Why do we need it? 9:00 9:00 Event 1 - Fixed Event 1 - Fixed (Milan) (Milan) 11:00 11:00 Time Slot Time Slot (11:00 - 14:00) (11:00 - 14:00) Event 4 (Lunch) - Flexible 3 hours 3 hours (Milan) - 40 minutes (10:00 - 15:20) 14:00 14:00 Event 2 - Fixed Event 2 - Fixed (Milan) (Pavia) Time Slot 14:30 17:00 (17:00 - 18:00) Time Slot 18:00 1 hour (14:30 - 15:20) Event 3 - Fixed 50 minutes (Pavia) 19:00 15:30 Event 3 - Fixed (Milan) 17:00
SCHEDULE - SERVER TIME SLOTS EXAMPLE 1 EXAMPLE 2 What is a time slot? Why do we need it? 9:00 9:00 Event 1 - Fixed Event 1 - Fixed (Milan) (Milan) 11:00 11:00 11:10 Event 4 - Flexible (Milan) - 40 minutes 11:50 Time Slot (11:00 - 14:00) 3 hours 14:00 14:00 Event 2 - Fixed Event 2 - Fixed (Milan) (Pavia) Time Slot 14:30 17:00 (17:00 - 18:00) 14:40 Event 4 - Flexible 18:00 1 hour (Milan) - 40 minutes Event 3 - Fixed 15:20 (Pavia) 19:00 15:30 Event 3 - Fixed (Milan) 17:00
SCHEDULE - SERVER FITTING OPERATION Flexible Fitting Which time slot is more suitable to host the event? 9:00 Event 1 - Fixed (Milan) 11:00 11:10 Event 4 - Flexible (Milan) - 40 minutes 11:50 14:00 Event 2 - Fixed (Milan) 14:30 14:40 Event 4 - Flexible (Milan) - 40 minutes 15:20 15:30 Event 3 - Fixed (Milan) 17:00
SCHEDULE - SERVER FITTING OPERATION Flexible Fitting Which time slot is more suitable to host the event? 9:00 Event 1 - Fixed (Milan) TIME SLOT ORDERING 11:00 1 11:10 The algorithm sorts the time slots starting from Event 4 - Flexible the smallest to the largest. (Milan) - 40 minutes 11:50 CHECK REACHABILITY The scheduler tries to fit the event in the chosen time slot 14:00 2 paying attention to its reachability (Maps API). Event 2 - Fixed If It can’t be fitted there, another time slot will be chosen. (Milan) 14:30 If no time slots are suitable to fit the event, this one can’t 14:40 Event 4 - Flexible be scheduled. (Milan) - 40 minutes 15:20 15:30 Event 3 - Fixed (Milan) 17:00
SCHEDULE - SERVER FITTING OPERATION More than one flexible event? 9:00 Event 1 - Fixed (Milan) 11:00 Event 4 - Flexible (Milan) - 40 minutes Event 5 - Flexible (Milan) - 20 minutes 14:00 Event 2 - Fixed (Milan) 14:30 15:30 Event 3 - Fixed (Milan) 17:00
SCHEDULE - SERVER FITTING OPERATION More than one flexible event? 9:00 Event 1 - Fixed (Milan) ORDER FLEXIBLE EVENTS 11:00 1 The scheduler orders the flexible events using the Event 4 - Flexible (Milan) - 40 minutes “fittability” function: Event 5 - Flexible (Milan) - 20 minutes 14:00 TRY TO FIT ALL OF THEM Event 2 - Fixed (Milan) 2 For each event, the scheduler tries to fit it 14:30 according to its time slots as shown in the previous slide. 15:30 Event 3 - Fixed (Milan) 17:00
SCHEDULE - SERVER FITTING OPERATION More than one flexible event? 9:00 Event 1 - Fixed (Milan) ORDER FLEXIBLE EVENTS 11:00 1 The scheduler orders the flexible events using the Event 4 - Flexible “fittability” function: (Milan) - 40 minutes Event 5 - Flexible (Milan) - 20 minutes 14:00 TRY TO FIT ALL OF THEM Event 2 - Fixed (Milan) 2 For each event, the scheduler tries to fit it 14:30 according to its time slots as shown in the previous slide. 15:30 Event 3 - Fixed (Milan) 17:00
SCHEDULE - SERVER FITTING OPERATION More than one flexible event? 9:00 Event 1 - Fixed (Milan) ORDER FLEXIBLE EVENTS 11:00 1 The scheduler orders the flexible events using the Event 4 - Flexible “fittability” function: (Milan) - 40 minutes 14:00 TRY TO FIT ALL OF THEM Event 2 - Fixed (Milan) 2 For each event, the scheduler tries to fit it 14:30 according to its time slots as shown in the previous Event 5 - Flexible slide. (Milan) - 20 minutes 15:30 Event 3 - Fixed (Milan) 17:00
DEMO LIVE
WRAPPING UP
WRAPPING UP
FUTURE PERSPECTIVE AFTER TODAY Pay Attention! An event has recently become unreachable. Open the app to check it out!
01 / 02 / 2018 @ DEIB FILIPPO CALZAVARA GIOVANNI FILAFERRO BENEDETTO MARIA NESPOLI 898526 898594 898884 filippo.calzavara@mail.polimi.it giovanni.filaferro@mail.polimi.it benedettomaria.nespoli@mail.polimi.it
01 / 02 / 2018 @ DEIB THANKS FOR THE ATTENTION QUESTIONS? FILIPPO CALZAVARA GIOVANNI FILAFERRO BENEDETTO MARIA NESPOLI 898526 898594 898884 filippo.calzavara@mail.polimi.it giovanni.filaferro@mail.polimi.it benedettomaria.nespoli@mail.polimi.it
Recommend
More recommend