Project #2

Admin Your Attractions

Due: Friday April 6, 2018 - 11:55pm

Due: Monday April 9, 2018 - 11:55pm (But no late period!)

Partner requests for Project 3 due Friday by end of office hours (11am)

Also see Addendum for updates.

Overview: A Web Managed Travel Site.

This is a Paired Programming Project. It is the second in a three part semester project working toward a class federation of travel websites. Teams will be assigned through Canvas by close of Friday 3/9/18. You will have a new partner, and one of the first challenges of his assignment is deciding how best to integrate exiting code from your respective project 1 sites.

This project extends the previous project in five major ways:

  1. Attraction pages build on-the-fly from information stored in a site database (a text file is fine for now).
  2. Support for two classes of site users, customers and administrators.
  3. Administrators can add new Attractions through a custom built browser interface. Attractions for any US State can be added. You can choose to make your site into a generic travel site or choose one of the states that your team worked on from project 1 and have only admins see attractions from other states
  4. Customers can request free travel brochures. You don't have to actually ship them, but you do have to give the customers a shopping basket so that they can submit orders.
  5. Both administrators and customers can recover, reset if you will, passwords through an (relatively) secure email protocol.

Requirements Summary

All pages must use the FuelPHP Framework. The database must use models for access. Database entried can be stored in a text file for now. Be ready to change this in project 3 by simply using a different model class.

Please refer back to the Project 1 requirements. Unless there is some explicit reason that a requirement for Project 2 supercedes Project 1, assume those original requirements are still in effect. For example, do not take away the ability for a Customer or Administrator to add comments. An administrator may also edit any previously left comment and even delete a comment. Comments are now persistent.

Once an administrator is authenticated with the site, they can initiate a process of adding an Attraction. That process will require submission of a name, new text description, and the uploading of an image. The text will all be entered into a database of your construction. The file name of the iamge will also go in the database.

A customer can add and remove brochures from a shopping basket and submit an order. Once submitted, the customer and the administrator(s) receive and email version of the order.

If a designated user looses or forgets a password, a special recovery process through email will be impmemented. What is critical is the user carry out the entire process in the same browser session.

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 (except if electing to use your one pair choice). 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 member will submit a single tar file "eid1-eid2.tar" with all the required files. Submission will be through Canvas.

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 and Bootstrap. 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 where we will not cover the material associated with this part of the assignment until later. You are being given several 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 4/2/2018

Please provide the following accounts:

    Username Access Level E-mail Initial Password Hash
    aaronper customer aaronper@cs.colostate.edu 449a36b6689d841d7d27f31b4b7cc73a
    aaronadmin admin Aaron.Pereira@colostate.edu d31bfd85d0a81046f70304ebfecdffbf
    bsay customer bsay@cs.colostate.edu 790f6b6cf6a6fbead525927d69f409fe
    ct310 admin ct310@cs.colostate.edu a6cebbf02cc311177c569525a0f119d7