|
New Coder
Join Date: Feb 2009
Location: Alexandria, VA
Posts: 21
Thanks: 9
Thanked 0 Times in 0 Posts
|
The following is a summary of what I wish to have in this service.
Details of each part are prescribed in this message. *The premise of a
fantasy scoring service is to take daily player statistics (that is
fed in to a database from an external source), and tally those
statistics per a league’s custom scoring rules, custom schedule, and
custom teams. *The total points, or counts of each scoring category,
must be scored on a custom schedule – which could be daily, X times
per week, X times per month, or for the entire season (one period).
The leader of the league is called the Commissioner. *The Commissioner
may enable other people in the league to edit the settings of the
league. *Commissioners may invite people in the league through an
email system in which a link in the invitation email will take the
user to a screen at website, that if they are logged in, will show the
league settings page and have a button for them to hit to accept the
invitation and register for the league. *Commissioners also have the
option of adding and changing managers by typing their*SMF/website username
into a field.
Teams can play against each other, or have multiple opponents during a
scoring period. *Teams, based on the score, could have a win, loss, or
tie. *There will be advanced settings that may dictate a certain
amount of wins , losses, or ties for a team in one individual scoring
period. *Winning against an opponent can be done by having more
fantasy points or winning more scoring categories won. *There can also
be a rotisserie scoring system in which all teams in a league compete
in multiple scoring categories. *The team with the best score in a
category (most runs scored, *highest passer rating, or lowest ERA for
example) would receive N points where N is the number of teams in the
league. *The last place team in that category would receive 1 point.
Teams that are tied for a slot would receive (N + N + 1 + … N + m)/m
where m is the number of teams tied and N is the high ranking they are
tied for. *The totals of all categories are added for a final
roto-score.
How teams score in the custom scoring system and custom schedule is
based on their team. *Their team is made up of real players on a
fantasy team assembled by the manager in some fashion. *Teams must
start the players on a day to have such a player eligible for points.
This is called setting a lineup. *This can be done once per scoring
period or on a daily basis. *Additional settings can be put in place
that give a daily (or by period base on when the lineup can be set)
deadline for when the lineup should be set by – such as one minute
before a player’s game, or five minutes before a player’s game.
Players may be started at certain custom positions based on
eligibility rules. *The rules would simply look at how many games a
player played (or started) at a position during the year and past
years, or go by the default position.
Teams, per the league settings, can add, drop, demote, promote, and
trade players. *There will be many ways that teams can do this per
settings. *Trades would have to be accepted by another team and could
be reviewed and voted upon by the league if a trade was accepted by
both parties. *For instance, there could be a setting that says three
votes against a trade within its pending period (2 days, another
setting), would force the trade to be cancelled. *All moves should be
shown on a transaction history page. *Just as teams can view other
team’s players by going to their team page, they can view available
players at the Players tab where they can view players’ statistics for
the season or between two dates. *I would like to eventually have a
few different formats for adding and dropping players. *For instance,
teams could be allowed to flat out release players, have it be
approved by the Commissioner, or have it be approved by a list where
if a player was on a no drop list then the drop would not be allowed.
Players could be added in many ways as well with a bidding system, a
system add, or a waiver system in which the team at the top of the
waiver list would have first priority and the add would be decided
after a certain period. *If bidding, there could be rules that govern
an auction credit bank each team has and how many leading bids they
may have at once.
An additional part of the scoring service is the draft applet.
Leagues could choose to draft offline in which the commissioner will
load the teams’ players. *This is of lower priority in the entire
project, and upon completion of other areas of the project, we can
discuss the possible Java applets needed for this task. *There would
need to be a way to draft players slowly by adding the available
player of your choice when it is your turn (or do this in a quick live
format), or an auction draft that can be slow or fast. *The Java
applet would be needed for a live draft (fast).
Commissioners will need to have the ability to PM all members of their
league or email all members of their league through a contact page.
Member of the league will need to be able to see the settings of the
league at a clean page.
Old seasons of a league will need to be saved and archived to view.
Leagues will have their own message board that uses SMF. *This is
designed to be part of the league page. Leagues can be made available
to view (not post within) by the public or simply made private in
which someone needs to be a member of the league to view. *As the
admin of the entire system, I would need a way to see total page views
of each league, each month, for each sport along with totals. *The
pages would need to be designed to share some design with the current
forum pages, and perhaps these themes can be blended.
*I have an idea of how the database connections could work. *For
instance, a given league would need to have a players table that has
the player’s ID# (used internally to index players per each sport),
and a column for each scoring period. *Within the columns would be IDs
that would show the ID# of the team the player is on (O if available
free agent), a dash “-“, and then a code for the player’s status (S –
Start, B – Bench, IR – Injured Reserve, D – Demoted). *Of course, you
can determine what you think is best for behind the scenes, but I
figure my thoughts are at least helpful. *Based on the codes within
the scoring systems (which cannot be determined until the lineup is
set), the system will then know how the match should be scored. *A
manager should be given the ability to set a future lineup, and all
lineups after the last lineup that they set are assumed to be equal to
the last lineup. *The scoring of a player can look up into the player
statistics database based on the player’s unique ID# and the date.
===============================
REMAINING TASKS
===============================
I) CLEAN EXISTING 'PHASE I' CODE = $100
*- Per developer's recommendations of improving system processes,
update existing 'Phase I' code (where Phase I is the initial framework
of creating leagues, teams, player universes, and inviting members).
*- Fix issue where user accesses football.php, and despite being
logged into the site, shows them as logged out.
*- Fix issue where user logs in (after football.php says they are not
logged in) and the return page is the forum index, not football.php
*- Current Commissioner Tools have everything divided by DIV boxes.
It is actually pretty nice, but the number of settings will greatly
expand. *My thinking was a root Commish Tools section with links to
each sub-page of controls.
II) LEAGUE PAGE = $50
*- The original developer did not code the League Page correctly.
Right now, the link goes straight to the league's associated message
board. *The League Page should be its own PHP page that will display
like the attached Sample League Page image. *This displays the
Standings of the league, the header (which is already in existence in
other pages), and the message board. *The SMF message board that is
associated with the league is created as part of the existing code.
When the user utilizes that board (post, reply, sticky, lock, merge,
view, etc...), they should be returned to the League Page.
*- Keep in mind that leagues will continue in future years. *They
should have a new league page for each season, but utilize the same
league message board. *The only people allowed to post in the league
message board are the ones in the current league.
III) PLAYER DATA INTO DATABASE = $100
*- Data should have two ways that it can be input. *I am willing to
settle on CSV manual upload for now as it saves on current costs. *CSV
uploads would occur daily.
*- XML feed from Sports Direct Inc should eventually be available, but
consider that an advanced setting right now.
IV) SCORING SETTINGS = $200
*- Add scoring configurations to the Commissioner Tools. *This will
require a lot of my input, and I should know how to edit the available
scoring modifiers. *For example, rushing yards will be in the database
in some table. *A scoring modifier should be available for rushing
yards. *This allows the commissioner to award X points to a team for
players' rushing yards.
*- Most leagues will use the scoring methodology of H2H (head to head)
points, but there is the roto method which can be done H2H or all
season long. *Managers receive points for each scoring category they
win. *The all season long method is mentioned in the LEAGUE IDEA above
and essentially scores all teams together where the worst team
receives one point in a category and the best team receives N points
in a category (where N is the number of teams in the league). *Points
are added up for a total roto score.
*- Commissioners should be able to set some statistics for league view
(hence they are not utilized in actual scoring)
V) TEAM AND PLAYERS PAGE VIEW = $100
*- Once the availability to program scoring modifiers is set, the Team
and Players pages should show stats for the qualified period (default
is current year). *The stats shown should be all stats that are used
or set for league view. *The team page shows all players rostered on a
team. *It shows their stats, name, eligible positions, and status.
Available status are Starting at a position, Bench, or IR. *For
example, WR-RB Dexter McCluster could start at both WR and RB.
*- The players page shows all available players as a default. *There
should be dropdown filters (with a submit button) that allow the user
to filter the list by position, actual team, fantasy team, taken
players, available players, and all players.
*- Date filters: These should be available on both the Team and
Players pages. *Eventually, I want to display stats in the last X
days, last X scoring periods, previous seasons, or a previous scoring
period. *The default should be current year. *This isn't very critical
to the initial rough draft.
VI) MATCHUP PAGE = $50
*- Matchup page: This will take the user to their team's matchup. *It
will show one team, its starters, and all of their fantasy points,
with a total on one side and the opposing team's summary on the other
side. *Users should have no more than one team. *If they don't have a
team then this screen will say "You currently do not have a team in
this league". *The matchup page should show links to all other
matchups in that period with their scores.
VII) POSITION ELIGIBILITY = $50
*- Commissioner Tools - Position Eligiblity - Initially, we can use
default positions set by the database, but I also want each league to
be able to determine players' positions by eligibility settings.
These settings look at the number of games a player starts or plays at
a given position in the current year.
VIII) ROSTER SETTINGS = $50
*- Commissioner Tools - Roster - This is where the commissioner sets
the positions of players allowed in the league, requirements for
number of starters per position, number of IR spots, and total players
on the team.
IX) TRANSACTION SETTINGS = $100
*- Commissioner Tools - Transactions - Commissioner can lock all (or
select) managers from adding, dropping, and/or trading players.
*- Transactions: through the players page, there should be insignia
for adding, dropping, or trading a player depending if they are
available/free agent, on a manager's team, or on an opponent's team,
respectively. *If, per the Commish Tools, the manager is allowed to
make a move, clicking this button will take them to an intermediate
transaction screen that does the following.
*-- Shows a list of players they can drop if they need to drop a
player in order to keep their roster legal.
*-- Shows a list of players they can trade from their team and
acquire from a different team if it was a trade button.
*-- List of players shows stats just like the Team/Players pages do,
and has checkboxes on the left side of the player line if they should
be included in corresponding transaction (drop/trade).
*-- Verifies the manager wants to make the move.
*- If the Commissioner (or assistant commissioner(s)) wants to make
moves for another team, then they will be given a dropdown section in
the intermediate transaction screen that allows them to pick the team
that the player is being added to, or traded to. *Note that any drops
can be handled from the team page or players page and obviously apply
to the team that owns said player.
*- All players acquired via transaction should start off on the bench
X) COMMISSIONER OVERRIDE = $50
*- Ability for Commissioners to adjust previous scoring periods'
matchups (+/- points, change of final score, etc..)
XI) PUBLIC LEAGUE = $25
*- The previous developer coded leagues to be private. *You had to be
a Commissioner or Member of the league to view the league page. *There
should be a setting that allows the Commissioner to set the league to
public. *This will allow anyone to view the league page and for any
site member to post at the league page.
XII) ASSISTANT COMMISSIONERS = $25
*- The commissioner should be able to grant partial administrative
controls to managers in the league. *These controls will be limited to
transactions: approval of pending trade, add players, drop players,
trade players.
XIII) SCHEDULE = $100
*- The schedule can be generated randomly (a team can never play
themselves), X% of the schedule is played inside a team's division
(divisions would have to be even for 100%), or customized.
*- The commissioner can edit an existing schedule and/or set their
league's matchups.
*** BONUSES ***
*- $500 bonus if above is done by October 5th, 2011
XIV) ADVANCED ROSTER SETTINGS
*- Eventually, there will be settings for minor leagues (and
eligibility there), min and max number of rostered players at a given
position, and maximum amount of time stats are allowed to accumulate
to a fantasy team's score in a season (often used in roto leagues,
example 1440 IP is a common max for the pitching staff, or 70 IP per
week is a max, or 9 GS, games started, is a max per week for
pitching). *Much of this, outside the setting of positions, starters,
and spots, can be added to the system later on as it isn't initially
needed.
XV) ADVANCED TRANSACTION SETTINGS
*- More to follow but eventually a unique element of this scoring
service where players can be bid on from a bank of credits in the free
agent acquisition budget (FAAB) or from a fantasy salary cap (where
bidding can be in total contract or annual salary amount)
*- Bidding periods can be set at X hours
*- Bidding can be X hours from time of first bid, or X hours from time
of last bid
*- Current bid can be public or private (blind)
*- Settings for maximum number of outstanding bids at one time for a team
XVI) ADVANCED SCORING PERIODS
*- Scoring periods, this is an advanced setting that is not needed
immediately. *The default should be weekly (Tuesday through Monday for
NFL, Monday through Sunday for other sports). *Eventually, I will be
bringing leagues to this service that have daily scoring periods,
three day followed by four day scoring periods, two week scoring
periods, and monthly scoring periods. *The season scoring period is
basically the ROTO scoring methodology for a category-based league.
XVII) ADVANCED, MULTIPLE OPPONENTS
*- X opponents in a scoring period
XVIII) LIVE DRAFT FEATURE
*- Scheduled draft time where all users go to the league page during
some time prior to the draft (usually an hour) and are able to click
the ENTER LIVE DRAFT link. *Managers may join at any time.
*- Drafts can be handled in a standard format where teams pick in order
*- Draft order can be snaking (1->N, 1->N, 1->N, etc..) or non-snaking
(1->N,N->1,etc..)
*- Draft lasts for X rounds (# of players allowed on a team or
Commissioner Input)
*- Keepers can be declared ahead of time and input by commissioner.
This is where Commissioner has control to assign players to a team's
draft in some round(s).
*- Managers are required, when they are up to draft in a round, to
pick a player within a span of time. *There will be a clock showing
the time counting down by seconds. *Default time should be 90 seconds,
but commissioner has control to set time from a range of 30 to 180
seconds. *If a player is not picked then the #1 player in the teams
Queue is picked. *The queue is a list of players that the manager has
added to the queue during the live draft session. *If the queue has
been exhausted (empty) and the manager never made a pick then the best
available player will be picked.
*- The best available player will be set according to a manager's
prerankings if they were made ahead of time. *The next list will be
the player's projected fantasy points. *The starting lineup should be
filled before any bench spots. *Roster minimums and maximums should be
considered as well.
*- A live auction draft feature should eventually be available where
managers have $X to bid on all players. *They must draft an entire
team, so $1 should be reserved for each remaining empty spot on the
roster. *The user's max bid is equal to the total bank minus money
spent minus the money reserved for the rest of the team. *Players are
nominated by managers in a snaking order.
*- All players acquired in a draft should start on the bench.
===============================
RIGHTS
===============================
Client*has rights to the code. *The code may not be redistributed
to anyone else. *Developer may not code this and sell to another
individual or company NOR use it for their own website. *Payment from
client*to developer(s) for each task in the project is made upon
completed testing. *Note that testing is done relatively quickly and
some bugs will be expected later on in which developer will be needed.
*This project has the ability to produce many more opportunities for
developer.
|