Goals
- Develop Andorid Application that allow off line Participant Registration (entrollment to the event) and time attendace at sessions.
- The MeetMe Android Device can work both online and offline: means that if connection to MeetMe server is available exchange data automatically with MeetMe Server. Otherwise will send the data once connection is enstablished. The data with MeetMe server is exchanged in "batch mode", means that a backgroud process carry the data exchange.
- The main purpose of Android App is to manage:
- MeetMe Registrations (highest task priority) (like here http://dev.meetme.pro/registrations/home?id=0e8e240fb6f278bd99891da3dfef2db78b14011a)
- MeetMe Attendance Data (medium task priority) → record the IN/OUT time of participants in locations
Available tools / code
Repository: http://bitbucket.infordata.it/projects/MM/repos/meetmefamoco/browse/app → this is a "basic" App already working for attendance, developed by Alan Domio.
Marko Mikolavcic please pull the repository to get useful informations to develop new app.
New repository: Marko Mikolavcic please push your code here http://bitbucket.infordata.it/projects/MM/repos/meetme-regme/browse
Workflow of data Exchange
Quindi la App Android da MeetMe deve scaricare in quest'ordine:
- Dopo Login user - il token di autenticazione
- Gli Eventi del Cliente
- L'Evento di default del user
- I Partecipanti dell'evento
- In Opzione (se usato per rilevare presenze) Le Location, i Timestamper, i Badge
Poi la App Android deve inviare al server MeetMe:
- I dati degli accrediti {participant.id*, registration_code, registration_time}
- I dati dei nuovi partecipanti {campi partecipante, campi contatto}
- I dati delle presenze (timelogs {time, participant_id*, location_id, timestamper_id, event_id}.
Background and strategic fit
- The authentication token is received after login on MeetMe server. Until is done manual logout from android app/or token is expired no login is required again for the Android App
- The authentication token is striktly related to user.default_event. So by using methods to get/post
- participants
- locations
- badge
- WISH: maybe would be useful or has no sense to mantain in the new Android App also the WebClient version? I mean to put in App Option "Swith to Web client version/Switch to Stand Alone Application" will allow to use both views: WebClient Version is useful when event require complex Registration Logic.
Assumptions
- Android device with camera (with barcode scanner, like in MeetMe Totem) and in option with NFC reader
Requirements
# | Title | User Story | Importance | Notes |
---|---|---|---|---|
1 | Develop database structure for Andorid App | 1) Participant Table:
API GET: example: return participants of Event 154 2) Event Table: id(int, name(varchar), start_date and end_date (datetime), customer_id(int), max_delegations_number(int), max_allowed(int), description(text), deleted §(tinyint)Example GET the data for the default event for user 3) For time attendande data a) Locations: // to use for storing time&attendance data Example: http://dev.meetme.pro/location/index?accessToken=0e8e240fb6f278bd99891da3dfef2db78b14011a&type=jsonb) Timestampers // to use for storing time&attendance data Table fields: id (int), name(varchar), customer_id (int), serial (varchar), imei(varchar) deleted(tinyint), active(tinyint) c) Timelogs // table where to save attandace data to send to MeetME server table fields: id, time, direction, badge_id,number, timestamper_id, location_id, participant_id, customer_id, event_id |
| |
2 | Mockup Login interface | simple, login needed if token is invalid or is made manual logout form mobile app. | ||
3 | Mockup Main Page | A simple interface to search&check manually participants (for registrations or attendance). EventBrite
|
| |
4 | Mockup Setting Page | "Sync Now" → force synchronization with the server "Change Event" → show the event list → change the user default_event "Participant Search" → multiselect of fields to use for search | ||
Questions
Below is a list of questions to be addressed as a result of this requirements document:
Question | Outcome |
---|---|
3 Commenti
Marko Mikolavcic
tutti i link sopra elencati mi portano al login page http://dev.meetme.pro/user/login
Marko Petelin
Marko Mikolavcic,
oggi come da tua richiesta il token è stato spostato dal url nel header http di autenticazione:
http://confluence.infordata.it/display/MM/Api?focusedCommentId=11567278#comment-11567278
token=[token]
ovvero
token= 0e8e240fb6f278bd99891da3dfef2db78b14011a ... da passare nel header http di autenticazione
Il token di accesso dovrà essere inviato tramite header authorization con l'indice "token" ed ha sempre 40 caratteri. tratto da Api MeetMe
>b) il token di autenticazione attualmente come viene passato? dopo il login me lo ritrovo nei header http?
Viene ritornato durante il login.
Marko Mikolavcic
per cambiare l'evento:
-dove trovo la lista eventi (event/index) o (event/get-parent-events), perche ci sono degli eventi sul primo che non risultano nel secondo?
-devo rifare tutti gli endpoint per ottenere tutti i dati? o non cambiano?
per accreditare un partecipante:
-dove metto la location? nel doc del api non c'e scritto
-puoi farmi un esempio di POST per poter replicarlo?