20
oDrive.info Preamble oDrive is a clientserver software which is made to deal with everyday motion over any geolocation on earth. The major idea is saving user geolocation data on server side which provides numerous different communities groups and private programmes or open extensions to treat with user geolocation data. This is GPS based software with loads of usage cases are availability: 1) if a user just walks round the streets his everyday calories could be calculated and categorized over by 92 google categories automatically. 2) Other case for users who have a car. They can lift somebody for free, at a fixed price or at a price for 1 kilometer. In other words it is Open Taxi functionality but with modern features like statistical information and online taxi observing which increases driver's availability. 3) Third case involves a small box or big cargo shipments. if a user looks for some logistic he/she can just create new trip with <cargo> shipment parameter. After that any registered logistical company or a private driver can perform the transportation for him. 4) And finally the thing which separates beneficial the project from many other is user private roots. Each user can create a private group, invite there friends and spread among them their daily routes. As for the practical use of such software, it could be used by parents to monitor their children or to check the locations of our colleagues are and also to calculate the time that a person needs to get to a certain destination. So that it is possible to assign some task to each other inside the group. Content Landing page Header/Footer User statistics page Personal settings page Driver Monitor page Trip Contract Page Trip Summary Page New trip page EarthPlaces page oDrive Group functionality

ODrive Specification v2-0

Embed Size (px)

DESCRIPTION

fsfsd

Citation preview

Page 1: ODrive Specification v2-0

oDrive.info Preamble

oDrive is a client­server software which is made to deal with everyday motion over any geolocation on earth. The major idea is saving user geolocation data on server side which provides numerous different communities groups and private programmes or open extensions to treat with user geolocation data. This is GPS based software with loads of usage cases are availability:

1) if a user just walks round the streets his everyday calories could be calculated and categorized over by 92 google categories automatically.

2) Other case for users who have a car. They can lift somebody for free, at a fixed price or at a price for 1 kilometer. In other words it is Open Taxi functionality but with modern features like statistical information and online taxi observing which increases driver's availability.

3) Third case involves a small box or big cargo shipments. if a user looks for some logistic he/she can just create new trip with <cargo> shipment parameter. After that any registered logistical company or a private driver can perform the transportation for him.

4) And finally the thing which separates beneficial the project from many other is user private roots. Each user can create a private group, invite there friends and spread among them their daily routes. As for the practical use of such software, it could be used by parents to monitor their children or to check the locations of our colleagues are and also to calculate the time that a person needs to get to a certain destination. So that it is possible to assign some task to each other inside the group. Content

Landing page Header/Footer User statistics page Personal settings page Driver Monitor page Trip Contract Page Trip Summary Page New trip page EarthPlaces page oDrive Group functionality

Page 2: ODrive Specification v2-0

Landing page Portal Start Screen contains:

Portal Logo User's login area block. The New User's Registration block. Video Area block. Links to android/iphone mobile applications. Block of Links to our pages on social networks(FB, linkedIn, Google Circles, etc) User's Interface(UI) must provide possibility to connect with oDrive from social networks

accounts. A couple of slide pictures(1­2) that will introduce users in fundamentals of conception of

oDrive.(this is only UI element). Most rated drivers/passengers and (visited) earth places / voted places.

for user visualises <logo>, <user name>, <driver/passenger> indicator, <user verified> indicator, <rode kilometers> amount, date of registration. for Earth Places visualise <attached image>. In case image is absent just small Map block with marker on it; How much user have visited the place(just number). How much users here right now(just number); The short place description.

World Map with marked user's places where oDrive is have been used. Start destination field/ end destination field Start date Flexible dates checkbox Search button

Page 3: ODrive Specification v2-0

Header and Footer At this moment this looks like this:

The Header contains

Search bar which allows to see users/open groups by <drop down>. logout button. After pressing on this button a user will be redirected to a start page. message box. Here appears a notification on new messages action. In addition an email

will be sent to the user. Invite a friend link. By click on it will open popup with email field and button <invite>. Link to page with advanced user documentation of the project Link to FeedBack/Contacts page.

oDrive has <User notification popup>. It is small informational window which applied to

overall portal. Here will situates some helpful hints which should help to users understand some portal particularities. It should appear in smart way, just by click on small <help icon>. In case with small icon it should be placed anywhere on the portal pages. The icon will appear only <on focus> event.

Page 4: ODrive Specification v2-0

User statistics Page The page consists of:

Panel were time period could be adjusted by Day / Week / Month options and Start date calendar field. It is possible to switch between <User Earth Places Statistic> and <User Routes> views by click on a panel icon.

User Earth Places Statistic bloсk. This block contains 10 places categories which user has visited recently. This categories are automatically calculated lines. Uses is not put any information by his own hands. Everything here is automatically calculated user data which had been provided by server side. One part of the data is providing by mobile phone geolocations. The mobile application sends to server side users latitude, longitude and altitude data pairs over the time when user keep oDrive application ONLINE. Other part of the statistical information is a result of user everydays routine activity operations which oDrive server collects carefully. By click on the category­item user will be able to observe his routes in details. It will be shown on map with markers.

User Routes block. By click on a panel icon the Routes view is shown. Here user routes are displayed by map­markers and schedule­items. oDrive calculates type of places whose had been visited by user and how much time he have spent there. It is visualised on Map by markers and on schedule chart as line­items. In this block user able to see how much hours he or his friend rode anywhere. It is possible to see here detailed information about particular Earth Place: set special name for it, set up an particular category, upload an image and see a list of all already uploaded to the Earth Place images.

Round chart statistic view. It is combination of <Earth Places> and <User Routes>. Here visualise the same statistic splitted by 10 categories as in <Earth Places> bloсk. But by clicking on each round­chunk user will visualise appropriate category route on the map.

CO2 statistic block.

Page 5: ODrive Specification v2-0

Personal settings Page

Here user will be available upload driver license and userAvatar images. Add mobile number, adjust payment settings or execute other types of personal private activities. oDrive use the mobile number to send some confirmation SMS. User will be a verified user only after he had done at least 5 trips by oDrive. As soon as user had done 5­th trip oDrive system will offer 3 payment variants: 5EUR for 10 trips, 10 EUR for half an year, or 15EUR for a year. User can't manage new trips anymore till the moment he won't pay the service fee. Creation of new group will cost for user 1 Euro. But we are going to get rid of this fee in a future. The page consists of:

Advice bloсk is a couple of slide pictures that will introduce users in fundamentals of conception of oDrive. It is only an informational option to one more time explain users how to use oDrive project and where the profit.

User personal information block consist of: (or receive it through social networks); Upload user photo and visualise the avatar. User avatar image url is: http://odrive.info/repository/home/<UID>/userAvatar.jpg Add personal name/surname fields. Age of born fields. Born place. It should be connected with map geocoding. Add additional email. Add mobile phone.

Payments block. Pay by Facebook icon. Pay by Webmoney icon. Pay by credit card icon.

Page 6: ODrive Specification v2-0

Pay by PayPal icon. History of all transactions should be available to visualize. Payment block provide

functionality of cashless funds transferring. So the block specify functionality to transfer certain funds amount into oDrive system. This is means that all funds which are transferred by user into oDrive system could be used to pay for drivers or any other kind of services. Note that only cashless orders with payment under oDrive internal system could have the highest level of user safety and security. The system calculates overall trip route in kilometers and transfers required amount of funds to the driver balance. In case with Fixed Price a Trip could be charged automatically by the end of the particular trip if the option is checked on user profile. Otherwise the payment itself could occur by driver request which user just confirm.

My cars block. This block visualize list of all user registered vehicles. Here is possible add new car block which contains following parameters:

Vehicle Registration Number. Upload Vehicle passport. Upload Vehicle photo. Add Vehicle model field. Add Vehicle engine size field. Add Baggage dimensions field.

User frends. Here situates list of All user friends. Each user­friend item has small icon to invite him into particular <user group>. Each user has an image indicators which visualise if user is a verified user and if user has a vehicle. The user friends could be invited from social networks, or by emails or by oDrive internal groups. Following UI elements becomes available by click on single user­friend item:

show/hide my active(current) geolocation with the user checkbox. show/hide my Statistics with the user checkbox. show hide my routes checkbox. The user last registred geolocation. Messages box. Statistic button. By click on the button user will be redirected to <User Statistics>

page. Here will be visualised completely the same user statistics page except 2 following things: 1) Small User logo image with short personal information should be shown here. 2) If user have no appropriate permissions to see the the friend statistics the message <You have no permissions to see the user statistics> and empty page view should be shown here.

User files block. User can upload any file or image to oDrive Server. All uploaded images should visualise here. For any other files should be visualised a file­icon. By click on particular image it will be expanded(enlarged). By click on file­icon it just download.

Page 7: ODrive Specification v2-0

Driver Monitor Page

There are numerous functional activities available on the screen. The functionality could be switched by UI elements. In case if user was redirected on the screen just without any parameters like from <statistics> or <home> screens here will be shown a marker in the map area which points to the latest registered user geolocation.

User can define his current geoLocational whether via TAP by the map and push button set as current geolocation whether automatically via his mobile GPS device.

Different search results list are provided for <drivers> and <passengers>. By tap on each result item short trip information will be available in small block on the page. By click on <order> button oDrive redirects user to <Trip Contract> page which contains more detailed user, vehicle and the trip information. Trip filter parameters:

• Radius parameter • Passengers quantity • Show/hide other drivers/passengers • Show/Hide free transferring orders • Transportation price • Cash / Сashless parameter • Start date/hour of the transportation • Flexible dates check­box • Max remoteness in kilometers.

The screen contains the map block and the dynamic orders list block.

Trip Contract Page The page contains more detailed user, vehicle and the trip information. By click on <have a deal> button sends information notification message to appropriate users

Page 8: ODrive Specification v2-0

email and mobile phone. The message will be available for reading in <User messages> block of the user personal settings page. The same message will be available for reading on mobile client application. By tap on the <have a deal> button user will be redirected to <trip Summary> page.

• Avatar and personal information. • Car info • Quantity of ridden hours and amount of executed orders. • Map with the root and 2 markers. Note In case of <price for kilometer option> were

chosen the cost of road trip should be calculated and shown. In case <fixed price> were chosen the price should be shown.

• Add short message block. • User reviews / add new review block • Recent user trips list block • User friends • User files block • CO2 info

Trip Summary Page This is informational page which summarize detail from <trip contract> page and contains several suggestions to user what to do next time. See attached examples. New Trip Page The page consists of the map block, new trip parameters blok and history of trip items. New trip parameters are:

• Price for kilometer / Fixed price • Driver price • Baggage • Short message • Car type. For drivers all their’s registred cars will be shown. For users will be shown list of

several variants: car, bus, autobus, train. • Spread only among selected driver list(drop­down) • Only for verified users • Fellow traveller/s • Cash / Сashless • Start/End destinations Markers. It can be set both ways: by map or by drop­down fields. • Passengers quantity • Schedule block. By default it is hided. It will be shown on click by appropriate icon.

The page has several variants of usage. This is means drivers and passengers can create trips. And both of them can Create transportation of baggage by clicking <I am carrying> button.

Page 9: ODrive Specification v2-0

On the initial page state we have <I am going>, <I am drive>, <I am carrying> buttons. Depending on what button was touched by user on the initial state, the field­parameters will differ slightly at the final stage.

After user have clicked by <Submit> button he will be redirected to monitor Screen. Here Drivers will be visualised users which fit to him trip and if the trip was created by passenger here will be visualised all Drivers which fit to their trip or transportation. History of all user trips is available on the <new trip> page. By click on each trip items of the history list more detailed information becomes available.

oDrive EarthPlaces Page The page is very similar to <monitor> page. To understand better what for certain this page is requires look through http://foursquare.com and http://tripadvisor.com portals. It could be useful. The page consists of:

User visited places and user actual geoposition. Here is possible filter / observe registred Earth places

by native oDrive categories by most popular visits for a defined period. Start date/end date field should be

visualised as additional parameter Observe how much people are in particular Earth place in the Real­time mode. By click on EarthPlace marker Popup with the place details should be open.

Here is possible create Earth place and attach to them images, descriptions or any other files. This option could be useful for Bar owners or for tourists as a guide.

Page 10: ODrive Specification v2-0

oDrive Groups All users inside the group can observe where other members of the group is situates. Inside the group is possible create tasks, attach to them geolocation and assign it to group member. As soon as user will reach the specified geolocation the system will change status of the task to <resolved> status automatically. The page contains following GUI elements

Create new group. Group name Short group description Attach images Invite new user into the group.

Look throw list of all user groups and their users. And filter through all oDrive groups by name and category. Button <became a member> of the group should be available.

User can look through user members only if he had been joined to the group. Each user­item inside the group has an icon­indicator which show if user has a

personal vehicle. Each user­item has an icon­indicator which shows if user a verified user.

On the page is possible to Create Task and choice <Assign for a whole group> or Assign the task to particular user.

The task has start time, end time fields and could has an attached geolocation The task could specify a priority and type fields.

Page 11: ODrive Specification v2-0

MOBILE Client application Preamble

Here situated an duplication of web application functionality. oDrive mobile client application sends user collocations to oDrive server which keep track of all user activities. For example you can manage your trip from Moscow to Kyiv city just by the oDrive service. All your trip information will be calculated and That IT! It will be categorized by types and came back to user as oDrive server side response. Creation of more short trips are available. For example as a driver you can lift somebody along the way to your work. This functionality is available on <monitor> screen.

• The mobile application should be implemented with internationalization feature. The internationalization messages will be provided.

• The mobile application should treat visualization of long data lists by some kind of pagination.

• All other significant properties should be read by the application from separated configuration file. The same for API requests url.

• The application just sends users geolocations(longitude, latitude) to server in background. In background means it should keep send data even if user has been switched to other application or game window. GPS data module should be implemented in manner which do not hit by battery too extremely. So that A­GPS should be used too. The suggestion of the algorithm here: each single geolocation should be sent only in case if user moved more than 50 meters from his previous geolocation. The second condition is: the request should not be send earlier than once in 3 minute. In other case server side will get millions unnecessary data pairs. The application should start send the geolocation pairs immediately after user have been signed­in.

• The application should follow the <Code Convention> rules. • The application packages should start with info.odrive.<somePakage>

********************************************************************************************************** This API call saves new user geolocation. It should be used for background data saving. It should start sends data immediately after Mobile Client Application had been started. @Request("/secure/trackUserLocation.html", method POST) @RequestParam(value = "latitude") final Double latitude, @RequestParam(value = "longitude") final Double longitude, @RequestParam(value = "altitude") final Double altitude, Content • Login/Register Screen • Home Screen • New Trip Screen • Monitor Screen • Statistics screen • User Settings screen

Page 12: ODrive Specification v2-0

• User Profile screen

Page 13: ODrive Specification v2-0

Login/Register Screen

Contains <Email>, <Password> field and <Enter> button. For Already registered user this screen will not be shown anymore. The Home screen should be displayed immediately for registred users. The login screen will be shown only for sign­outed users. Option Login/Register by social networks should be available too. API section situated below:

************************************************************************************************************** @RequestMapping(value = "/facebookRegister.html", method = RequestMethod.POST) @RequestParam(value = "userID", required = true)final String userID, @RequestParam(value = "expiresIn", required = false)final String expiresIn, @RequestParam(value = "signedRequest", required = false)final String signedRequest, ************************************************************************************************************** @RequestMapping(value = "/loginData.html", method = RequestMethod.POST) @RequestParam(value = "pass", required = true) @RequestParam(value = "userMail", required = true) ************************************************************************************************************** @RequestMapping(value = "/registerData.html", method = RequestMethod.POST) @RequestParam(value = "userName", required = true) @RequestParam(value = "userSurname", required = true) @RequestParam(value = "email", required = true) @RequestParam(value = "gender", required = true) @RequestParam(value = "userPass", required = true) **************************************************************************************************************

Page 14: ODrive Specification v2-0

Home Screen The screen contains:

• Statistic Button. By touch will open Statistics screen. • New Trip Button. By click opens New Trip screen. • Monitor Button. By touch will open Monitor screen. • Settings Button. By touch will open Settings screen. • Bar with last registered geolocation status • Logout button. For cases when other user wants to

use the application on the mobile phone. @RequestMapping("/secure/getLastRegistredLocation.html", method=POST)

Page 15: ODrive Specification v2-0

Statistics screen The screen works only by Single API request. To understand how it work please refer to appropriate web­client page description. The screen has following common parameters:

• Day/Week/Month Dropdown field. • Set Date field.

If the parameters is omitted by the user the request should send <Day Request> by default.

The panel in the bottom contains <Statistics> and <Routes> switcher, date picker, <month/week/day> dropdown.

By tap on <Routes> button opens a screen with items list of the user route. It is just server side JSON response with some values. This items list should be implemented with pagination. By tap on each single item should be displayed <detailed geolocation information> screen . The information already present in Server side response. On <detailed geolocation information> screen user should have possibility set Name to the geolocation. Specify the category and upload photo.

By tap on <Statistics> button user able to see how much time he spent in each category place. The visualisation of the line­charts is calculating in percentage amount. It splits result by categories and get the maximum value from server side response as 100%. By click on each single category will open <map­routes> subscreen. On the screen markers which fit only to the particular category should be visualised. ***************************************************************** @Request("/secure/getDayGeolocations.html", method = POST) @Request("/secure/getWeekGeolocations.html", method = POST) @Request("/secure/getMonthGeolocations.html", method = POST) @RequestParam(value = "date", required = true) Date; ACTUAL FOR ALL MENTIONED API CALLS Note to receive any report results user should add at least 1 background geolocation: </secure/trackUserLocation.html> ***************************************************************** url: "/secure/updatePlaceName.html", placeNameValue : String latitude : Double longitude : Double altitude : Double typeOfPlace : type of places

Page 16: ODrive Specification v2-0

New Trip Screen The screen consists of 3 sub­screens: <parameters>, <map> and <detailed trip info>.

• Price for kilometer / Fixed price • Driver price • Baggage • Message • Car type • Spread only among scented group • Only verified drivers • Fellow traveller/s • Cash / Сashless • Passengers quantity • Start/End destinations Markers is a part of sub­screen

with big visualized map. On click <Create> button user will be thrown to <Detailed trip info> screen. oDrive Server adds tansportationId=<ID> parameter in the tail of location string as result creation of some new trip. In case user has come to the <detailed trip info> screen from <new trip> screen it should contain <Show Who Ride> button as soon as server response will differs for <drivers>, <passengers> and <cargos>.

Detailed trip info screen contains all trip specific parameters and 2 additional buttons: 1) Go to <User Profile> and 2) In case user came to <detailed trip info> screen from monitor <results­list> screen, <have a deal> button in the bottom of the trip info will be visualised. On click by this button user will 1) be thrown to <User Personal Profile> screen. 2) oDrive server starts the workflow deal. ********************************************************************* /secure/createTransportation.html POST @RequestParam("distance", required = true) long //value in meters @RequestParam("transportationPrice", required = false) Int @RequestParam("transportationShortTaskDescription" String @RequestParam("ferryman", required = false)boolean @RequestParam("baggage", required = false)boolean @RequestParam("flexibleDates", required = false)boolean @RequestParam("fellowTraveller", required = false)int @RequestParam("verryfiedDrivers", required = false)boolean @RequestParam("originDestinationGeolocations", required = false) @RequestParam("startTransportationDate", required = false)Date Transportation UID will be passed in the SERVER response. The calendar picker should not give possibility to select dates for dates behind current day(in the past).

Page 17: ODrive Specification v2-0

Monitor Screen

Contains 3 sub­screens: the <map> screen, the <filter parameters> screen, the <results­list> screen. In case user comes here without any parameters the <map> sub­screen will be shown by default. The latest registered geolocation marker should be shown on the map (/getLastRegistredLocation.html). If there are no any registered user locations till the moment the marker should be put according to actual GPS data. Navigation between the subscreens is available by click on appropriate icon or either by thumb+dragging. After filter parameters is set user will be thrown to <results­list> screen. Being on the <results­list> screen the mobile application should ask oDrive server /filterTransportations.html API request periodically. The default frequency period is specified in application property file. The value could be changed by user from GUI on <User Settings> screen. All new result­list items should situates in top of the list. If user situates on <map> subscreen and there are some new data from server the phone should vibrate a little and they should be displayed above the screen for a 15­30 seconds like a menu. To be more clear see attached mockup. On click by one of these items user will be thrown to <detailed trip info> screen.

User can filter available trips by following parameters:

baggage radius verryfiedDrivers fellowTraveller transportationPrice Ferryman influence to respond:

drivers or passengers.(It will be changed to Byte variable)

flexibleDates + startTransportationDate

originDestinationGeolocations Each result­list item contains set of informational indicators about the transportation. For example If the user of particular item­result has a vehicle, car icon is presented in the top along with User Name. If the result item is about cargo

transportation another icon should be presented along with the User Name. If user is verified member, appropriate icon is presented along with total trips tip message amount. By click on the result­list­item the <detailed trip info> screen opens. User avatar image url is:

Page 18: ODrive Specification v2-0

http://odrive.info/repository/home/<UID>/userAvatar.jpg

***************************************************************** value = "/secure/startMonitor.html", method = RequestMethod.POST @RequestParam(value = "transportationId", required = true Respond with list of all nearest Transportations available for particular geolocation which have been specified for particular TripId. If there are no any results was returned. Short internationalised message should be displayed: <No trip found>. ***************************************************************** /filterTransportations.html POST @RequestParam("tansportationId", required = false) Long In case the param is passed all other params are omitting and server responds with nearest trips and Rode Users. "transportationMode", required = true) final Byte //driverPrice = 0, fixedPrice = 1, kmPrice = 2 "transportationPrice", required = false) final Double "transportationShortTaskDescription", required = false) final String “ferryman", required = false) final Boolean "baggage", required = false) final Boolean "flexibleDates", required = false) final Boolean "fellowTraveller", required = false) final Boolean "verryfiedDrivers", required = false) final Boolean "originDestinationGeolocations", required = false) final String "startTransportationDate", required = false) final Date "radius", required = false) Double Respond with list of filtered trips according to the filter parameters. OriginDestinationGeolocations parameter contains following

stringified data: startLat: doubleValue, startLong: doubleValue radius parameter contains Double value between 1 and 50. transportationMode has following values: driverPrice this one means that user accepts any driver price, fixedPrice thus results will be presented by trips which are only in fixed prices, kmPrice results will be presented only in trips which are in kmPrices. POST Request Example: http://odrive.info/filterTransportations.html?baggage=false&fellowTraveller=false&ferryman=false&fixedPrice=false&flexibleDates=false&kmPrice=true&originDestinationGeolocations=%7B%22startLat%22%3A50.2981125512805%2C%22startLong%22%3A30.467010489664972%7D&radius=35&transportationMode=2&verryfiedDrivers=true

Page 19: ODrive Specification v2-0

User Profile screen Consists of

Upload user photo button and visualise the avatar. User avatar image url is: http://odrive.info/repository/home/<UID>/userAvatar.jpg Add personal name/surname fields. Age of born fields. Born place. It should be connected with map geocoding. Add additional email. Add mobile phone.

@RequestMapping(value = "/secure/getPersonalData.html", method = GET) @RequestParam(value = "uId", required = false) Moreover this API request are going to return some calculated values like total road kilometers, CO2, total trips, verified flag and some other. All these parameters should be just visualised on the bottom of the screen. User Settings screen This only about accuracy of sending data to server side. Refer to suggested algorithm in the Preamble section. Groups functionality screen ********************************************************************************************************** "/secure/getLastRegistredLocation.html", method = RequestMethod.POST) "latitude", required = true) final Double latitude, "longitude", required = true) final Double longitude, "taskId", required = true) final Long taskId, ********************************************************************************************************** @RequestMapping(value = "/secure/createNewGroup.html", method = POST) @RequestParam(value = "groupName", required = true) @RequestParam(value = "description", required = false) @RequestParam(value = "public", required = false) boolean @RequestParam(value = "invitedUsers", required = false) ********************************************************************************************************** @RequestMapping(value = "/secure/getUserProjects.html", method = POST) @RequestParam(value = "comboBoxMode", required = false) The requier url will be changed to soon. All other remains legal. ********************************************************************************************************** @RequestMapping(value = "/secure/groupSearch.html", method = POST) @RequestParam(value = "group", required = true) final String @RequestParam(value = "visibilityFlag", required = false) final Boolean

Page 20: ODrive Specification v2-0

The requier url will be changed to soon. All other remains legal. ********************************************************************************************************** @RequestMapping(value = "/secure/sendTaskInvitation.html", method = POST) @RequestParam(value = "recipientEmail", required = true) final String recipientEmail, @RequestParam(value = "taskId", required = false) final Long taskId, @RequestParam(value = "projectId", required = false) final Long projectId, @RequestParam(value = "shortNote", required = false) final String shortNote,