We are in need of a group of people to develop a website where folks can sign up and vote on many pictures that have been uploaded. They too can upload the photos that will be voted upon.
There is a prize pool that folks can win on a monthly basis and this is totally driven by the voters. More votes wins.
Our primary interested parties should have experience with this type of web application and too know the potential problems areas that exist. This would be critical to the success of the project. For instance how do you stop someone from creating 100 accounts and voting for themselves?
If folks have an existing design document from a previous project or another means of showing their competency level for a photo voting site that is a power persuader to get the contract.
There are many factors to this site but at a higher level they are broken into this arrangement:
1. Folks can sign up on the site for free (required email verification) and upload pictures. Multiple accounts cannot be created so everything is driven from email address. They have to click a link in order to have the account "Opened" so they can vote and upload pictures.
2. Once the email account is verified, the user can then upload text, pictures and videos of themselves for folks to see. There is a security mechanism where folks can "let" someone see their pictures or setup by default that others can see none of their content. These files will also have a restriction on the size limits unless the user wishes to "purchase space" on the server.
3. Folks can also "talk" to each other on the site. This can only be done through the site and no external emails between users but the users will receive emails should they get a message from another user.
4. Users can send a "smile", "flirt", "kiss" or "smack" to each other via an icon click.
5. Users can "rate" 3 sets of photos. Since each user can rate 3 sets of photos and photos must be uploaded in sets of 3, they get to vote on 9 pictures total. You get three people you can vote on as having the best photos so you give them a 1 - 10 rating for each persons photo. This rating is based on the average of the 3 photos that the person rated. (i.e. I go and vote Person A has 1 picture worth a 9 rating, 1 picture worth a 10 rating and the final picture worth a 10 rating - my "rating" for this person would be a [url removed, login to view] as a result of 10 + 9 + 9 = 29/3 = 9.6666666666666666667.
6. Each rating total for each person is updated when the database is updated so the front end information is being refreshed as votes take place. AJAX will be implemented to achieve this and not refresh the rest of the page
7. AJAX will be implemented extensively to avoid unneeded refreshed of much more information.
8. Rank movies too
9. Users can search for a person by location or username or by physical attributes. (i.e. Black, white Asian, height, weight, last login, currently online, etc.)
10. All pictures will be renamed by using a GUID such that the pictures will not have names that are not compatible with online browsing (i.e. special characters)
11. All users are going to go through a "logging layer" which gives information for all users in what time they have logged in, logged out (or closed the browser), such that statistics can be formulated on the time spent on the site and which page(s) they spent their time.
12. They should also have the ability to "chat with another user" while they are logged into the site if the other user accepts the "chat" invite.
13. All passwords are stored encrypted using a one way key so that a user can never retrieve the password but instead get a new one that is temporary until they change it. SHA 512 is the paradigm we will follow using default [url removed, login to view] functionality.
14. The URL is encrypted such that the users cannot "hack the site" by typing in a users page directly or any other than the homepage.
15. There will be an admin panel which allows me to delete users, pictures, ban email addresses, alter the text on the site that users see when logging in(the homepage) as well as I have an editorial comment section for the photos as well.
16. Everything is database driven in the entire application. Nothing is hard coded except the base page information in HTML such that google can get a good extract from a bot such that the site ranks high.
17. There is actual geometry that needs to be uploaded (pics) in the form of pictures on an explanation page. It tells the users what they should do in order to enter the photos and how they should judge photos etc. The users must have 3 pictures in order to be eligible for the voting and prize pool. These restrictions must be enforced on the site for eligibility.
18. We have purchased telerik controls and all of those will be used opposed to Visual Studio default controls. We will supply the dll's for the bin folder on the site.
19. We have purchased icons that will be used throughout the site for every image. They are in multiple pixel sizes so the appropriate size can be chosen by the coders.
20. Users can easily browse the uploaded photos once logged into the application. They must be 18 to enter the site and create an account.
21. Naming convention documentation will be supplied prior to development and included in the design document that the code develops. We have these standards in both T-SQL and VB.NET.
22. We need the coders to be available during various hours for online meetings via yahoo instant messenger if out of the country and by phone if inside the US or Canada.
23. For Phase II we wish to add the compact framework such that users can use their phone and mobile devices to do all things they can normally do on the site. The coders must be available for this development for a period not greater than 1 year after the completion of the finished product. (i.e. it starts today, they must be able to work on phase II less than a year from today)
24. Database developers will be responsible for the ERD's as well as all tables, indexes, tuning, testing and all other objects in the database.
25. The site will follow conventions in OOP/OOD such that no code is written twice anywhere in the site and too code is overloaded if the signatures are identical then an additional parameter added.
26. A distinct model of Business Logic, Data Access, Presentation layers are followed.
27. All functionality that is used by default (passing parameters to stored procedures, connections, etc. will reside in a "[url removed, login to view] such that everything is called there and implemented into the code behind file.
28. The user must "pass a test" in order to be able to create an account such that folks cannot create multiples but also everything will leverage the users email for a "two part" security check.
29. This site must be designed in based on a multi-lingual paradigm. The first three phases will handle this. If you design the site incorrectly this would be a rewrite of the application. We have identified 12 languages that must be implemented in Phase III, 3 languages in Phase II and American English only in this initial Phase of the project.
30. The users language base (which for now is only English) it will be determined by users computer default language (code is available if needed)
31. Code examples will be available for database retrieval in both [url removed, login to view] and T-SQL.
32. All T-SQL will use industry standards by authors like Louis Davidson and his rivals. The Tom Kyte of Oracle if you know what I mean.
33. Tables will follow normal forms with relationships and restraints used.
34. SCOPE_IDENTITY will be used for foreign keys and defaults will be assigned to by ID's as in IDENTITY(1, 1).
35. All database tables will contain 3 mandatory columns which will be outlined upon acceptance.
36. The site must be designed in such a way that nothing is hardcoded in VB.NET. All referenced information will be contained in the APP_GLOBALRESOURCES folder as resx files.
37. The site will be designed in such a way that the minimum amount of memory will be used. Example: Every drop down list will be driven from the database and this will be using a datareader instead of a dataset. You need no paging since it is the simplest result set. This is extremely important since the number of users will be in the 10's of millions.
38. Ads will be present in a banner and right pane. Rotators and common standards will be implemented here such that you can track the number of clicks. This will ensure the numbers match with other webmasters and too will be implemented in a way the ties to the aforementioned "tracking of users" via the time they login, logout, etc.
39. Information such as the password is encrypted as a common sense thing but in addition to the password, all address information will be encrypted in the T_Address table. This will use a two key paradigm based on the users email (what they use to login to the system (or username that they create)). These keys are stored in the T_Address table in separate columns and must match in order for the address information to be viewed or altered.
40. Please do not bid on this project if you are a single person; we belive this is a task (or set of tasks so to speak) which only a team can resolve in an efficient timeframe.