discussion / Citizen Science  / 21 September 2022

Data upload solution for a citizen science project?

Hi everyone. 

I’m looking to build a web-based data upload server for a citizen science project and am wondering if there are out-of-the box solutions available or if there are some useful Python packages, libraries available to make the job easier? 

I don’t really want to reinvent the wheel and it seems that something like this may already exist and I’m just looking in the wrong place. 

The brief is that our volunteers make audio recordings to monitor threatened species, then upload their data for archiving and automated processing. I’d like a server that has the following: 

  1. Simple web-based user interface - many of our participants have limited confidence with computers; 
  2. No client-side software to install; 
  3. User management: registration to approved email addresses only (or similar, maybe a manual admin approval process); 
  4. Data files are 1 to 40MB in size but there are lots of them ~1000 files, and ~10 GB in total. If user loses network connection, uploads should be recoverable with the server capable of resuming an upload where it left off. That's quite important. 
  5. live progress and status updates to the user. 

I have access to a web hosting server. Maybe a Django or Flask implementation already exists, or there's something similar I could adapt.