Sie sind auf Seite 1von 20

Document structure:

- Technical assignment
- API Description

1. Launch screen
(details of device authentication in API description)
2. Slider with explanation of how the app works (only after first launch) 5 slides
totally
a. Next/prev buttons
b. Show next/prev slide with swipe
c. Skip button
3. Camera working camera is the normal state of the app. When camera is on - app
is constantly trying to recognise markers from the Vuforia Cloud Database ( details in
API description bullet point #3)
a. A small text tells user to move camera towards the paper with marker

b. After marker recognision we inject video/image/text/googlemap and 3D


buttons into the surface of marker (details about getting information from
the server - API description bullet point #3)
i. After injection video starts automatically. User should be able interact
traditionally with a video:
a. play/pause after click on video
b. change the playing moment with moving finger on the
screen (left - video goes a little forward/ right - video
playing moment goes a little backward)
ii. Buttons are shown a little lower of infected component:
a. Button Video - after pushing this button we inject the
video into the serface of marker. Video starts to play
from the begining (0:00)
b. Button Location - inject google map with a point into
the surface of marker
c. Button Path - inject google map with a built path
between points
d. Button Information - we inject image and text into
surface. Area of this image+text is scrollable

iii. After user whached this everything and mvoe the phone away from
oint 4 The page from
marker - app should open screen from bullet p
events archive
4. The page from Events archive - information about event should be shown
(details about how to get information from the server look in API bullet point
#4)
a. Block with text and text information
b. Button Show location -> goes to google maps and shows point XY there
c. Button Show path -> goes to google maps and shows path built between
points there
d. Video (the one which was downloaded in previous part)
i. Play/pause
ii. Video playing moment scroll
5. Side menu

Shown on of the screen.

If user is not authorized:


Button Create event | Login ( goes to login/register screen)
Events archive - the list of events that user had scanned. ( details about
how to get this info from the server - API description bullet point 5)
If the user is authorized:
Email - goes to part 9 (Profile)
Button Create event - (goes to part 7 Create event)
My events - the list of events (date/name) created by user. When user
clicks one of them - he goes to the page of editing event ( Part 8)
Events archive - the list of events that user had scanned. When user clicks
one of them - he goes to the page with info about this event (Part 4)
6. Login/Register Screen has two tabs - Login/Register. Tabs contain login/register
foprms. By default opens tab with registration form. (details about authentication -
API description part #6)

Registration:
a. Email

b. Password
c. Confirm password

d. Checkbox to confirm that accept Privacy rules


i. Link to privacy rules
ii. Checkbox
iii. Without checking the box in the button Register is not active
f. Button Register
Login
a. Email
b. Password
c. Forgot password?
d. Button Login

7. Create event
(details about saving event and updating after each step - API description part
7)

Some comments about interface:


By default Next button is not active. After user typed all required information -
button Next becomes active.
If current step is not required - Skip button is show in place if Next stays and it is
active.
In 7th step Save button stays (not Next) and it is active (because the step info is
not required).
Under the name of step the progress bar is shown - it shows the current step of the
creation (out of 9).
Top right corner always contains X button to save event and close the screen

a. Step 1 - Create an event

i. Event name
ii. Date
iii. Time
iv. Next button
b. Step 2 - HowTo video

i. Fullscreen playing video


ii. After video is played next step opens
iii. Buttons Back and Skip
c. Step 3 - Create marker
(details about interacting with server while creating a marker - API
description part #3)
i. Upload from the phone
ii. Take a photo with a camera
1. Please take a photo of invitation
2. Loading bar ( look API description #3 for description)
3. OK or Try again depending on the server response
iii. Buttons Back and Next
d. Step 4 - Video
i. Make a video
ii. Insert a link of video
iii. Upload from phone
1. Check video format/size/length on limits
iv. Buttons Back/Next

e. Step 5 - Location (not required)


i. Click on map to set a point (only one point can be set at a time)
ii. Input to search the map by adress
iii. Buttons Back/Skip(Next)
f. Step 6 - Path (not required)
i. Set multiple points on google maps
ii. Search map by adress
iii. Buttons Back/Skip(Next)

g. Step 7 Additional info (not required)


i. Upload one picture
ii. Input text field
iii. Back/Save
h. Step 8 Demo check
i. Camera from part #3 tries to read created
ii. Back/Next
i. Step 9 - Payment info
i. Description, conditions and price
ii. Promocode
iii. Payment options (see detail in A PI description part #3.9)
iv. Button Start demo -> goes to S tep 1 / Button Share with friends /
Button Please make a payment - depending on status of the event

j. Step 10 - Done
i. Text

8. Page of event from My events


a. If the creation of the event is not finished yet - we immediately open P art 3 on
the last edited step (returned by API).
- ( details about updating the event - API
description part#8)
b. User is able to go through the same interface as in P art 3 and change all
data.
9. Profile
a. Change password
b. Change email
c. Logout button
(details about how to get information from the server you can get in API
description part #9)
API description is made for technical assignment. Contains basic principles of
communication of application wit server

1. We identify users device by device id after he just installed the app ( Android Advertising
ID IDFA (aka identifierForAdvertising) for iOS (https://www.aerserv.com/mobile-device-identifiers/))

While not logged in - user is presented by this ID. At the moment when user creates
account or logges in - he has a new id - his email.

The process that happens when user just installs the app is very similar to usual
registration
POST:
www.server.com/createTempUser
JSON {
deviceID :
}
Response is token, which has to be sent with any request to identify user. This token
will be renewed after user creates account or logges in - we will unite this no name
user and created account with help of device ID

3. When open camer app is constantly searching for markets from V uforia Cloud
Database.
After Vuforia returned the Target_ID :
Send POST reguest www.server.com/getEventInfo/:targetID and you will receive
a JSON object with data about the event:
1. VideoID (string)- the app needs to download this video from our server
(www.server.com/videoID). While video is downloading - prgress bar should
be shown. After download is complete - we enject the video into surface.
2. Event, date
3. Geoposition (x,y)
4. Path - array [(x,y),(x,y)...(x,y)] - Google maps with path will be placed on
market surface
5. Information (imageurl -string/text - string) - image url and text

After user moved camer from the marker - we send POST request:
www.server.com/saveScannedEvent
JSON {
userID : see part #1 for details,
eventID :
}
After success response - open p art#4

4. POST:
www.server.com/eventFromArchive
JSON {
eventID :
}
5. POST:
www.server.com/listArchive
response: [{JSON object - event},{JSON object - event},{JSON object - event}]
POST:
www.server.com/listCreated
response: [{JSON object - event},{JSON object - event},{JSON object - event}]
Logout happens only on the device - all session data is removed
6. Login -
POST:
www.server.com/login
JSON {
email :
password :
}
Response is token, which you have to send with every request further to identify the
user

Registration -
POST:
www.server.com/createUser
JSON {
deviceID:
email :
password :
}
Succesful response is token for identification - user is now also logged in

Restore password
POST:
www.server.com/restorePassword

7. After pushing Next button on 1 step we send request - we send request:


POST:
www.server.com/createEvent
JSON {
title :
timestamp :
}
Response is ID of created event

The process of marker creation:


After makes a photo or uploads it - the photo is sent to
www.server.com/processImage
The app shows loading bar and waits for the answer from the server. Response is
target_id of Vuforia Cloud Database. After response is gotten we open camera (Part
3) and we try to recognise marker from Vuforia Cloud Database if reponse id and the
ide from recognised marker are the same - we show OK to user and go to the next
step. If not - we show try again and repeat this step.

Uploading the video:


Checking video on limits - length/size/format and then send it to
www.server.com/uploadVideo

After every step we send request to server (JSON object) to update the event
POST:
www.server.com/updateEvent
JSON {
eventID :
videoName:
geo: {
lat:
lng:
}
...somevalue {
}
}

If we change the event is oppend for edit (from side menu) - first step also sends
request to /updateEvent (NOT /createEvent)

Step 9 - Payment
QIWI:
POST:
www.server.com/createQiwiInvoice
JSON {
eventID :
}
Request is the invoice ID - we show it to user
Acquiring:
POST:
www.server.com/acquiringInvoice
JSON {
eventID :
}
Response is a link that we direct user to
8. Same interface as in previous part, but now we pass ther eventID to update this
event
9. POST:
www.server.com/changePassword
JSON {
oldPassword :
newPassword :
}

POST:
www.server.com/changeEmail
JSON {
newEmail :
}

Das könnte Ihnen auch gefallen