One problem with building new systems is that you have to decide how things should work. Very often, there aren’t existing systems in place which you can copy the behaviours of. Because of this, as I am building the project, I’m realising that there are many problems within my project which haven’t really been solved in an elegant way, which is meaning that I have to think carefully about each decision I make to ensure that it is moving in the right direction, and keeping the system as simple as possible.
The big problem I am having at the moment is who should have permission to send messages? I want to make the system inclusive so, for instance, a society could use the system to send out messages to their members, as could the university to let everyone know of some news. But we don’t want people in a society sending messages to the whole university, because this would make the email problem worse, not better.
In addition to this, we don’t want to have to add confusing permissions to user accounts which will just alienate many users.
I’m settling on a “group” based system, where “managers” of a group can send messages to all the members, but the members can’t send messages to the whole group. Anyone is free to create groups so anyone can send messages.