Open mikaelsvensson opened 3 years ago
We have application logic in these front-end classes:
check_event_is_ongoing
get_available_group_categories
and create_group
update_answers
update
on DAOupdate
on DAOupdate_group
update_group
and get_current_group_members
create_person
and send_person_welcome_mail
update_person
update_points
and get_optimistic_lock_value
The source code is somewhat decently structured but it could be better. A primary concern is that it's hard to create a REST API for the system when so much logic sits inside the "frontend" namespace.
Maybe we should take (more) inspiration from the MVC pattern? Our Model layer is pretty decent but the application logic is very tightly coupled to the presentation. Basically, we may want to split some files and classes into separate Controllers and Views.
Another part of this is to "modularize" the different types of competition tasks, like geo-fenced questions and ticketed manned checkpoints. Some such "competition tasks" may not be necessary for all competitions. Is there some shared functionality which can be extracted? Can such "competition tasks" be enabled or disabled on a per-competition basis to make it clearer what features will be available to admins and participants?