I'm not sure what category to put this in so I'm starting here. I have an idea for a workflow that would best be described as a Signup or Reservation System. I did a little searching on the forum but I think those words are too general and not sure what else to search. My context is rural West Africa mainly with non-literate workers so any fields would need audio and potentially images to explain the questions as well as at least two languages. I'm not sure ODK is the best solution, but nothing strikes me as a good tool to do this. I figured I'd throw it out there and see if anyone has done anything like this in the past.
Essentially I want to make a system where potential workers would be able to signup to work where they would see what days of the week are available to work. The first x number of people who signup to work that day would have their spot reserved and anyone else who signed up for that day wouldn't be on the official roster for that day/ideally that option would close once that limit has been reached.
Requirements
- This all needs to function well in areas with intermittent connectivity on low-bandwidth connections
- Everything required from enumerators needs to be EXTREMELY simple (No logins). Anything like Google Calendar would be overwhelming and wouldn't work.
- Unique ID's - Most people probably cannot type their name correctly and there are too many people with the same name anyway. Not sure what the best way to identify someone would be. Maybe concatenate a geopoint with a name/image files name? That seems like a really bad idea...
In addition, we need these non-literate workers to be able to access the official schedule which would be the source of truth for everyone. Ideally we could do this in entities, or a very basic webpage in such a way that would have a filter so that a custom URL could be made/saved to each workers phone and this would only show that individual which days they are signed up to work. I'd prefer entities as this seems more offline/internet friendly, but causes issues that I discuss below.
My main questions that I don't know how to solve are the Unique IDs (without giving each person a laminated QR Code, which is a possibility, but undesireable), designing a form that could filter out choices based on a submission count (closing a date after x number of people have signed up), as well as a basic webpage/or other way to display data back to the user.
It seems like this likely could all be done with entities but haven't used them enough to know what the ideal way to set this up would be. Also, even if it could be done with entities, it would be really important that if a user is offline that they understand they need to send their submissions in order to be signed up, which could get confusing if they fill out a form that reserves them for Y date, when that date has already been filled because they haven't connected recently/updated the entity info and others have signed up since the last time they connected. Not sure how this offline entity conflict is resolved.
This definitely all feels like new territory to me and wanted to see what people with more experience think or if they know of other tools that would be good. This is another idea where a webhook like the one made by @spwoodcock would be ideal for keeping the website up-to-date without having to run syncs constantly.