The project is a for a data collection/survey application running on an android tablet. The goal of the program is to collect information about points of interests for a travel website. The work flow of the person collecting the information will be as follows:
(1) Complete an initial survey. The person will walk around a city/town and create an initial map of points of interest (POIs).
(2) In another program, make slight adjustments to the geographic coordinates.
(3) Physically return to the POIs and collect the required data about that POI.
(4) Upload the data to a MySQL database hosted on a webpage.
The data collected in (1) needs to be stored in an Openstreetmap formated XML (.osm file). This is a simple XML format, and details can be seen here: [url removed, login to view]
The program should be formated like the following:
Opening Screen: 4 options (1) Add new file (2) Open existing file (3) Upload file, and (4) Configuration
(1) Add new city should prompt the user to select a location and name for the new file, and then lead to a screen where the user can input a continent, country, region, and city. [Screen A1]
After this, there should be a screen with an "Add new item" on top, and then a listing of all the existing items in the file [Screen A2]. The existing items should be in a sortable list and display basic information about each item. For example, the name, type (hotel, rest, etc.), sub type (budget hotel, hostel, etc.)
When the user clicks on an existing item or add new the program should go to a data input screen for basic information [Screen A3]. If it as an existing item, the data fields should be pre-entered. Most of the data here will be simple text inputs. The GPS coordinates field should have a button next to it that will take the current location according to the GPS of the device. This should have a confirmation screen. There will be three fields, type, subtype, and subsubtype that will have predefined lists. Users should be able to add something that isn't in the predefined list as well.
There also should be a 'start time' and 'stop time' buttons at the top. These will be used to automatically sort photos later. On click of the start button, the program will need to check to make sure that there is data in the continent, country, region, city, type, and URL fields. If this data is missing, the program needs to alert the user. The user needs to visually see that the time is running by a change in color of the start button. It should only be possible to click one button. For example, the user shouldn't be able to hit start if he has already selected it, and not hit the 'stop time'. Navigating out of the item or closing the program should stop the time. These actions need to generate an xml or csv file along the lines of:
starttime="19:36:54",stoptime="20:11:12",continent=%continent, region=%region, etc. etc. where the % variables come from the input fields.
From this screen, there should but a button saying 'Add Data' that leads to another data input screen. This screen will depend on the 'type' of the item. For example, hotels will have different fields than restaurants. These inputs will be text, Y/N, and a 0-5 star. The Y/N and 0-5 star fields should have radio button selectors. There should be a '?' that users can hit to display a text box containing information about the field. There will be about 10 types and anywhere from 10-100 data fields. These will be provided upon bid selection.
All of the above fields should be stored in the OSM formated XML file.
(2) Open existing file should prompt a user for the file location. On opening, the program should check if it is properly formatted, and then open Screen A2.
(3) Upload file. This should have fields for things like username, password, server. The program will need to convert the XML, and upload the info to the appropriate tables.
(4) Config:Info about user, version info, etc