-
Notifications
You must be signed in to change notification settings - Fork 0
Requirements
The primary goal of the project is a mobile application for the Bladenight participants (vs. bladeguards, BRK, organizers...). This page lists the high prio requirements toward that goal.
You may also be interested in the Low priority requirements.
- Main audience: bladenight participants owning a smartphone
- Keep support effort as low as possible on developers/organizer side
- Localization: English and German
- Android phones >=2.2 (90% of Android market share)
- iPhone iOS >= 5 (90% of iOS market share)
Display a map with:
- My position
- My friends
- Zoom on:
- Me
- Route
- Procession
- Auto zoom (e.g. follow automatically)
Potential map frameworks (we could support several): Google Maps, Openstreetmap Mapsforge
No risk, feature is pretty straight-forward.
For Mapsforge, we would have to create our own style sheet, because not many people like the default rendering.
We can reuse code from the both legacy apps, but it's not critical because it's very straight-forward.
- My position
- My friends
- Width can represent:
- Procession
- Route
No risk, feature is pretty straight-forward.
We can reuse code from Olivier for Android, but it's not critical because it's very straight-forward.
- Route length
- Procession length
- Current linear position on the route (2.4 of 10.6km)
- Current/average speed
Feature is straight-forward on the client, but the server will have to do the work reliably.
We can reuse code from Olivier for Android, but it's not critical because it's very straight-forward.
- Add a friend. Possible media: in the app only; by SMS
- Find a friend ("Bob is 200m ahead of you")
This requires to set up a network first, and therefore a kind of authentication mechanism. On the other hand, we want to keep things as simple as possible, both for the users and for us (reliability, support effort).
Possible process:
- User clicks on "Add friend"
- Client connects to the server with a hash of the device id
- Server sends back a random token (6 digits)
- User gives this token to his friend (orally, SMS, email...)
- Friend enters token on his client
- Friend's client sends confirmation (and device id hash) to the server
Possible addition:
- Each user gives himself a name (which is not a user ID, just a display name) at the latest the first time he wants to make a connection. It's stored in the app configuration
- Server dispatches the user names between the (connected) clients
- Users can still modify the names of the friends locally
- Identify client software
We have to find the right way to do it. Still to be clarified if we want also to crypt the entire connection.
Code or concept could be reused from the Bladenight App. It's pretty simple though.
- Set active route to predefined route from mobile client
It requires to identify the administrators as such. How ?
- User-independent master password, sent by the client either at the beginning of the data session, or for each admin command
- User specific password, admin flag in the user database (it requires then to have usernames/ids)
Advertisement (see also Advertisement)
- Support at least one ad network
- Allow to add specific ads for the sponsors (AOK ?)
- No experience in the team yet
- Official sponsors and corresponding ad are still unknown
- Comply with the german Datenschutz
- Requires a lawyer
- Display tunnels/bridges for pedestrians and bikers to cross the bladenight safely
- Data has to be available (potential data sources: Openstreetmap, survey). It's easy to generate it manually though, for every route
- Safety function to avoid people to watch their phones while skating (to be confirmed if required, e.g. by Greencity)
- Log as much as necessary to be able to replay a full bladenight, for testing purpose and also potentially for statistics
- Log network protocol errors, to detect problems due to the network providers, connections...
- Storage: support at least one inline solution (files, sqlite, h2...)
- It shall be possible to define the server URL manually