18
ClimberzzAssist Design Document Elena Cuevas+Cobo Mayur Katariya Devendra Kumar Lavaniya Debatri Mitra Melwin James Poovakottu

ClimbingRoutes

Embed Size (px)

Citation preview

Page 1: ClimbingRoutes

ClimberzzAssist,Design,Document,

,

! !

Elena!Cuevas+Cobo!Mayur!Katariya!

Devendra!Kumar!Lavaniya!Debatri!Mitra!

Melwin!James!Poovakottu!!

Page 2: ClimbingRoutes

Table,of,Contents,

REVISION(HISTORY( 3!

INTRODUCTION( 4!

FEATURES(OF(MVP(AND(FUTURE(VERSIONS( 5!

USE(CASES(AND(FLOW(DIAGRAM( 7!

USE(CASES( 7!FLOW(DIAGRAM( 7!

E/R(DIAGRAM( 9!

ENTITIES( 9!IMPORTANT(RELATIONS( 9!

ARCHITECTURE(DIAGRAM( 10!

PRESENTATION(LAYER( 10!APPLICATION/(BUSINESS(LAYER( 10!DATA(LAYER( 11!LOCAL!DATASTORE! 11!SUPPORT!INFRASTRUCTURE/!SERVICES!(BACKEND)! 11!ADDITIONAL(SERVICES( 11!

APPENDICES( 12!

APPENDIX(A:(FLOW(DIAGRAM( 13!APPENDIX(B:(E/R(DIAGRAM( 15!APPENDIX(C:(ARCHITECTURE(DIAGRAM( 17!!

Page 3: ClimbingRoutes

Revision History !Version! Changes!Made! Date! Revised!By!1.0! Document!Creation! 05/26/2015! Elena!Cuevas!! ! ! !!!

Page 4: ClimbingRoutes

Introduction !Mountaineering! is! not! an! easy! job.! In! order! to! climb! the! mountains,! climbers! need! to! know!various!aspects!related!to!a!particular!mountain!like!the!type!of!mountain,!best!routes!to!climb!those!mountains,!difficulty!level!of!climbing,!various!weather!conditions!at!different!points!in!the!mountains! and!most! importantly! sometimes! it! is! very! important! to! get! the! reviews! of! various!other! mountain! climbers! that! have! already! climbed! a! particular! mountain! in! order! to! plan! a!particular!hike.!!With! the!advent!of!new!technologies! in!mobile!applications!and! the! idea!of!crowdsourcing! the!life!of!human!being!has!become!very!convenient!yet!there!are!no!mobile!applications!that!can!help!mountain!climbers!to!plan!a!successful!hike!on!a!mountain.!Therefore,!in!order!to!solve!this!big!problem,!we!suggest!a!mobile!application!+!ClimberzzAssist!that!can!help!mountain!climbers!to!plan!and!navigate!various!trips!in!order!to!successfully!climb!different!mountains!while!taking!various! constraints! into! consideration! like! limited! internet! connectivity! and! battery! life! that!climbers!need!to!deal!with.!!

Page 5: ClimbingRoutes

Features of MVP and Future Versions !While!designing! the!application!we!came!through!various! features.!We!prioritized!some!of! the!features!for!Minimum!Viable!Product!(MVP)!as!version1.0!and!some!of!the!extra!features!as!an!addition!to!the!MVP!for!future!versions!of!the!app.!!Following!are!the!features!in!ClimberzzAssist!for!version!1.0!(MVP):!!

1.! Crowdsourcing:!Crowdsourcing!is!one!of!the!most!important!features!for!our!mountain!climber! application,! since! a! climber! is! interested! in! reviews! of! some! of! the! other!mountain!climbers!who!have!done!the!trek!on!a!particular!mountain!before.!This!allows!himself!or!herself!to!prepare!for!the!trek!and!to!get!some!idea!beforehand!or!in!real!time!about! the! trek! as! to! what! to! expect! in! that! particular! route.! Through! crowdsourcing!people!can!post!various!reviews.!This!reviews!can!include!various!attributes,!such!as!!

i.! Total!number!of!miles!for!a!particular!trek!ii.! Elevation!of!a!mountain!iii.! Overall!difficulty!level!of!climbing!iv.! Various!photos!and!videos!of!natural!beauty!that!one!can!expect!on!those!

mountains!v.! Difference!in!weather!conditions!at!different!points!on!mountain!vi.! Permit!information!that!is!required!beforehand!!vii.! Wildlife!!viii.! Available!camping!places!on!those!mountain!

!2.! Planning:!Our! application! should! also! allow! the! mountain! climbers! to! plan! their! trip!

beforehand!so!all! the!above!crowdsourcing! information!can!be!available! to! the!climber!and!he!can!plan!the!trip!as!per!his!convenience.!This!planning!is!done!in!advance,!so!we!are!assuming!that!the!user!will!have!internet!connection!throughout!this!planning!phase.!Once!the!user!explores!various!route!options!and!mountains!and!decides!which!trek!he!likes,!he!will!save! that!particular! trip.!This!saved!treks!will!be!added!to!his!section! “My/Favorite/Routes”,!which!will!be!saved!on!his!personal!phone!so! that!he!can!bring! that!route!in!his!actual!trek!in!offline!mode.!

!3.! Onsite:!In!this!phase,!the!user!is!actually!on!the!trek,!therefore!we!can!assume!he!has!

no!or!very!limited!internet!connectivity.!Taking!this!important!fact!into!consideration,!!we!want! to!make!sure! that! the!user!can!still!be!able! to!access!all! the!saved!routes!on!his!phone! by! storing! them! locally! on! his! phone.! Moreover,! since! a!map! of! the! particular!mountain! will! already! be! available! in!mobile! offline,! the!ClimberzzAssist! app! will! also!show!his! current! location!on! the! trek!and! routes! in! case!a!climber!decides! to! follow!a!custom!track!on!his!own! thanks! to! the!ability!of! the!GPS!on! the!phone! to!work!offline.!This!features!allows!users!to!use!this!app!in!offline!mode!and!also!is!optimized!for!power!consumption,!considering!the! important! fact! that! the!user!has! limited!battery! life!on!his!mobile!phone!during!the!trek.!

Page 6: ClimbingRoutes

4.! Visual:!Predominantly!for!MVP!it!is!a!visually!oriented!app!that!shows!all!the!necessary!required!visuals!in!order!to!perform!the!trek!successfully.!

!Below! are! the! features! that! we! have! considered! an! extension! to! our! MVP! for! Version! 2! of!ClimberzzAssist:!!

1.! Health!Tracker:!Allowing!the!mobile!app!to!connect!with!various!health!tracking!devices!like! smart! watches! that! can! track! various! health! related! issue! like! heartbeats,! blood!pressure,!calories!burned,!oxygen!level,!etc.!on!the!go.!

!2.! Audio!Features:!Allowing!the!app!to!pronounce!all! the!information!related!to!the!route!

on! the! real! time!while! climber! is! doing! his! trek! so! that! he! can! get! all! the! information!about! the!route! through!speakers!or!headphones.!As!a!result!of! this!audio! feature,! the!user!won’t!need!to!look!at!his!mobile!phone!again!and!again,!avoiding!distractions!while!climbing!the!mountain.!

!!

3.! One! click! emergency! services:! This! feature! allows! users! to! actually! call! any!emergency! services! like! 911! on! just! one! click! of! the! button!within! the! app! itself.! This!emergency! services! will! be! using! satellite! services! since! user! will! not! have! network!connectivity!on!the!mountains.!

!4.! Social!Media:!This! feature!will!allow! integrating!ClimberzzAssist! to!other!social!media!

sites!like!Facebook,!Flicker,!Twitter,!Pinterest,!etc.!so!that!user!can!post!various!status,!pictures!and!others!directly!from!within!the!app!!

Page 7: ClimbingRoutes

Use Cases and Flow Diagram !

Use Cases

!There!are!two!main!Use!Cases!that!we!need!to!consider!for!this!App.!

1.! The!Planning!Phase:!When!a!user! is!not! in! the!hiking!site!but! is!planning! to!go! for!a!trip.!In!the!phase!the!user!needs!to!have!access!to!all!the!information!needed!to!decide!which!mountain!route/trail!he!or!she!will!be!hiking.!!

2.! The!Onsite!trekking!phase:!In!this!phase!the!user!is!on!his!hiking!route/trail!which!he!decided! using! the! planning! phase.! In! the! phase! the! user! needs! to! have! information!about!the!route,!his!current!location,!the!route!he!has!taken,!demographics!of!the!route!etc.!

!

Flow Diagram

!Exhibit!!!

Appendix!A:!Flow!Diagram!!gives!a!basic!representation!of!the!visual!Flow!Diagram.!Following!there!is!a!short!description!of!the!different!stages!of!the!application.!!Login!The!App!initially!asks!the!user!to!sign!up!or!login.!Next!the!user!is!presented!with!two!options!!

1)! The!Plan!routes!button!2)! My/Saved/Routes!button.!

!The!Plan!Routes.!On!Clicking! the! plan! routes! button! the! user! is! taken! to! a! page!with! a! search! bar! and! some!suggested!nearby!popular!hiking!destinations.!The!user! can!either! search! for!a! location!on! the!search!bar!or! click!on!one!of! the!suggested!locations.!!Then!the!user!is!taken!to!the!page!which!list!a!number!of!routes!crowdsourced!by!other!users!for!that!particular!locations!!On!clicking!one!of!the!routes!the!user!is!taken!to!a!page!which!gives!detailed!information!about!the!routes!like!Path,!reviews,!photos,!rating,!difficulty!etc.!!On!this!page!the!star!button!saves!the!route!to!the!My/Saved/Routes.!

Page 8: ClimbingRoutes

!My!Saved!Routes!On!click!the!My/Saved/Routes!on!the!start!page!takes!you!to!the!list!of!routes!you!have!saved.!On!click!any!one!of! the! routes! the!app!assumes! that!you!are!on! the!hiking!site! ready! to!start!hiking.!The!detailed!information!of!the!path!of!the!hike!is!given!in!this!page.!!On!clicking!the!button!Climb!!the!app!indicates!that!the!users!has!started!his!climb!and!the!app!starts!to!track!his!movements.!Now!the!app!displays! the!path!saved! in! the!saved!route!and!also! the!route! taken!by! the!user!using!different!colors.!Once!the!hike!is!completed!the!user!can!save!the!route!as!a!new!route!or!can!write!a!review!about!it.!

Page 9: ClimbingRoutes

E/R Diagram !

Entities

!User!Authentication! is!very! important! for!any!app!due! to!security! reasons.!The!User!Entity! requires!an!user!to!login!to!the!system!providing!certain!personal!information!and!by!creating!an!account!using!user!id!and!password.!!Mountain!It!contains!the!name!of!the!mountain!along!with!the!location.!“Location”!here!is!a!keyword!as!we!focus! on! the! feature! to! narrow! down! the! search! to! the! mountains! located! near! the! user!(Location! of! User! by! GPS)! or! to! a! particular! area! where! the! user! is! interested! in! for!mountaineering.!!!Routes!It! contains! all! the! routes! corresponding! to! a! particular! mountain! including! the! relevant!information! about! each! route! such! as! the! starting! and! ending! points,! the! trails,! miles! and!elevation!and!also!the!Permit!Information!by!the!Government!(if!any).!!Review!It! is! the! review! about! a! particular! route! corresponding! to! a! particular! user.! It! contains! the!difficulty!level,!weather!conditions!(changes!in!weather!according!to!elevation),!special!camping!areas,!wildlife!scenario!in!the!path,!difficulty!level!and!comments.!!Media!This!entity!contains!the!images!uploaded!by!the!mountaineers!attached!to!the!reviews.!!!

Important Relations

!Saved!Routes!This! relation!contains! just! the!saved!routes!corresponding! to!a!particular!user.!When!the!user!plans!to!go!for!mountaineering!he!plans!ahead!and!he!goes!online!to!do!a!research!on!all!the!possible! routes! he! can! take! corresponding! to! a! particular! mountain.! This! comes! from! the!crowdsource! database! where! all! the! route! information! for! a! particular! mountain! are! stored.!Keeping! in!mind!that! there!will!be!no! internet!connection!once! in!the!mountain!the!path!which!the!user!wants!to!follow!must!be!stored!in!a!local!database!in!the!system!he!uses.!!This!entity!contains!those!saved!routes.!!!

Appendix!B:!E/R!Diagram!

Page 10: ClimbingRoutes

Architecture Diagram !Like!any!other!mobile!based!application,!the!architectural!design!of!our!app!can!be!broadly!categorized!into!two!set!of!components!:!

1.! Client+side!application!and!its!components!!2.! Support!Infrastructure!(Server+side)!and!services!

!!!

Appendix!C:!Architecture!Diagram !!ClimberzzAssist! essentially! has! a! rich! client! side! application! structured! with! multilayered!components! i.e! Presentation! Layer,! Application/Business! Layer! and! Data! layer,! which! are!responsible!for!different!aspects!of!the!application.!Additionally!there!is!a!support!infrastructure!providing!backend!database!services!as!well!as! third!party!service!data!accessed!by!external!APIs.!Various!components!are!described!in!more!detail!below.!!

Presentation Layer

!Presentation!layer!is!the!top!layer!of!client!application!which!is!used!by!end!user!for!interacting!with!the!application,!so!it!is!responsible!for!clearly!defining!all!the!UI!elements!that!are!needed!to!make!the!application!work!as!expected.!As!explained!in!detail!with!the!flow!diagram,!we!have!various!UI!elements! like!Search!Box,!Lists!with! rich! information,!Sliders,!Navigational!buttons!etc.!Additionally,!UI!presentation!logic!is!well!defined,!describing!what!elements!performs!which!action!to!offer!best!user!experience!with!less!clutter!and!easy!to!understand!UI!flow.!As!this!app!is!primarily!a!visual!app,!we!choose! to!go!with!a!simple!design!where!most!of! the!userspace!shows!relevant!and!useful! information!in!a!visually!pleasing!manner!and!all!secondary!options!and!functions!are!kept!hidden!or!subsided!and!only!visible!when!needed.!!!

Application/ Business Layer

!Application!or!business!layer!defines!all!major!functionalities!that!our!application!is!designed!to!perform,!the!business!logic!behind!why!we!chose!to!include!all! these!functionalities!as!well!as!various! use+cases! and! entities! for! the! application.! Our! app! is! primarily! a! crowdsourced! data!analytics! app! which! statically! determines! all! the! best! routes! to! the! different! treks! using!accumulated! data,! the! application! workflow! and! business! logic! revolves! around! how! to!efficiently! store! and! retrieve! data! from! the! backend! and! intelligently! analyze! to! provide! best!routes,!not!caring!about!the!real+time!latency!issue!at!first.!Additionally!the!primary!use+case!for!the!application! is!providing!a!quick!and!efficient!way! for! the!mountaineers! to! look! for! the!best!routes! to! their! next! trek! and! at! the! same! time,! developing! a! community+driven! platform! for!sharing!experiences!and!vital!information.!!

Page 11: ClimbingRoutes

!

Data Layer

!This!is!the!lowest!layer!in!client!application!which!is!responsible!for!dealing!with!the!upload!and!download!of!data.!In!this!application!,we!are!primarily!dealing!with!three!types!of!data!flow!within!the!application.!Most!of!the!data!is!the!crowdsourced!data,!which!is!downloaded!by!the!user!and!saved! under! ‘My!Saved!Routes’! to! have! the! information! ready! on! his! device! (stored! locally).!Also,! there! is! data! flow! from! the! user’s! device! to! the! backend!when! he/she! uploads! custom!routes! and! participate! in! crowdsourcing.! Finally! there! is! external! data! from! third! party!applications!like!Google!Maps!and!imaging!services!like!Flickr!is!downloaded!by!the!app!using!external!APIs.!!!!!!!

Local DataStore

!To!facilitate!offline!mode!of!operation,!client!device!maintains!a! local!database!where! it!stores!all!the!pertinent!information!from!the!backend!crowdsourced!data!for!the!routes!saved!under!the!user’s! ‘My!Saved!Routes’.!Also!a!backup!is!maintained!at! the!user’s!personal!cloud!space!(or!user’s!preference!like!google!drive,!dropbox!etc)!for!quick!access.!Also!the!latest/current!route!is!also!saved!in!fast!access!cache!memory!when!the!user!starts!to!trek.!!!

Support Infrastructure/ Services (BackEnd)

!All! the! crowdsourced! data! is! uploaded! to! an! external! high+capacity! and! highly! available!proprietary!database,!where!all!data!is!collected,!organized!,!analyzed!and!processed!for!quick!access! and!ensures! that! user! always! gets! the! accurate! information.!Various! complex! access!and! data! analytics! techniques! are! needed! to! be! used! for! this! purpose.! Additional! third! party!application! and! services! are! connected! with! our! application! using! well! defined! APIs! to! get!various!supplementary!information.!For!instance,!Google!Maps!and!Flickr!data!can!be!used!to!support!our!application’s!navigation!and!media!needs.!!!

Additional Services

!Apart!from!all!core!functionalities,!some!common!functionalities!are!needed!to!be!employed.!For!instance,!User!Authentication!and!personalization!services!is!added!to!the!application!to!make!sure!all! user+specific! data! is! safe!and!easily! accessible! by! the!end+user! in! the! format! he/she!desires.!Additionally!communication!and!connectivity!services!are!vital! in!some!scenarios.!For!instance,!GPS!is!needed!during!active!trek!as!well!as!planning!phase!to!capture!user’s!location.!One!click!access!to!emergency!call!functionality!is!desirable.!!!!!!!!

Page 12: ClimbingRoutes

Appendices !

Page 13: ClimbingRoutes

Appendix A: Flow Diagram

Page 14: ClimbingRoutes
Page 15: ClimbingRoutes

Appendix B: E/R Diagram

Page 16: ClimbingRoutes
Page 17: ClimbingRoutes

Appendix C: Architecture Diagram

!

!!

Page 18: ClimbingRoutes