The desired website offers postings of billboard announcements or “flyers”. The website displays thumbnails of these flyers, and users can browse these thumbnails as well as click on them to display its full size image.
Users who would like to post an announcement (or “flyer”) need to merely provide a valid e-mail address. The authentication system would be similar to that of the popular website [url removed, login to view] in which a user must upload his or her post, and then confirm the post via a link provided to him or her by e-mail. These confirmation e-mails will only be sent to valid e-mail addresses. These same links could be used to edit and delete the post, in a manner like craigslist. There should be a web-master defined black list that will prevent certain e-mail addresses from posting again.
The intended users are students in a mid-size university who regularly post printed announcements of events, meetings, gatherings, rentals of property, private sale of goods, offering of services, such as student tutoring, etc. These announcements are currently posted on billboards scattered around a large university campus. This website offers an electronic complement of such printed announcements and billboards.
A registered/confirmed user should be able to upload a one page/image (jpg, pdf or similar), and a very short (30 chars) description; the website should record the upload date (a time stamp). Upon loading, this website will display a few paragraphs referring to 'terms of usage'; the user must agree to this terms to proceed uploading.
Uploaded images should be limited to 1MB and if feasible, checked for integrity. The accumulated upload total per email address should be less than 10 MB - a configurable restriction.
The website creates a thumbnail of the uploaded image and a “full size” image of the correct size, and redisplays the image, thumbnail, description and the current accumulated uploaded total byte count. Upon confirmation, the website writes this information on a Mysql database which keeps track of posting users,postings and images.
Announcements are displayed in the chronological order they are posted. The webmaster should be able to alter the presentation order. This could be done with a weight system in which the weight factor is generally dependent on the posting timestamp, but can be altered by the webmaster.
All announcements are removed from display once a week (i.e. Sundays at 7PM EST), but not deleted from the database.
Since the number of thumbnails to display may not fit in one browser window (min resolution 1024/768), the website should offer thumbnail scrolling: assume that one browser window could display three rows of 6 thumbnails each - if the database contains say, 50 eligible postings, the website should show the first 18, then the next 18 and so on, with the ability of browse earlier thumbnails.
Each thumbnail should display the short description underneath it.
Usage statistics should be kept by the database and be accessible by the admin. (Number of visits to the webpage, number of clicks on each thumbnail, timestamps of all the clicks, etc.) This information should be easily ported to an excel spreadsheet.
An interested person browsing this website will click on a thumbnail and
a page with the corresponding image in full size will appear. This page will be a new window, and should have a “close window” link, and possibly a rating system for the announcement (i.e. a comments box and an effectiveness rating of 1-5 that can then be stored and collected for the user who posted the announcement. This feature will depend on how much it costs to develop).
Past postings will be removed from the database by the webmaster. This website will be initially hosted on an Apache webserver, but will be moved to a registered domain. The project should be written in PHP/Mysql and if needed, use open source, freely available, add-ons or libraries.
All source code should be delivered and becomes my property so that I
could further enhance it.
I am quite familiar with databases, their setup, administration and access. My current PHP skills are limited.
Details on estimates will be appreciated.