Project #1

Explore the States

Due: Friday Mar 9, 2018 - 11:55pm

See Addendum for updates.

Overview: A Tour Attractions Site.

This is a Paired Programming Project. It is the first in a three part semester project working toward a class federation of tour attraction information websites. Teams have been assigned in Canvas. The detailed functionality expected for a site will laid out in each project assignment. There is no shortage of online sites showcasing tour destinations. Your efforts will be simpler in many ways, but you can begin to think about layout and such by examining examples. As you can see, sits such as this have a set of requirements to maintain a meaingful web presenece.

As you work on this Project, keep in mind that the code you are writing will live on past this Project and into Project 2. Moreover, you will have a new partner in Project 2 and the first thing that you will be doing in Project 2 with your new partner is reviewing each others code base to decide what parts to keep, and what parts to leave behind. For this reason, if for no other, focus on writing clear, documented, maintainable and extendable code.

Requirements Summary

Here briefly are working requirements and components that must be present in your site.

  • All pages to be developed using PHP, HTML and CSS
  • All pages use the Fuel PHP framework
  • A Home page - Welcome message, info and links about other sections etc.
  • An About us page
  • A Common Header (Title and Logo), Footer and Navigation elements on all pages - Please implement using Fuel layouts.
  • An Authentication Page - a simple hardwired authentication - hardcode at least 3 sets of credentials. One for each of you on the team and a third with Username: ct310. The password for this user will be provided soon.
  • Individual pages for each attraction. For now, these are real pages in the sense there is a *.php file on the server for each attraction. You will be assigned a US state and will pick three attractions from that state. You must do this research yourself. For example, if you are assigned Kansas, you might pick the World's Largest Ball of Twine. (See Addendum at the bottom of this page for assignments.)
  • Provision for commenting on an attraction. Comments may only be entered by authenticated users. For Project 1 you need only redisplay the comment temporarily. To be clear, you need not yet build and archival store able to retain comments over time. That requirement will come in Project 2.
  • You need sanitize user input. Refer to this Sanitize and Validate Data with PHP Filters for a nice explanation of how best to sanitize input. Fuel might help you with this...
  • Each attraction needs a picture, and you must include an acknowledgement with each picture clearly showing the origin of the picture and in so doing indicating your right to use that image.
  • All your pages will carry a disclaimer on the footer in fine print which reads: "This site is part of a CSU CT 310 Course Project." The text "CT 310" will be a link to the course homepage.

Appearance

The appearance of your site must be professional. We recognize that at one level 'Professional' is a vague term, but you are an experienced consumer of web content and should have your own understanding now of what is and is not a well designed site. We will of course discuss this in class and if in serious doubt, ask. As a guide, here are some general hints:

  1. Design broadly how you entend to structure your pages before building them. Answer for yourselves how you want layout to flow and then implement that flow consistently and smoothly.
  2. Keep it simple. A clean consistent reliable layout is better then one that is cluttered and inconsistent.
  3. Have a color palette theme of your choice to maintain consistency and professional look and feel.
  4. Do think about font styling and size. Text elements whose size and appearance is out-of-step with its surroundings are visually jarring and generally unpleasant.

Project Teams

This project, as will be the case with all projects in this course, is a team programming exercise involving groups of two. In the working world, it is rare that one selects one's teammates, and so it will be here with the exception of one project of your choice. For that one project two people may mutually agree to be on a team. You will have a random team for the other two projects. New teams will be formed for each of the projects assigned through the course of the semester. You will be able to see your assigned team from within Canvas. It is up to you to then contact each other and make arrangements to work together.

Each team will submit a single tar file "eid1-eid2.tar" with all the required files. Submission will be through Canvas. Please list eids in alphabetical order

Do not use any web development application, for example Dreamweaver, to create your site. You are doing this work to gain experience writing HTML, CSS, PHP. Also, always remember that your work will be tested with Chrome on department machines.

Your Time Management

You have all been told this before in other classes, but it needs to be stated here clearly. There is a lot required of you before you will have a full and complete solution to this assignment. Also, there are elements, such as authentication, where we will not cover the material associated with this part of the assignment until later. You are being given 4 weeks to work on this and you are expected to start work immediately. Development is an incremental process and you and your team partner need to start setting intermediate goals; and then making those goals. If you wait until one week before this assignment is due then one of two things will happen. By far the most likely outcome is you fall far short of the requirements. Much less likely, you will demonstrate a rare talent for coming through in the eleventh hour; please do not count on this second option working.

Addendum (Updated Never)

Each team has now been assigned a state. Teams may build in more than three attractions from that state if they wish for Project 1, but only three are required.