You start the App and you can see a splash screen t be created by the developer.
As first operation, in the background, the app shall fetch a configuration file from a fixed location. The configuration file is a json file containing some properties specified in attachment.
MENU, PERMISSION AND GEOLOCATION
The first screen that appears geolocate the smartphone. The permission to use the GPS shall be asked to the user. Date and time of authorization shall be stored in the LocalStorage.
Also, the device ID shall be read and stored in the LocalStorage (the permission shall be asked). Permissions could also be asked when starting the application, only if not already asked.
From this screen, also a menu icon is visible. Clicking on the icon shows a side menu with this structure: [login to view URL]
The logo is custom and it is attached (it is not the one of the image).
The menu items are in attachment.
Autenticazione (which means authentication) opens a windows to login with username and password, Google or Facebook.
MAP AND MARKERS VISUALIZATION
Once the user has been geolocated, a custom marker shall be shown on the map to pinpoint the user's position. One between Google Maps APIs or OpenStreet APIs can be used.
Furthermore, a list of positions shall be fetched from the server via an API returning an object containing an array of many elements like the one in attachment.
When a user clicks on an existing report (i.e. a marker) a ballon appears (similarly to Google Maps) with the indication of the corresponding text, type and total number of reports. Furthermore, a button with text as of "voteForThisButton" config variable is clickable. When the user clicks on this button, what described in section "SEND THE REPORT".
ADDING A NEW REPORT
At the center bottom, a plus sign shall be created as an icon to add a new report
After clicking on the icon, two things appear:
(1) Button at the top
At the top the screen a nice button having the text configured in the reportHereText variable of the configuration file.
When the user clicks on this button, it jumps to the "selection of the report type"
(2) The rest of the screen shall be used to show a list of item.
The title of the list is in the variable "locationOptionTitle" in the config file
The list of options is the variable "locationOptions" in the config files (first paragraph). The first list of options to show is the array of types. Once the user selects one of the types, another identical list shall appear (same title), having as options the list of subtypes corresponding to the selected type. When clicking on an item of this second list, the user jumps to the "selection of the report type". From the list of subtypes, the user can also click on a button to go back to the list of types. When the user clicks on a subtypes, the next screen is "selection of the report"
SELECTION OF THE REPORT TYPE
The logic of this list is the same as of the location, but:
- this screen uses the variables "reportOptionTitle" and "reportOptions"
- when the users selects an item on the subtype list, a button with text as of variable "sendReportButton" becomes clickable.
Also, icons with a camera or attachment appears to send pictures.
SEND THE REPORT
When the users clicks on the "sendReportButton" (or "voteForThisButton"), a text area to optionally add some texts is displayed (max characters set according to "maxCharactersForComment" config variable).
The button "sendReportButton" is still visibile and clickable (regardless of the comment). When clicked, the request in attachment shall be sent to the server: Details of the request in attachment.
If the request is correctly sent a green toast shall appear and the user can share the report on Facebook.
CONSTRAINTS: mandatory Cordova, AngularJS, Bootstrap. Android/iOS support (compile only for Android). Code to be shared and delivered via GIT (Bitbucket or Github) with me. Only open source libraries allowed.
26 pekerja bebas membida secara purata €547 untuk pekerjaan ini
Hello, Being a senior app developer in Apache cordova, Ionic framework, and hybrid phonegap, I can better help you to complete app tasks using these platforms. Regards, Kaushal
Hi, there. I read your job description carefully. I am an experienced cordova developer. I can complete your task properly. Feel free to contact me. Best Regards.