Admin Note: Dear Service Providers, the selected budget is being discussed with the client. This is to inform that twago is currently in contact with the client to see if the budget is negotiable.
Entwicklung einer Typo3 Erweiterung - hier die Beschreibung der Anforderungen in Englisch:
Event manager for junior hockey club
The extension should give the possibility to administrate the junior teams and players of the hockey club, plus e-mail contacts related to the players (for parents, grandparents). The main purpose of the extension should be an event management to administrate trainings, games and other events. Coaches should add/edit events, define the squad for each event and sent all the information as a mailing to the player's contacts. The contacts should be able to accept or reject an event for their player and to see a calendar/timetable with all their events.
Administrate the teams Data: team name* (like Under-8, Under-10, Under-12, Under-15, …) Functionality: add teams, edit team names, delete/hide teams, assign players to the team, remove players from the team
Administrate the players Data: family name*, given name*, birth date, position, jersey number Functionality: add players, edit player data, delete/hide players, assign teams to the player, remove teams from the player, add contacts to the player, remove/delete/deactivate contacts
m:n relation between teams and players! A player can be assigned to more than one team.
Administrate contacts Data: e-mail-address*, name, relationship to player (mum, dad, grandfather etc.), home address, phone no., notes Functionality: add contacts, edit contact data, delete/hide/deactivate contacts, assign player(s) to the contact, remove player(s) from the contact
1:n relation between players and contacts required, but m:n solution would be a nice to have, as there are brothers and sisters playing in the club that have the same contact persons of course.
Administrate events Data: event title*, category* (to select: training, game, tournament, other), start time* (date + time), end time, duration, location*, meeting time (date + time), meeting place, description/information, teams (m:n), players (m:n) Functionality: add events, edit event data, delete/hide events, assign team(s), assign players (preselection on base of team assignment), send e-mailing with event info to assigned player's contacts, see acceptions/rejections of the players, send e-mailing with update after data changes (optional), get overview of all upcoming events (calender/timetable, filter options by team and date will be necessary)
m:n relation between events and teams, as well as between events and players
Player to event relation should also store some more data: event*, player*, mail sent* (Y/N), accepted* (Y/N), rejected* (Y/N), note
All the extension's features described above should be handled in the backend and need restricted user rights. The coaches for each team will get an own user group/role and should only be able to administrate their team's events, players and contacts.
The features for the players/contacts should be handled in frontend plugins: When they get an e-mail with information about an event, they should have a link (or 2 links) included to accept or decline the player's attendance. That link should load a webpage where the player/contact can accept or deline the event and has a note field to add an explanation.
Also each e-mail to a contact should contain a link to a calender/timetable view with all the upcoming events for the player.
Ideally all the functionality for the players/contacts should work without the need of login data for everyone, which would be really difficult to administrate. My idea would be to auto-generate alphanumeric keys or passphrases for every player, and to use them to make individualized links to accept/decline events and for the calender-view when sending the mailings. That will allow the system to recognize players and it will be more secure than using an id, as people can't find out other player's keys/links easily by trying out sequent numbers.
* mandatory fields
You can make use of any available extensions or frameworks, or develop everything from scratch - no matter. The only important thing is to get a good and working extension with all the functionality described above and with a good usability. If you do it well, more extension development jobs could follow in the future.