Assignment 3: Adding Sessions to your e-Commerce Web-site


Scenario:

The director was pleased with your past project, but she says that a friend of hers, who is involved in a similar project used “sessions and cookies” to secure and personalize the website for each user. She asks you (and up to two partners) to: 1) add a shopping cart feature to the website so that users can shop at their leisure, 2) enable arbitrary navigation of multiple product pages, 3) email the user the completed invoice for each transaction, 4) maintain a user’s state (i.e. whether they are logged in).

Warning! Do not simply assign tasks to each team member and assume everyone’s parts will work together! There are many serious dependencies in the requirements for this assignment. Make sure your team is very clear on these and ensure that they are satisfied (i.e. tested).

Warning! Do not copy a previous students work. There are many different requirements for this assignment which are clearly visible. Not only are previous assignments different, if you copy one, you will also be copying their problems and possibly outdated packages and use of code (for example, the body-parser middleware is now included in the Express package and does not need to be installed separately). If you use code from another source, clearly reference the source and indicate what changes you made to it. Do not copy entire files (especially someone else’s server.js).

Final Warning! Do not assume it is easier to work in a group! Groups can be a maximum of 3 people. But there are significant extra requirements if you are working in a group (see below) and there is an overhead for communication and coordination.

This assignment involves the following requirements (in addition to all requirements for previous assignments):

Individual additional requirements:

The following are additional requirements that will be assigned to you by the instructor or TA. Your assigned individual requirements are not optional and if not implemented, your assignment score will be severely penalized. You may not copy the implementation code from someone (or somewhere) else. You must design and write the code yourself. Copied code, referenced or not, will result in 0 for the entire assignment. If you are confused about the requirement or expectations, ask the instructor immediately. Once you submit your assignment, there are no excuses for not understanding the requirements and expectations.

If you are working with a partner, you must implement a different individual requirement for each partner For example, if there are three people on the team, you must implement three of the above requirements. If a partner has been assigned the same requirement as another, you may select any of the other requirements to implement. Indicate clearly which requirements you are implementing when you submit the assignment to Laulima.

Group requirements:

Some general tips:

Remember to start early and finish early!! You know how important this is!!!

Other Requirements:

Shopping cart use-cases Your shopping cart must be able to do the following:

There is no requirement in how the above are done. Just that it is possible. You do not need a separate cart editor page. For example, you may allow the user to edit the invoice page. Note that many of the cart functions will already be handled in the product pages.

Check-out use-case scenario:

Final steps:

Run and test your program before and after uploading to the class Web server. To test you must place all your files in the Assignment3 folder on the class web server,using the itm352student account, in a sub-folder called <Lastname_team_member1>_<Lastname_team_member_2>

Submission:
Push your code to your repo and submit the link to Laulima Assignment 3 AND deploy it to the class website. See Laulima Assignment 2 for more detailed instructions.

VERY IMPORTANT:You should still have the username “itm352” with password “grader” set in your program to enable grading of your assignment. And you should still have either index.html or index.htm to start your program.

Checklist: