A web application for sports league management with some social networking features.
Site will be built into Drupal 6.4 or 5.10. If you do not wish to use Drupal, please send me a proposal regarding the CMS you prefer.
Application will allow the creation of multiple teams and leagues for hockey, soccer, and basketball. Additional sports may be added as a future phase. Additional sports should be able to be “dropped in” with the definition of positions and statistics of the particular sport.
Users can be on multiple teams across multiple sports. Users must register their age and geographical location (example – Denver, CO only, no street address). Users will have their own personal page that includes their teams, personal statistics, and user defined text content. Stats will be listed by most recently updated, sorted by sport. Other users can contact the user via internal site private messages. Users can add other users as ‘Fans’; this add must be confirmed by the added user. Users over the age of 18 cannot contact users under the age of 18 unless the both belong to the same team/league or have been added as “Fans”.
Teams – A team consists of groups of players, ideally created by the team’s manager. Teams will be differentiated by age level, incremental by years or listed as adult with adult as the maximum age level (examples: 15 to 17, 40 and over (adult)). To be listed as a player, the user must be in the designated age level. The team creates a listing of players that are part of the team and, if the players are registered, invites them to formally join. Players do not need to join a team for the team to post statistics about them. Unregistered players will be identified by user designated jersey number, first name, and first initial of last name. The creator of the team will be listed as a team administrator and can add any additional users to this roll. The administrator (team rep if not a player or coach) can invite registered users or remove users connected to the team. Additionally users can join the team as a coach, team rep, or fan. Joining members must be approved by a team administrator. Teams will have their own page where team administrators can schedule games and practices for their team, post statistic results from the games, and post team updates, visible to all users. Results can be confirmed by opposing registered teams, unconfirmed results will be listed in a second row. The team page will also listed users listed as part of the team, with sections for players, coaches, team reps (if not listed in above groups), and fans, and have a message board usable by and visible to only registered team members. Teams must have a designated geographical location (example Denver, CO USA). A team can belong to more than one league. If a team belongs to a league(s), their standing will also be displayed on their page.
League – A league is a group of teams at the same level who compete against each other. The league creates a listing of teams that are part of the league and, if the teams are registered, invites them to formally join. Teams and players do not need to join a league for the league to post statistics about them. Unregistered players will be identified by user designated jersey number, first name, and first initial of last name. The creator of the league will be listed as a league administrator and can add additional users to this roll. Joining teams must be approved by a league administrator. The administrator can invite registered teams or remove teams connected to the league. Leagues will have their own page where league administrators can schedules games for teams listed in their league and post statistic results from the games, visible to all users. Results can be confirmed by a team administrator for registered teams; unconfirmed results will be listed in a second row. Team standings will be on the league page. Team and player stats will be included on the league page and can be sorted by a particular stat. If the league administrator is also a team administrator no confirmation will be necessary. The league page will also have listing of teams and a message board usable by and visible to only registered league members. Leagues can have a designated geographical location.
Organization – An organization is a group that has a number of teams associated with it. A local example would the Boulder Valley Youth Hockey Association Boulder Bison hockey club. The organization creates a listing of teams that are part of the organization and, if the teams are registered on SportDish, invites them to formally join. Teams do not need to join a team for the team to post statistics about them. If teams are not listed, then team stats without a link to their team profile are posted.
Team and league pages will also have contact forms where registered users, both members and nonmembers can send internal site private messages to team/league administrators. Teams and leagues can have designated start and end of season dates.
Users, teams, organizations, and leagues can upload pictures to their respective pages.
Teams, leagues, and organizations all can enable online payments (team/league fees) for users joining the group. Administrators will have the ability to define the dollar amount and change/waive the amount for individual users. A report will be available to track who has paid. Payments will occur via Google Checkout.
Scheduled games and practices will be displayed on a calendar for leagues/teams/organization/users associated with them. When games and practices are being entered, date, time, location (name and/or address), and opponent (with a designated home team) must be entered, with additional optional fields for directions and notes).
Basic and advanced search functions for users, teams, and leagues based on geographical location, age, sport, etcetera.
All registration/forms must use anti-spam validation (captcha or similar).
Please use [url removed, login to view] and [url removed, login to view] as a basis for required statistic layout (will not be defining all the stats used on those sites).
Vendor will provide staging/development server.
Product must be XHTML compliant, W3C validated, and cross browser compatible. Intellectual property of custom code will belong to me. Product will be installed on my server.
Must be able to read and write excellent English.
60 day warranty that starts the day this system is placed into working production on my server covering bug or major performance problems found within this warranty period.
Completed system within three months (coded, tested, and released into production).