VeronicaLourens / vero-perfume

CI PP5
1 stars 1 forks source link

Vero Perfume

Vero Perfume is a full stack web application. The application is an e-commerce online shop where sells fine fragrance and perfumes. It provides a smooth online shopping experience to the end users / customers.

User is able to sign up an account, log in / log out to the account, update account profile, add products to the shopping cart and remove it from the cart, update product item quantity in the cart, delete the item from the cart. Signed in user is able to add or delete product reviews and ratings. Signed in user is able to add or delete the product to the wishlist.

The site processes online orders, provides online secured payment method Stripe and fast delivery service. Signed in user is able to checkout and pay for the order. Vero Perfume sends the order confirmation email directly to the user's email address. User is able to contact the store owner via the contact form. The store owner is able to add, edit or delete the product both on the frontend and on the backend.

The site is accessible across the devices tested using different browsers. The site sends out marketing newsletters directly to customers and has a Facebook page to promote the products.

The following card number can be used to checkout an order:

4242 4242 4242 4242 - 04/24 242 42424.

Deployed live site: Vero Perfume

Screen views

Table of Content

UX

Epics & User Stories

Back to top

Back to top

Back to top

Back to top

Back to top

Back to top

Wireframes

I used Balsamiq to create basic site structure to visualize the site’s potential features which helps me to understand better what needs to be done for the project. The end result might slightly different due to the project development.

Back to top

Back to top

Design Choice

The site uses white background with high quality colorful images in a carousel sideshow for the landing page. The site is intuitive with great color contrast which is very user friendly. The project is designed for potentially being used in a real e-commerce online web shop that can be used for both the shopper and the site owner. The application was created using Django MVC structure.

Color Scheme

I have chosen the white color for the site's background and using purple and blue colors for the buttons. Color theme

Back to top

Agile Project Management

I used GitHub Agile project management tool to create user stories using issues and planned the user stories into three different stages using Kanban board with three columns that are To do, In progress and Done. The user stories are labeled with MoSCoW techniques to prioritize the project’s tasks.

Project in progress

Agile

Project done

Future development

Database ERD

I used Lucidchart to create the project's database schema models which helps me to unserstand the relationship between the models. Heroku Postgres database and the SQLite are used for the project.

ERD

Models

Business Model

The Vero Perfume application is a B2C business model that it does the business directly with the end customer. Customer is able to search the product on the site, complete the order, make a payment through secured payment system and receive goods in the end.

Back to top

Exisiting Features

Vero Perfume application contains total 25 pages including the popup modals.

All of pages have the same navigation menu and the same footer. The dynamic navigatoin menu provides an easy way of browsing all pages with dropdown lists. Vero Perfume logo image is on the top left, a search bar in the middle, account and shopping cart on the right. The wishlist icon is present when user is logged in.

The search bar provides a quick way of searching for the products. The site provides sorting and filtering functionalities on the products page to search for the products.

The footer contains a mailchimp newsletter subscription form on the left, the Facebook page, contact us and policy clickable links on the right, the copyright and disclaimer on the bottom.

Home Page

The site's landing page with carousel images to show that the online shop sells perfume.

Back to top

Products Page

Products page contains a list of different perfumes available on the site. Every product has name, price, brand tag, gender and star ratings. Store owner is able to add products, edit and delete products on the site.

Back to top

Back to top

Product Details Page

Product details page contains image, name, brand tag, star ratings, size, quantity form, description, back and add to cart buttons, wishlist icon link and product reviews.

Back to top

Back to top

Shopping Cart Page

User is able to add product to the cart, update the product quantity and remove the product from the cart as user wishes.

Back to top

Back to top

Back to top

Back to top

Checkout Page

Checkout page contains a delivery details form and payment card authorization form for user to fill in for completing the order. There is an order summary where user can clearly see the items and total amount of the order. The site uses the Stripe payment method to process the eletronic money transfer.

Back to top

Back to top

User account & Profile page

User signs up an account with filling in the personal details the sign up form. Then Vero Perfume sends an email to the user with a link asking the user to verify the email address. The user's account is completed once the user click the confirm button. And the user is redirected to the sign in page.

Back to top

Back to top

Back to top

Back to top

Wishlist page

Logged in user is able to add and remove the product to the wishlist. There is a link to the product's detail page if user wishes to view the product details. The error message shows up if the item exist in the wishlist.

Admin Product management page

Store owner is able to add, delete and edit the product on the site.

Back to top

Contact us page

User is able to contact store owner via the contact us form in the footer.

Contact us

Back to top

Policy page

Vero perfume has a detailed privacy policy to let user know the policies.

Policy

Back to top

404 page

User is redirected to the 404 page when accessing to any non-existing page. There is a message to user with a Return to Home button.

404

Server error 500 page

User is redirected to the Server error 500 page when there is a server error. There is a message to user with a Return to Home button.

500

Django admin panel

Admin / store owner is albe to manage the site's data in the admin panel. Admin can add, edit and delete products, brands, categories, add or delete users, reviews, wishlists, see the messages received from the contact form, receives the completed online orders and the payment user made.

Back to top

Back to top

Back to top

Back to top

Back to top

Back to top

Future developments

Technologies Used

Languages & Frameworks

Others Programs

Back to top

Testing

View the site's testing documentation here TESTING.md

Back to top

Deployment

The project has been deployed to Heroku in the early stage of the proejct development just after creating the site's basic functionalities with the base and basic home page. Created Procfile and set up environment variables in my project development environment that helped to successfully deploy the project to Heroku.

Heroku App

  1. I used Code Institute GitPod full template to set up an environment to created the project. Installed Django and required packages / libraries using commands in GitPod terminal.

    • pip3 install Django==3.2 gunicorn

    • pip3 install dj_database_url psycopg2

    • pip3 install dj3-cloudinary-storage

    • pip3 freeze --local > requirements.txt

  2. Create Procfile

    Profile

  3. Attach Heroku Postgres

    Navigate to the Resources tab to attach Heroku Postgres datablse.

    Heroku Postgres

  4. Set up Config Vars in Heroku

    Navigate to the Settings tab to set up the Config Vars.

    Configvars

Back to top

Amazon Web Services S3

The project's static and media files are stored at the cloud-based storage AWS S3 Bucket.

  1. Create an account at AWS Amazon;
  2. Create a S3 bucket, go to IAM to create a group and user, manually set the bucket settings;
  3. Set up CORS configuration and generate the policy;
  4. Add the AWS keys to Heroku config vars and connect AWS to my Django project in the project's deployment environment;
  5. Create folders to host the files and images;

Back to top

Clone Project

Steps to clone the project from GitHub as following:

Back to top

Fork Project

To fork Vero Perfume's repository:

Credit

Back to top

Content

Back to top

Media

Code

Back to top

Acknowledgement

Whilst I have tried to deviate as much as possible, I have taken the certain code from the walk through e-commerce project Boutique Ado at Code Institute which I learn how to build the e-commerce website for a real world application.

I relied upon the support from Code Institue online [tutors](), mentor [Precious Ijege](), [Slack]() community and my [families](). Great thanks to all of those who support my learning journey.

I use Django documentation, W3schools, YouTube and Stack Overflow for general references throughout the project. I watched the tutorial videos on Youtube to gain extra knowledge about Django framework.

Vero Perfume website is intended for education purpose of completing the Portfolio Project 5 E-commerce project for the Diploma of Full Stack Software Development course at [Code Institue]().

Back to top