100 likes | 202 Views
System Architecture and Wire Frames. Major Modules. Cloud. Personal Data. Phone Interfaces. Routing Data. Rider/Driver. Trip Manager. Browser Interface. Traffic Monitor. Billing System. SMS Service. Google Maps. Mail Service.
E N D
Major Modules Cloud Personal Data Phone Interfaces RoutingData Rider/Driver Trip Manager Browser Interface Traffic Monitor Billing System SMS Service Google Maps Mail Service • Drivers and Riders use a common interface that can run on either a phone (iPhone, Android, SMS) or a browser (Firefox, Explorer, Chrome). We can start with just a browser, usable on smart phones. • Requests for service and profile modification are recorded in the personal data base which is kept synchronized between the interface device and the cloud. • The Trip Manager is communicates with all active users, receiving location information and coordinating real-time communication. • Matches are performed in the Routing Data module which uses Google Maps for basic services but maintains a large graph of all trips planned or requested. • Google Maps is also used to create presentations for the interfaces. • Italics designates outsourced modules. • Not all connections are shown.
BoE Data Requirements • Each user requires a negligible amount of data, easily held on a smart phone: contact information, current co-ordinates, social network, preferences, current plans, past trips • The Routing Data base might be big. • For every existing street segment or planned traverse of a street segment, 103 bytes • Manhattan has over 125 cross streets and 12 avenues, so it has over 2*125*12 = 3,000 street segments • Suppose 10% of our N customers have 20-block trips in the data base at any time. 2*N planned segment traverses. • 103*(3000+2*N) = 3*106+2*103*N = 3*106+2*106*(N/103)= 3 + 2*n MB for n thousand users. • For 1 million users, about 2GB—still not much.
BoE Processing Requirements • We’d like instantaneous response for active users, but network delays will probably dominate, so programming convenience is probably the more important consideration. Dedicate a virtual processor to each one. • Suppose .01% of 106 users are active at a time. Requires 100 processes = 100 HerokuDynos and 100 Heroku Workers. About $6,000 per month.
Ride Offer Start time: Date: Return start time:* (now) (today) Specify Route Start place: (here) Ask per trip: $ End place: Daily Repeat* MTWTF Weekly Make Offer
Ride Request for You Date: <rider’s date> Time: <rider’s time> Start:<rider’s place> End: <rider’s destination> Offer: $ <rider’s offer> Name:<rider’s name>* Cell: <rider’s cell>* Email: <rider’s email>* My Name Send My cell My email Message Yes No Maybe
Ride Request Start time: Date: Return start time:* (now) (today) Start place: (here) End place: Offer per trip: $ Daily Repeat* MTWTF Weekly Request
Title Xxx: Xxx: (preset) (preset) Xxx: (preset) Xxx:* Xxx Xxx Xxx Xxx XXX
Confirm Ride <day><time><start><end><people….> Details: The ride was… aborted good bad Send
Profile Use for real-time communication Set Billing Information (X) Email: Name: Password: Link to Facebook Male Gender* Female Cell Phone: Birthday:* I would drive* I would ride* if it took less than (10) if it took less than (10) extra minutes. extra minutes. (1.00) I would pay the driver $ I would charge the rider $ (1.00) per mile plus $ per mile plus $ (0.00) (0.00) Male Drivers Male Riders Prefer Prefer Female Drivers Female Riders Submit