I'm currently building a school quiz system in our site, and with back and forth interlinking, I'm finding that the Title field is not necessarily needed for some pages. The short of the design is...
The school is split into 5 modules
Each module has X number of quizzes
Each quiz has X number of questions
The only way I've thought to do this, with what little I know about ProcessWire so far, is entirely through the use of pages. So here is my current page structure:
-- Module 1
-- Quiz 1
-- Question 1
-- Question 2
-- Quiz X...
-- Question X...
-- Module X...
And so on.
The thing is, for questions, all I need is the Question Content, and some other minor metadata. There's no real "Title" to the question, as the question content itself is kinda both the content and title. Technically if the question is short enough, I could use the Title field for this joint purpose, but I can't guarantee the question won't exceed the 255 character format, plus the Title field feels like the wrong place for this data.
There's a more pertinent area where I don't need the title though, and that's in the other area of the site for Student Records:
-- Student Records
-- John Doe
-- Module Record 1 (Relevant data being stored for a particular module as a whole)
-- Quiz Response 1 (This record contains the student's answers for a particular quiz)
-- Answer 1 (This record is a simple back and forth conversation between students and teachers)
-- Response 1 (Response from a teacher if answer is incorrect)
-- Answer 2
-- Response 2
-- Quiz Response X...
-- Module Record X...
-- Jane Doe
The main area of design that I'm not entirely sure of yet (because I'm still learning ProcessWire) is if I would be better off just using a repeater field for the Answer / Response records, and just making that a field for a Quiz Response instead of sub-pages, but I'm not certain how searchable Repeater data is, and the ability for teachers to very granularly search student / quiz data is important.
The basic linking of data is:
Modules are are defined within the "School" section of the site, Quizzes are assigned to a module as sub-pages, and Questions are assigned to a quiz as sub-pages.
Student Records are created for each student upon sign up with relevant data attached as fields (Name, Age, Email, other metadata, because I couldn't find a way to link fields to users instead of pages). Module records are assigned as sub-pages and contain data such as Module Progress, Current Quiz, etc. so teachers can track that data. Quiz Responses are assigned as sub-pages of Module Records, and linked to the relevant quiz by a Page Reference (mainly so that we can also view all answers for a particular quiz regardless of specified student). The answers / responses are then entered either as sub-pages, or repeater fields.
A lot of these pages do not particularly need their own titles because they can inherit titles from their linked pages with their Page Reference fields, however, I don't know how ProcessWire wants to handle all of this. Maybe the title is always required and should never be removed, and is okay to duplicate between pages even if it is always going to be the same (as in the instance of a Quiz, and a Quiz Response), but then I would also need to write routines so that if a Quiz title is ever updated, every Quiz Response title is also updated to match, which seems tedious when I can just link the 2 together and grab the Quiz title.
Or perhaps I'm going about this the wrong way, and I'd be better off using custom database tables? From everything I'm seeing, it seems like Pages can entirely be used for this purpose, even if 80% of them don't have template files because I will be aggregating and displaying the data via "Search" and "Dashboard" pages.
So I guess the overall question that I have is, if I disable the checkbox requiring Title on all pages, so that I can create some pages that don't have titles, is that dangerous?
Looking forward to any insight you all may have! 🙂