2. Brought to you by: CSE Group E1 (Standing, left to right) Abdullah Aldossary, IkemesitAnsa, Jon Gosling, Alex Plopeanu, AizatKamarudin(Sitting, left to right) Hugh O'Donnell, AyushGoel (Tutor) Tom Thomson
3. Our Main Aims Originally planned to be a Real Estate site with a USP (Unique Selling Point): The ability to create your own dream house. To create a website that allows people to build their dream house(s) and then share them with whoever they wish. To keep everything simple and intuitive. To create a fun web experience. A site that is useful for all sorts of different people and also useful in the real world
4. Basic Tech Spec The site is made from the languages: HTML CSS PHP Some Javascript & jQuery The site interacts with a MySQL database to store, update and retrieve data. The site is stored on a Linux server running apache. The site was also stored in an SVN (Apache SubVersioN) group repository. This allowed all group members to access and edit the website.
7. Graphics & Design - IkemesitAnsa As seen here, the objective was to create original designs for the logo and homepage. CorelDraw10 and Microsoft Paint was used.
8. Graphics & CSS – IkemesitAnsa The images were stored on the server. The website logo and homepage were incorporated into the website by writing code in CSS. Colour schemes for the website were also coded using CSS.
10. House Graphics - Alex Plopeanu Initially Google SketchUp was going to be used for house elements. We then discovered that finding real images would be easier and look better. Difficulties: Finding windows Window Reflections Keeping a constant house wall texture Background Swimming pool
12. MySQL Database Structure 4 Tables: Users User details (username, password, other details) Houses House specification and average rating Community Stores users against which house they have given ratings to and what the ratings were. Banned IP Addresses Simply stores IP address which admin do not trust. The site cannot be accessed from these IP addresses.
21. gozMail & SMCF filter– Jon Gosling gozMail takes 4 variables: The recipient The sender The message subject The message body Each of these variables is passed through the SMCF filter, which just removes any ‘illegal’ content, such as: Additional mail parameters Illegal content-types Once the 4 fields have been ‘cleaned’ they are passed to the @mail PHP function. @mail must also be passed: This is a CS server requirement. The PHP mail functions MUST supply a valid CS email address to send from. @mail($emailTo, $subject, $body, $headers, '-f' . ADMIN_EMAIL . '')
22. Password Generator – Jon Gosling Creates random 12bit passwords Uses “a-z” and “0-9” as a data dictionary. Fully editable. Used in conjunction with the password reset function. The result of which is shown below: Shortened version of code for demonstration: // define possible characters $dictionary = "0123456789abcdefghijklmnopqrstuvwxyz"; // define password length $passLength= 12; … while ($i < $passLength){ // pick a random character from the dictionary $char = substr($dictionary, mt_rand(0, $dictLength-1), 1); … // concatenate fresh random chars until $i=12 $password .= $char; // add 1 to counter $i++; … return $password;
23. CAPTCHA – Jon Gosling(Completely Automated Public Turing test to tell Computers and Humans Apart) The CAPTCHA system I designed uses jquery to create a much more user friendly way to prevent bots from spamming the site. On page load, an md5 hash is assigned as the ‘correct answer’ (e.g. the key) On form submission, the md5 hash associated with the image selected is posted for validation. If the two hashes match, the correct image was selected!
24. Rating System – Jon Gosling When ‘viewing’ a house Must be logged in User ratings are stored in the ‘community’ table House ratings are generated by calculating the mean of all user ratings. The average house rating is displayed when ‘viewing’ a house and on the user’s home screen.
25. Additional Functions – Jon Gosling goslinj() Determines where the website is stored and adjusts links accordingly. Javascript Facebook Section of code from goslinj0(): // Grab the current page location $directory = dirname($_SERVER['PHP_SELF']); // place directories into an array $directory_array= explode('/', $directory); // grab the first element $public_base= max($directory_array); return $public_base; // Define the “home location” of the site. $homeLocation= "http://" . $_SERVER['HTTP_HOST'] . "/" . goslinj0() . "/E1/"; http://developers.facebook.com/
28. Operating Systems - AyushGoel Fully Functional on the following platforms: Ubuntu 10.10 Fedora 13 Windows 7 Windows Vista Windows XP Mac OSX Testing Procedure: Make user accounts using a combination of different web browsers, OSs and screen resolutions.
29. Browsers - AyushGoel Fully Functional in all major browsers: Google Chrome Internet Explorer (7,8,9) Mozilla Firefox Safari Opera Chromium Sea monkey Rekonq Epiphany Screen Resolutions: (min) 1024 x 768 … (max) 1920 x 1080