Checkpoint Assignment

02 Dec 2020

Prototype of your entire application.

Describe your design for your site’s shopping cart. That is, will it be a separate page that the user can view and edit, or will it be integrated into the product pages? If so, describe in detail how this will work on your site. Provide several examples of using the cart.

It will be a separate page rather than being integrated into the product page. The shopping cart will allow the user to modify and remove any quantities they made. For all the product pages, there will be a purchase button, which will lead to the shopping cart page. If the user wants to add more or go back to the products page, they can do so easily using the nav bar on the side (or top, haven’t decided yet).

Example would be if a user goes to get a product on one page, then another, and click purchase, it will lead them to the shopping cart which allows them to see which items they choose and if they changed their mind then they can remove the quantity. After editing their shopping cart, they can click purchase and it will lead them to the invoice!

Explain specifically how you will use sessions to manage your shopping cart. In particular, what shopping cart data will be stored in the session, what data format will be used (NOT what data type, but the format like with the data format used for your registration data). Use code examples showing what data structures (such as arrays and their keys) you will use to manage the shopping cart data and how they will beused in $_SESSION.

I would use app.get to load in the cart page. Then app.post in order to process the cart information onto the invoice. The things stored in the session will be the product type, product quantity and the user data (if they are logged in). Because we are dealing with more products than before, I would make the var products based on the different html files for the multiple pages portion of the assignment. So var bags, var journals, var washitapes, var pens, and so on. I will include something similar to that for my products data, that will be used to manage the shopping cart data.

How will you avoid access to your application when the user has not logged in or registered? What are the particular security concerns you must address?

I am still deciding whether to make it similar to assignment 2, where the user must login or register after clicking the purchase on the shopping cart. I think that way is much more simpler to make it so that the user knows they are logged in and that it will be easier to get their invoice. The security concerns would be that if the user isn’t logged in, they could easier access the invoice. So, that is one of the things i would have to consider with assignment 3! So, I’m thinking whether to make it super similar to assignment 2 for that portion.

Upon a successful login, how do you provide personalization in your UI? Explain how you did or will do this (paste code if necessary):

I would do something similar to assignment 2, where i would use the username of the user as a personalization, and it will show the user's username upon 'purchasing' when seeing the invoice. The code would be ${params.get('name')}, to create the personalization of the user.

If you are working with partners, how will you split up the work in your team so that you are working in parallel as effectively as possible? That is, who is doing what and when?

Nope, I will be working alone!

How are you approaching Assignment 3 differently than Assignment 2?

I found my system for assignment 2 actually helped out, by doing little by little each day and focusing on one portion of the assignment for 1 to 2 days at a time. However, I think i would do more research on the design aspect of this assignment, especially if I wanted to use different design ideas for my products pages. If i'm not able to do the type of design (that i sketch out) i would use either a css design that matches all the products theme or a simple design overall.

I will be doing it little by little, slowly building upon it like assignment 2, and also testing it so often with drafts as the previous assignment 2, i had tested it out more than 20+ times to make sure it works! This way has been helpful for the past two assignments, so i will adapt it to this assignment 3!

Thank you! :)