01 / 02 / 2018 @ DEIB
GIOVANNI FILAFERRO 898594 giovanni.filaferro@mail.polimi.it FILIPPO CALZAVARA 898526 filippo.calzavara@mail.polimi.it BENEDETTO MARIA NESPOLI 898884 benedettomaria.nespoli@mail.polimi.it
01 / 02 / 2018 @ DEIB FILIPPO CALZAVARA GIOVANNI FILAFERRO - - PowerPoint PPT Presentation
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
01 / 02 / 2018 @ DEIB
GIOVANNI FILAFERRO 898594 giovanni.filaferro@mail.polimi.it FILIPPO CALZAVARA 898526 filippo.calzavara@mail.polimi.it BENEDETTO MARIA NESPOLI 898884 benedettomaria.nespoli@mail.polimi.it
SOFTWARE ENGINEERING II
01 / 02 / 2018 @ DEIB
GIOVANNI FILAFERRO 898594 giovanni.filaferro@mail.polimi.it FILIPPO CALZAVARA 898526 filippo.calzavara@mail.polimi.it BENEDETTO MARIA NESPOLI 898884 benedettomaria.nespoli@mail.polimi.it
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
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
An event has recently become unreachable. Open the app to check it out! Pay Attention!
ON TIME / DELAY NOTIFICATIONS
Receive notifications if events will become unreachable.
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
OF THE PROJECT
EVENTS STRUCTURE
EVENTS FLEXIBLE FIXED
EVENTS STRUCTURE
EVENTS FLEXIBLE FIXED
LUNCH
SYSTEM ARCHITECTURE
ARCHITECTURAL OVERVIEW
Users Mobile App Heroku Architecture
SYSTEM ARCHITECTURE - CLIENT
CLIENT SIDE
(iOS APP)
Controllers Layer Local Persistent Store Networking REST API Realm
Push Manager ViewControllers
SYSTEM ARCHITECTURE - SERVER
SERVER SIDE
Webserver Application Logic Database
Heroku Architecture
SYSTEM ARCHITECTURE - SERVER
SCHEDULE OPERATION
Initialisation Fetch Data Time Slots Fitting Notification Save Schedule
SCHEDULE - SERVER
TIME SLOTS
EXAMPLE 1
What is a time slot?
SCHEDULE - SERVER
TIME SLOTS
Event 1 - Fixed
(Milan)
9:00 11:00 Event 2 - Fixed
(Pavia)
14:00 17:00 Event 3 - Fixed
(Pavia)
18:00 19:00
EXAMPLE 1
What is a time slot?
SCHEDULE - SERVER
TIME SLOTS
Event 1 - Fixed
(Milan)
9:00 11:00 Event 2 - Fixed
(Pavia)
14:00 17:00 Time Slot (11:00 - 14:00) 3 hours Event 3 - Fixed
(Pavia)
18:00 19:00 Time Slot (17:00 - 18:00) 1 hour
EXAMPLE 1
What is a time slot?
SCHEDULE - SERVER
TIME SLOTS
Event 1 - Fixed
(Milan)
9:00 11:00 Event 2 - Fixed
(Pavia)
14:00 17:00 Time Slot (11:00 - 14:00) 3 hours Event 3 - Fixed
(Pavia)
18:00 19:00 Time Slot (17:00 - 18:00) 1 hour
EXAMPLE 1
What is a time slot?
Event 1 - Fixed
(Milan)
9:00 11:00 Event 2 - Fixed
(Milan)
14:00 14:30
EXAMPLE 2
Why do we need it?
Event 3 - Fixed
(Milan)
15:30 17:00
SCHEDULE - SERVER
TIME SLOTS
Event 1 - Fixed
(Milan)
9:00 11:00 Event 2 - Fixed
(Pavia)
14:00 17:00 Time Slot (11:00 - 14:00) 3 hours Event 3 - Fixed
(Pavia)
18:00 19:00 Time Slot (17:00 - 18:00) 1 hour
EXAMPLE 1
What is a time slot?
Event 1 - Fixed
(Milan)
9:00 11:00 Event 2 - Fixed
(Milan)
14:00 14:30
EXAMPLE 2
Why do we need it?
Event 3 - Fixed
(Milan)
15:30 17:00 Event 4 (Lunch) - Flexible
(Milan) - 40 minutes (10:00 - 15:20)
SCHEDULE - SERVER
TIME SLOTS
Event 1 - Fixed
(Milan)
9:00 11:00 Event 2 - Fixed
(Pavia)
14:00 17:00 Time Slot (11:00 - 14:00) 3 hours Event 3 - Fixed
(Pavia)
18:00 19:00 Time Slot (17:00 - 18:00) 1 hour
EXAMPLE 1
What is a time slot?
Event 1 - Fixed
(Milan)
9:00 11:00 Event 2 - Fixed
(Milan)
14:00 14:30 Time Slot (11:00 - 14:00) 3 hours
EXAMPLE 2
Why do we need it?
Event 3 - Fixed
(Milan)
15:30 17:00 Time Slot (14:30 - 15:20) 50 minutes Event 4 (Lunch) - Flexible
(Milan) - 40 minutes (10:00 - 15:20)
SCHEDULE - SERVER
TIME SLOTS
Event 1 - Fixed
(Milan)
9:00 11:00 Event 2 - Fixed
(Pavia)
14:00 17:00 Time Slot (11:00 - 14:00) 3 hours Event 3 - Fixed
(Pavia)
18:00 19:00 Time Slot (17:00 - 18:00) 1 hour
EXAMPLE 1
What is a time slot?
Event 1 - Fixed
(Milan)
9:00 11:00 Event 2 - Fixed
(Milan)
14:00 14:30
EXAMPLE 2
Why do we need it?
14:40 15:20 Event 3 - Fixed
(Milan)
15:30 17:00 Event 4 - Flexible
(Milan) - 40 minutes
11:10 11:50 Event 4 - Flexible
(Milan) - 40 minutes
SCHEDULE - SERVER
FITTING OPERATION
Event 1 - Fixed
(Milan)
9:00 11:00 Event 2 - Fixed
(Milan)
14:00 14:30
Flexible Fitting
Which time slot is more suitable to host the event?
14:40 15:20 Event 3 - Fixed
(Milan)
15:30 17:00 Event 4 - Flexible
(Milan) - 40 minutes
11:10 11:50 Event 4 - Flexible
(Milan) - 40 minutes
SCHEDULE - SERVER
FITTING OPERATION
Event 1 - Fixed
(Milan)
9:00 11:00 Event 2 - Fixed
(Milan)
14:00 14:30
Flexible Fitting
Which time slot is more suitable to host the event?
14:40 15:20 Event 3 - Fixed
(Milan)
15:30 17:00 Event 4 - Flexible
(Milan) - 40 minutes
11:10 11:50 Event 4 - Flexible
(Milan) - 40 minutes
TIME SLOT ORDERING
The algorithm sorts the time slots starting from the smallest to the largest.
1
CHECK REACHABILITY
The scheduler tries to fit the event in the chosen time slot paying attention to its reachability (Maps API). If It can’t be fitted there, another time slot will be chosen. If no time slots are suitable to fit the event, this one can’t be scheduled.
2
SCHEDULE - SERVER
FITTING OPERATION
More than one flexible event?
Event 1 - Fixed
(Milan)
9:00 11:00 Event 2 - Fixed
(Milan)
14:00 14:30 Event 3 - Fixed
(Milan)
15:30 17:00 Event 4 - Flexible
(Milan) - 40 minutes
Event 5 - Flexible
(Milan) - 20 minutes
SCHEDULE - SERVER
FITTING OPERATION
More than one flexible event?
Event 1 - Fixed
(Milan)
9:00 11:00 Event 2 - Fixed
(Milan)
14:00 14:30 Event 3 - Fixed
(Milan)
15:30 17:00 Event 4 - Flexible
(Milan) - 40 minutes
Event 5 - Flexible
(Milan) - 20 minutes
TRY TO FIT ALL OF THEM
For each event, the scheduler tries to fit it according to its time slots as shown in the previous slide.
2
ORDER FLEXIBLE EVENTS
The scheduler orders the flexible events using the “fittability” function:
1
SCHEDULE - SERVER
FITTING OPERATION
More than one flexible event?
Event 1 - Fixed
(Milan)
9:00 11:00 Event 2 - Fixed
(Milan)
14:00 14:30 Event 3 - Fixed
(Milan)
15:30 17:00 Event 5 - Flexible
(Milan) - 20 minutes
TRY TO FIT ALL OF THEM
For each event, the scheduler tries to fit it according to its time slots as shown in the previous slide.
2
ORDER FLEXIBLE EVENTS
The scheduler orders the flexible events using the “fittability” function:
1
Event 4 - Flexible
(Milan) - 40 minutes
SCHEDULE - SERVER
FITTING OPERATION
More than one flexible event?
Event 1 - Fixed
(Milan)
9:00 11:00 Event 2 - Fixed
(Milan)
14:00 14:30 Event 3 - Fixed
(Milan)
15:30 17:00
TRY TO FIT ALL OF THEM
For each event, the scheduler tries to fit it according to its time slots as shown in the previous slide.
2
ORDER FLEXIBLE EVENTS
The scheduler orders the flexible events using the “fittability” function:
1
Event 4 - Flexible
(Milan) - 40 minutes
Event 5 - Flexible
(Milan) - 20 minutes
LIVE
WRAPPING UP
WRAPPING UP
AFTER TODAY
An event has recently become unreachable. Open the app to check it out! Pay Attention!
GIOVANNI FILAFERRO 898594 giovanni.filaferro@mail.polimi.it FILIPPO CALZAVARA 898526 filippo.calzavara@mail.polimi.it BENEDETTO MARIA NESPOLI 898884 benedettomaria.nespoli@mail.polimi.it
01 / 02 / 2018 @ DEIB
QUESTIONS?
GIOVANNI FILAFERRO 898594 giovanni.filaferro@mail.polimi.it FILIPPO CALZAVARA 898526 filippo.calzavara@mail.polimi.it BENEDETTO MARIA NESPOLI 898884 benedettomaria.nespoli@mail.polimi.it
01 / 02 / 2018 @ DEIB