Hey there, I’m working on an app for a school to help staff communicate more efficiently with parents. One way to do this is by allowing staff members to send an announcement targeted to subsets of parents (e.g. all of the parents in the grades 4 and 5 should receive this message). My challenges is that I’m not sure how to structure everything to make it work.
These are my thoughts on the UX:
Staff member clicks to add Announcement. Instead of using the default audience (“Everyone”), they choose “Select Audience”.
Select Audience allows them to select one or many Grades; click into a Grade to select one or many Classes, if needed; and click into a Class to select one or many Students, if needed.
Once posted, the Announcements will appear on the homepage of the Users (e.g. parents) who are associated with the given selection (e.g. grades 4 and 5; or, class A and class B within the 5th grade).
Here’s how I’ve been trying to build it (without success):
Create a collection called “Announcements”.
Add a multi relationship to Users called “Audience”.
Based each selections (of Grades, Classes, and Students), Users will be added or removed from the Current Announcement > Audience.
Once published, the Announcements will be retrieved for each User (Announcements > Logged in User).
Thoughts? Advice?? I’m stumped on how to proceed / simplify.
@Yongki I look forward to implementing your solution, but haven’t yet. Here’s a question for you…
If the poster selected both a grade and a class (within that same grade), would an announcement show up multiple times for a person associated with that class? Is there a way to ensure it only shows once?
Also, here’s the latest mockup for the audience selector. Let me know if there’s a way to improve it to ensure announcements only show-up once.
The way I would do is to create/generate from higher group first, in this case grade is higher than class, then to prevent duplication before generate from class, we need to delete those generated records related to the selected class.
This could accelerate to more batch update screens than necessary.
If we can simplify the UI, by giving them option of just grades, just classes, it would be much easier.
Or, before generating students, generate classes first, then they are aware which classes are already in.
@Yongki Another question regarding the audience logic:
If no target audience is selected, then it seems logical that the announcement would be sent to all users. How would you suggested making that work? Or, how do we trigger the adding of all users to the announcement?