Final Report - Baytech
Final Report - Baytech
MallMart
By BayTech: Luis Jimenez-Barrios, Warren Ngoun, Yukio Rivera, Jennah Yasin
Description:
MallMart is an online store that sells several categories of products ranging from camping items
to bathroom items and many more. The website is made to be easy to navigate through for
users to have a soothing experience browsing through the site. Here is a breakdown of each
page of the website:
1. Home Page:
a. On the top of the Home page, there is a promotion section displayed as a
carousel where a few items are showcased with details about what sale each of
those items has.
b. Towards the bottom, there is a “sale of the day” section that displays one specific
item every time the page is reloaded from the database as the best sale of the
day and the user has the ability to add that item to their cart, if wanted.
2. Products Page:
a. Under the navigation bar of the webpage, there is a section of categories that can
be chosen from to narrow down all of the products that are sold in the store,
taken from the table items from the database.
b. There is also a search feature on this page that allows the user to search for a
specific product by its name and find the corresponding item and its details.
c. A user is able to add an item to their cart by first clicking on the item name that
will open up a corresponding Modal that displays more information about that
particular item, which is also pulled from the items table.
d. On the bottom of the Modal, there is an “Add to Cart” button that allows the user
to add that item to their cart, and this increments the blue label on the top right
corner of the webpage that shows the number of items in the users cart.
e. We used the fetch() call to be able to pull the corresponding information of a
product being clicked on in the modal from our local API, which is the table items
in the database.
3. Account Page:
a. The account page gives the user the choice to either log in with an existing
account, if already registered, or create a new account.
b. The create a new account button opens up a separate page which contains a
form. Everytime an account is created (form is submitted), the user’s registered
information is added to the table called user_info in the database.
c. Once a user is logged in, they have the ability to edit every field of their account’s
information (besides the username) and their records will be updated in the
database.
d. The second fetch() call was used in the create account page to use the external
API of Unsplash where a user is able to keep refreshing the image option and a
new image appears from that API until a user decides on an image to use as
their profile picture.
e. The user also has the ability to log out of their account on this page.
4. Cart Page:
a. The cart page displays all of the items that were added to the cart and calculates
all of the totals (shipping, subtotal, tax, and total) values.
b. The user is able to select a shipping method and this will change the totals
corresponding to the amount.
c. Once a user is ready to checkout, they can click on the checkout button. This
button will open up another Modal that allows the user to confirm their cart by
displaying the totals again. If the user decides to proceed with the purchase, they
can click the checkout button, otherwise there is a back button that will take them
back to the cart.
i. In order to successfully checkout, the user must be logged into their
account. If the user attempts to checkout without logging in, they will be
redirected to the account page where they can now log in and continue
with the checkout.
d. Finally, the last feature of the cart page is the empty cart button. This button will
clear the cart’s storage and reset it to empty.
Task Distribution:
- When our team initially started this project, we thought we would split into teams of two
where two of us would work front-end and the other two would work back-end. However,
we realized that it would be more efficient if we were to do the back-end work together
and leave the front-end part and detailing to the end since functionality is important for
this project.
- We met up five times and worked on each page of the website together. We would be in
a meeting and give each other feedback as well as work through completing the
functions and routes of the pages together. Towards the end of the project, we realized
we can then split into two teams.
- Warren and Luis worked on the details of the account page where the form of
creating an account was implemented and added those created accounts to the
table user_info in the database.
- Jennah and Yukio worked on the product page, to display the corresponding
Modal of each product which showed its extra details and the ability to further
add that item to the cart.
- We felt that splitting into two during this time was very beneficial because it felt like we
got two things done at once.
- With the rest of the project, we continued to work like this and whenever someone had
an issue with part of the code, other team members would join in and help figure it out.
- We were able to work together as a team and get the website to function and look as
great as we were able to.
Database Schema
2. Products Page
3. Product Modal
6. Edit Account:
7. Create an Account Page
8. Cart/Checkout Page
9. Checkout Modal