Roles and Requirements
Stakeholders - Need to see the overall profit and loss of running the site per web host and per country - maybe we put this on a separate secure server
Login in screen with capcha since if hacker gained access to this area it would be disastrous to provide access to a reporting area and configuration area with the following reports:
1. Global report on affiliates downloads
2. report on reseller performance
3. total number of files downloaded
4. total uploaded,
5. number of active premium paid accounts
6. number of Premium for Free accounts activated each day.
7. easy way to view revenue data from each monetization
8. Report on revenues raised and due to be shared – we need to work this through..
Administrators –
Need to make sure content is legal and that hackers are being blocked and to tweak performance settings per country.
• Need to be able to adjust:
1. Set account limits - change the timeout between downloads for a free user
2. change the number of simultaneous downloads for anonymous and free members
3. change the speed restriction of downloads for a free user
change the number of simultaneous downloads for anonymous and free members
4. change upload speeds for each user
5. change number of multiple uploads allowed per user
6. toggle unzipping of individual downloads per user, per country
7. ability to switch off traffic from countries
8. ability to permanently delete a file
9. change maximum file size to be uploaded for each type of user
10. IP driven Download manager to force certain IP ranges on to slower bandwidth
11. Delete files DMCA
12. Ban / block users / email addresses IP etc
• Set points systems – refer to http://drupal.org/project/userpoints
Activity Points
Invite a Friend 2
Invited Friend Visits Site 1
Invited Friend Becomes Free Member 1
Each time “ “ “ Premium for Free Member 5
Each time “ “ “ Premium Member 10
Free Premium Member to Affiliate -25
Add Additional Storage Space -1 per 1MB
• billing price points
• membership periods,
• Pay Affiliates, see http://drupal.org/project/affiliate
• Pay Resellers,
• Reconcile bandwidth bills,
• Reconcille Advertiser Traffic and Revenue,
• View Users with most points each month.
• See reports on hacker attacks and be able to adjust security controls (be alerted of IPs which are requested files too frequently and add filter and alert Admin),
• Set criteria which makes links become inactive.
DRM owners – Need to be able to remove content which is illegal, they need to apply to be a DRM moderator
Advertisers – View time and country based reports of clicks, impressions. http://drupal.org/project/ad
Anonymous users –
• Upload a File (and tag it and describe it),
• Share a File to social networks (a tiny URL is given), http://drupal.org/project/gigya
• When upload process is completed, a sharing module is called with the generated links in easy to distribute formats such as BB CODES and an easy to select and copy link to memory for easy pasting. This will also be where the gigya module is initiated so users can send the links, with description and tags to their friends in social networks. Yes, and also to their contacts too. Restricted Download a File, View public profile. If an inactive link is requested, redirect to any public content which matches the keywords tags from the file which had been initially requested.
Authenticated users –
• Can FTP files to the system (need to be given connection details).
• Can comment on files they have downloaded.
• Can do remote uploads, (eg linking to a youtube video),
• Can manage uploaded files through a flash based interface. Can create, move, cut and paste folders. Can edit files in web browser.
• Score Points based on activities, View Points, Upload a File, Share a File, Less Restricted Download a File,
• Carry out a CPA activity, (such as complete an online questionnaire) to get Premium for Free access.
• Can View public profiles, create public/private profile, delete profile, configure “what are you sharing” field, assign public/private files to the profile, if profile is private, allow user to share the profile to friends.
• User can apply to join or create a tribe, which allows users to share files and messages of a common topic. Tribe owners handle applications to join tribes from other users.
• Can become members via paying via SMS to get membership (country dependant), http://drupal.org/project/sms_payments_api (Greek documentation, English code!)
• can pay by credit card or paypal to get membership.
• Can extract archived files into individual files, (include option for password protected archives). Can determine the order of a sequence of files. If account has qualified for upgrade, display time or resource limits before upgrade period ends.
Members–
Same as authenticated users but with slightly different scoring system based on activities, and Less Restrictions on Downloads and file storage.
• Can exchange points for more storage space.
• Can pay via SMS to renew membership, can pay by credit card or paypal to get membership. Authentication is required to check whether premium users are not sharing their account to other ip addresses.
• Can upload files, folders and sharing options through a AIR desktop application, (desktop app to be provided, but need to know how to integrate)
• NO advertising other than those sold directly by Mega as page sponsors (TBS)
• Alerts when membership expired.
Affiliates –
• Score points every time someone downloads a File they have posted,
• Signup,
• View Reports on Traffic,
• Setup Payment Info,
• Get Paid
Resellers –
• Recommend Membership,
• View Reports on Traffic,
• Setup Payment Info,
• Get Paid
Downloads
In general the download page will check if the user is logged in by reading the cookie on the local machine.
Login/Register link
It will read in the file requested which should be a shorted. Anonymous free users will also be given a cookie to detect if the repeat requests are from the same user – to give us a handle on connectivity problems.
Free – User download.
Proposed Download Process for a Free User:
1. HTTP Request for a file of type: mydownloadsite.com/dnd/123456
2. .htaccess file redirects request to help filter DDOS and Leechers away from the core. Ip filtering and detection of bad sessions.
3. User verification (ANONYMOUS, REGISTERED, PREMIUMFREE, PREMIUM) and set constraints.
4. Log request – check no. of concurrent downloads by this user is within limits stored in constraints from 3.
5. Identify the true file which the user is requesting
6. Check if this file has been downloaded more than x times in y seconds, if necessary load CAPCHA.
7. Apply constraints and if necessary start a timer countdown to show user when download will begin. Loop timer back to beginning if file is re-requested from same IP address.
8. Check if an Ad should be loaded and count impression
9. Check if a popup should be loaded and count impression
10. Download file in chunks and log progress of the download, which will give data on number of concurrent downloads and give data on number of successfully completed downloads.
11. Update download count for the file when file is completed
Some other considerations
1. Putting the download component on its own virtual server away from the website itself
2. Configuring using RIPE addressing so that only high revenue countries get premium bandwidth
3. Countries such as those in the middle east and sub continent are probably NOT on premium dial up lines I would like to be able to dynamically assign these downloading ip’s to virtual servers on throttled bandwidth
4. Have a control panel to dynamically assign IP ranges to throttled servers – So for example if we notice a huge amount of illegitimate traffic coming from a range of IP addresses we add them to a data base and they get drip fed.
Uploads
There will be a simple upload script to process uploads for anonymous users. The system should be made to be compatible with this, which basically means that we need to know which tables to update and where we should copy the uploaded files to.
User Admin
All accounts have admin functions to change profile details such as email address, mobile phone number (for opt in billing), username, password.
A reset password link is required with a capcha to prevent robots. And possible simple arithmetic question to stop spam use rotate image captcha’s.
File Manager
Authenticated users can administer their files using file manager, perhaps a modification of IMCE module. The main modification is for when users wish to share files. It needs to be simple for users to organize and mark files for sharing. File should be given a description and show the real original name and the new download coded name.
We need a simple sharing interface so that a user can send files through GIGYA MODULE to social networks to update their status with a download link.
A FLASH interface is being independently made at this time and the application must have all the necessary functions to communicate with this interface correctly. Eg functions to organize, edit, copy, remove, share and upload, files and directories.
________________________________________
Home page will list in a feed, like facebook wall, the latest public downloads which have been offered by users.
Please give feedback on if you could do part or all of this and what rates and time you need to complete.
Remote work.
Contact daniel_higgins on Skype if you have questions and to make your response.