This is an old idea shared between community members.
Since the ODK team maintains a powerful xlsform template, we can imagine the community sharing pieces of xlsform, compliant to the template, to build new forms, with simple copy/paste.
Here is a first question block, to authenticate the user who fills the form :
authentication_bloc.xlsx (466,4 Ko)
It is a basic authentication, using first, last name, and email address of the enumerator.
In my NGO, the email address is needed to affiliate each observation to its owner.
In this bloc of question we use project's metadata hidden questions types (email and username), filled at Collect's level, and last-saved values to set the default of each user_name and user_mail questions :
coalesce(${last-saved#user_name},${metadata_username})
coalesce(${last-saved#user_mail},${metadata_email})
User identity requires at least a space character.
Email address need to be a valid one, so we use the regexp from the template. You can use a more specific one to fit your own domaine name.
We also use the domain name of the email address to calculate the name of the organization (after the @ and before the .) :
substring-before(substring-after(${user_mail},'@'),’.’)