I had a couple of attempts at creating a mobile phone app for surveys. See this post and this one. I got distracted by the CRUD process and let it rest for a while.
Whilst looking for some Python Mapping tools, I came across this article regarding capturing GPS data and was taken with the free EpiCollect tool. I thought I’d give it a try. I had seen a few other app builders on the web but they were paid ones. This one is free.
I found these videos on YouTube demonstrating the app:
Also there is a new version out, EpiCollect5. This is the one that I have tested.
The Mobile Apps are available for free for Android from Play Store or Apple from their store. The surveys from your Mobile can be done off-line and the data sinc’ed to the web later when you have wifi, or you can do it live and use 3G or 4G.
If you have a windows tablet you will need to be on-line and do it on the web page directly.
You need a Google Account to be able to use the programme. And you need to log in. No major drama with setting up an account.
You then CREATE A PROJECT and then build forms. The Interface is pretty sensible and doesn’t take too much clicking around to find what you need.
When you create projects they go into a folder called My Projects (based on your login)
Clicking on the top project takes you to a dashboard about it.
On the left it gives you options for:
managing users (note, all users must have google account (or just get one Google account and let everyone have the login the same if you want to keep it simple)) You can give people with different accounts different access, like Write only, or some have edit control etc.
mapping data (not what you think)- Actually if you want to create a Name Mapping on your Column Headers when exporting the Data (say you are pushing it into a pre-created data set and you want to map correct data to correct columns)
Manage Entries (Edit Entries)
I haven’t explored API but you can only use it for GET requests.
On the right it shows the settings of the project, in this case it is a private project & not accessible to the public). The Status you can change to Trash and delete the project.
If you click on the LINK in top left Corner where it say’s project Homepage this will take you to:
Where you can click on the left green button (Details) and be taken to the dashboard of the image 2 above, if you click on the right green button (View Data ) It will take you to the TOP level of your Data.
Here I only have one building with rooms (children data sets) off this parent Data. You can see that you can edit or delete this data, you can also download it or view it as a table or map. Hitting the Exit button takes you back to the overview of the project.
The child form that I built is Room Data and here I have 3 entries.
The Key to the process is the FormBuilder.
In this project I wanted to capture, on the FIRST form Building Address, GPS data and some other Data about the building.
I chose from the palate on the left the type of information I wanted to have inputted with some explanation.
After gathering data about the building I wanted to go into the rooms within the building and gather specific data about each room. So I made the Room FORM a CHILD FORM of the building. I then stuffed it up and made Exterior FORM a child of Room, that should have been the other way around. I will have to redesign the form for that.
So after setting up the project Form you now go and test it on your Android or Apple App.
As you can see, all of the Form Inputs that were built come out onto the App.
One the rooms are surveyed and when you have wifi you can sync your data with the web.
Once that is done, you can go and view your data on the web on the map
or else you can download to CSV or JSON
Now data comes out as a CSV file per form. So for this I ended with 2 CSV files, one for the Building Data & One for the Room Data.
This is Building Survey Data.CSV. The Parent Level of The Data showing Building address etc. Column 1 has UID (unique Identifier ) of this object Data
This is Room Data.CSV. The CHILD Level of The Data showing information about each room of the Building etc. Column 1 has UID (unique Identifier ) of EACH Room. The 2nd Column has the Parent UID (of the Building). So the parent UID links the 2 tables.
So you have to do a JOIN to link the 2 tables of data.
I may think about writing a Python Executable to take the 2 CSV’s and join them. For another time.
You can update the forms mid survey (to an extent) and then add the rest of the data into the fields that you missed on the initial survey.
Also , you can edit on the web page, so if you have gathered further data (eg in comment box) then you can edit that in the web page later.
I am looking to find a tool that will let you cascade your questions, like:
Wall finish, Pick one:
gibraltarboard (baselife 40 years)
block (baselife 50 years)
concrete (baselife 60 years)
After you have picked one you then want:
What is its condition? pick one:
condition 3 etc
After you had picked a condition then:
How many years remaining from Baselife of element?
remaining years 59
remaining years 58
remaining years 57
remaining years 56
(it would be good if you could actually put in a number)
So a specific element can have a condition and a remaining baselife (so you can calculate its condition year on year as per this post)
Using this tool you can have your building, then the rooms are “Children” of the building, and you can loop through the rooms by creating as many as you wish.
Then to drill down to the next level where you want :
Wall/Floor/Ceiling Finish and a condition and remaining life for each, you can put these in as individual groups. Which is good.
But, with this tool, you cannot put a group within a group. So it only has a certain strength for drill down. So I looked at using ODK as an alternative to this tool. Its formbuilder uses Excel spreadsheets and is a bit more flexible. I write about this tool in another post.
Comparison with ODK
I have tried another free mobile app, Open Data Kit (ODK) and write about it in this post. ODK can be tailored a lot more than EpiConnect 5.
I have noticed that is is quite easy to go back, in EpiConnect 5 and edit previous parts of your survey.
So if you only partially filled in the survey form in the first instance, and needed to go back to it, either at a later time or date, it is easy to access that data in the EpiConnect5 process linking the app to the Website.Also, if one surveyor only partially completed data and another surveyor was picking it up to do another part of the same form, that is easy to do also.
It is not so easy to do in ODK, with that you need to download CSV files to the specific device that pertain to that specific survey form and site.
So although EpiConnect 5 is not as versatile as ODK in data structure (can carry on nesting questions withing questions for quite a depth in ODK) it is easier to build form and manage the data.
For a free tool its pretty cool. Very easy to set up and a great way of building forms and gathering data.
The other nice thing is that this works on android and apple devices and offline.
Not as efficient as other tools that I have seen but it gets there. Maybe a little verbose and I need to think of methods to make the survey capture process more efficient.
One odd thing I have noticed is that only a link to the photo is downloaded. Not sure if you can actually download the picture. I need to read up about that. Otherwise maybe use photo ID to match downloaded photos from the camera.
If you want to play with this I made this a common email for logging in: