What I have
- backend of the site (in cakePHP) with a database (mysql) of lyrics, bands and music videos
- user authentication
What I need
- I need a module or functionality in CakePHP to provide music charts, voting and archiving of the votes and results
- 3 types of charts (albums, songs and bands) where users can vote - albums and songs are basically the same, bands a little bit different (will describe later)
- functionality to retrieve and save data from other charts (different websites) and show songs/positions
- - users won't be able to vote in these
- - results will be saved every week and checked every day (make scripts for cron)
- - get these as primary from their source web: MTV, t-music, UK singles..
- Only signed up and logged in users will be able to vote
- one vote per user per hour (possibility to change the time in administration or configuration file)
- week period of the voting, saving results and positions of the songs/albums/bands every week
- users can add new band/singer into the chart
- - by typing down the name of the band - they will get the autocomplete results and choose - if there are no results, the user will send the name of the band. (when approving it, admins will add the band to the database)
- - new band will be pending (inactive) until approval AND next week (new voting period)
- bands are rated by a coefficient of user votes and interpret pages visits (homepage/lyrics/videos/mp3s) in last 2 weeks
- Each vote will lose its weight with every week in the database (1st week: 100%; one week later: 75%; two weeks: 50%; three weeks: 25%; four weeks and later: 10%).
- one visit (homepage/lyrics/mp3s/videos) in current week has 10% weight of a vote of current week .
- - when counting votes - only unique visitors are counted (unique per month)
- - the visits will lose their value exactly like votes (but after 10 weeks they won't be counted)
- users will be able to choose which way to display and order the bands in the chart (votes or index order - index will be default)
- The chart will be stopped after definite time (several months), after that time a new chart will be started and we will publish an article about evaluations of last chart.
(I will use only songs here, but the functionality is the same with albums - except for links to the objects)
- Only signed up and logged in users can add a new song into chart (maximum 3 songs per week) - and it has to be approved by admin (also it can be edited and linked to an object in database)
- There will be displayed the song name, band name, picture of album and indicator of movement (green arrow up or red arrow down) at each song.
- - indicator will show the movement in comparison with last week
- Votes from the current week have the 100% weight, one week old votes have 50% weight, older votes are not counted.
- Songs drop out from the chart after 5 weeks (by the beginning of the sixth week they already won't be in the chart).
- If a song has 0 points for 3 days, it will be dropped out from the chart.
- If a song doesn't get any vote in a week, it will be dropped out from the chart.