01 / 02 / 2018 @ DEIB FILIPPO CALZAVARA GIOVANNI FILAFERRO - - PowerPoint PPT Presentation

01 02 2018 deib
SMART_READER_LITE
LIVE PREVIEW

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


slide-1
SLIDE 1

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

slide-2
SLIDE 2

TRAVLENDAR+

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

slide-3
SLIDE 3
slide-4
SLIDE 4
slide-5
SLIDE 5
slide-6
SLIDE 6

MAIN GOALS

OF THE PROJECT

slide-7
SLIDE 7

MAIN GOALS

slide-8
SLIDE 8

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

  • n time.
slide-9
SLIDE 9

MAIN GOALS

slide-10
SLIDE 10

MAIN GOALS

slide-11
SLIDE 11

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.

slide-12
SLIDE 12

MAIN GOALS

slide-13
SLIDE 13

MAIN GOALS

slide-14
SLIDE 14

MAIN GOALS EVENT DETAILS WITH ROUTES

The system automatically creates custom routes based on preferences, traffic and other options.

slide-15
SLIDE 15

MAIN GOALS

slide-16
SLIDE 16

MAIN GOALS

slide-17
SLIDE 17

MAIN GOALS MAP VIEWS

Have a look at the appointments right from an In-App Map.

slide-18
SLIDE 18

MAIN GOALS

slide-19
SLIDE 19

MAIN GOALS

slide-20
SLIDE 20

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.

slide-21
SLIDE 21

MAIN GOALS

slide-22
SLIDE 22

MAIN GOALS

slide-23
SLIDE 23

MAIN GOALS HIGHLY CUSTOMISABLE SETTINGS

People are allowed to customise pretty much everything. Adding Calendars, public transportation travel times and much more.

slide-24
SLIDE 24

MAIN GOALS

slide-25
SLIDE 25
slide-26
SLIDE 26

TECHNICAL SIDE

OF THE PROJECT

slide-27
SLIDE 27

EVENTS STRUCTURE

EVENTS FLEXIBLE FIXED

slide-28
SLIDE 28

EVENTS STRUCTURE

EVENTS FLEXIBLE FIXED

LUNCH

slide-29
SLIDE 29

SYSTEM ARCHITECTURE

ARCHITECTURAL OVERVIEW

Users Mobile App Heroku Architecture

slide-30
SLIDE 30

SYSTEM ARCHITECTURE - CLIENT

CLIENT SIDE

(iOS APP)

Controllers Layer Local Persistent Store Networking REST API Realm

Push Manager ViewControllers

slide-31
SLIDE 31

SYSTEM ARCHITECTURE - SERVER

SERVER SIDE

Webserver Application Logic Database

Heroku Architecture

slide-32
SLIDE 32

SYSTEM ARCHITECTURE - SERVER

SCHEDULE OPERATION

Initialisation Fetch Data Time Slots Fitting Notification Save Schedule

slide-33
SLIDE 33

SCHEDULE - SERVER

TIME SLOTS

EXAMPLE 1

What is a time slot?

slide-34
SLIDE 34

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?

slide-35
SLIDE 35

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?

slide-36
SLIDE 36

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

slide-37
SLIDE 37

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)

slide-38
SLIDE 38

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)

slide-39
SLIDE 39

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

slide-40
SLIDE 40

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

slide-41
SLIDE 41

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

slide-42
SLIDE 42

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

slide-43
SLIDE 43

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

slide-44
SLIDE 44

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

slide-45
SLIDE 45

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

slide-46
SLIDE 46
slide-47
SLIDE 47

DEMO

LIVE

slide-48
SLIDE 48

WRAPPING UP

slide-49
SLIDE 49

WRAPPING UP

slide-50
SLIDE 50
slide-51
SLIDE 51

FUTURE PERSPECTIVE

AFTER TODAY

An event has recently become unreachable. Open the app to check it out! Pay Attention!

slide-52
SLIDE 52

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

slide-53
SLIDE 53

THANKS FOR THE ATTENTION

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