localdevices / odk2odm

GNU Affero General Public License v3.0
3 stars 3 forks source link

All calls necessary to create ODK projects for 3dStreetView #4

Open ivangayton opened 3 years ago

ivangayton commented 3 years ago

Create projects for 3dStreetView on ODK Central server

It's possible to create an ODK project that works reasonably well to collect photos for a 3dStreetView mesh. The full ODK Central dashboard works for this purpose, but it's much more complicated than it needs to be. It would be preferable for 3dStreetView users to be able to create a new project properly configured for photo collection directly from the 3dStreetView dashboard with a single action.

In ODK Central's web interface, the steps to create a working project are:

In the proposed 3dStreetView dashboard, the workflow would simply be:

What needs to be implemented

The current fetch.py library (being renamed central.py) contains functions that wrap API calls to ODK Central in reasonably idiomatic Python functions that return Requests objects (this was originally created to bypass the built-in ODK Central feature to bundle up all submissions and data from a form into a downloadable Zip file, which fails miserably for large datasets due to memory constraints and/or connection issues).

However, the library doesn't yet implement all of the features needed to build a project for 3dStreetView. The create_project function works, but there aren't yet functions to:

That's the job! Implement all of those API calls as Python functions in the central.py (formerly fetch.py) library.

ivangayton commented 3 years ago

@hcwinsemius FYI: here's the project @ReettaValimaki will implement in the create-project branch. When it's done, we'll be able to add a straightforward project creation function to the 3dStreetView dashboard that will take care of all of the management of the projects on the ODK server. Users won't need to see, or have credentials on, the ODK server at all.