EasyVape is a E-Commerce webpage, produced as my final project in CodeInstitute. This is a fullstack website, which "sells" Vapes and E-Juices DHe by EasyVape, which is a fictional company.
The main technologies used were HTML, CSS, JS, Jquery, Python and Django. All images were created using Dall-E-2
Click here to visit the deployed website.
- Website presentation
- Structure
- UX
- User Stories
- Agile Workflow
- Business Plan
- Technologies Used
- Testing
- Deployment
- Credits
In this section, I want to show you how to navigate this website, how to check for products, add products, check out, how to add a review, add to products to the wishlist and fill the contact form.
This is the Home Page, it includes the navigation bar, a jumbotron image with an invitation to shop and the footer.
In the Navigation Bar the user is able to user the search bar, check for products, access the contact form, check his bag and by clicking on the account, he can access his profile and wishlist.
Here is the product list page, the user is able to see a list of products and choose which one he is interested.
Here in the Product Detail page, the user is able to select the product quantity, add it to the bag, add to the wishlist and write a review.
Inside the Product Detail page, the user can add products to the bag, by clicking on the add to the bag
After this, go to the bag icon on the top left, here in the bag page, you can increase the quantity or remove the products. If the user is satisfied he can click on Secure Checkout to be redirected to the checkout page.
Here in the Checkout Page, the user is able to see his order items and total. To complete the checkout you need to fill in the necessary forms. If you want to test your purchase you can type "4242 4242 4242 4242" in the card field, Stripe will know this is a test
Also, the user will receive an email with the purchase information.
If needed, the user can also write a Contact form. The site owner will be able to read in the admin page and he will also receive a email with your name and subject.
In the product detail page the user can add a product to the wishlist. In order to access the wishlist, you can click on manage wishlist or in the account menu in the top left of the nav bar. Inside the Wishlist page you can see your favorite products there and remove them if necessary.
Wishlist Images
Click on "Add to Wishlist" buttonIn order to access your wishlist click on the "Manage Wishlist"
Or you can click here.
This is your wishlist page
In order to remove click on the "Remove from Wishlist" Button.
Inside the product detail page, the user can also add a review, which will be posted after the admin analyzes the review.
The footer can be found on the bottom of every page. Here the user can access our facebook and instagram or twitter, which were not created. The user can also see how to reach us and where to find, which are "fake" locations. And also, the user can subscribe to our Newsletter by adding his email and clicking on the subscribe button.
Wireframe created using Balsamiq
Here is the entity relationship diagram (ERD), showing the relationships between the various models used int his project.
- Quickly identify what the website is about
- Search for Products
- Add Products and Manage products in the bag
- Secure Checkout, provided by Stripe
- Register for an account
- Subscribe to a newsletter
- Add a review
- Add products to a wishlist
- Contact the site owner via the contact form.
- Receive confirmation of the purchase
- Sell items online
- Add new products and categories easily.
- Manage user reviews to avoid malicious comments.
- Read user contact form in the admin panel.
- Receive payment securely via Stripe.
This project was created using Agile techniques during development, such as:
- User stories: displayed using GitHub Issues.
- MoSCoW method: by adding a priority to each issue and display it using tags.
- ToDo, In Progress and Done: using the GitHub Kanban board.
You can access the Kanban board that was used during the project development here.
You can access the list of issues/user stories used during the development of this project here
- As a user I can View a list of products so that I can select some to purchase.
- As a user I can view selected product detail so that I can get more information about the product.
- As a User I can view the purchase total so that keep control of how much I am about to spend.
- As a user I can register for an account so that have a personal account and view my profile.
- As a user I can easily login or logout so that Access my profile or logout my account.
- As a user I can receive an email confirmation so that verify that my account registration was successful.
- As a user I can have a personalized profile so that view order history, confirmation and save payment information.
- As a user I can sort the list of products so that easily identify the best rated, best priced and categorically sorted products.
- As a user I can sort a specific category of product so that find the best priced or best-rated product in a specific category, or sort the product by category name.
- As a user I can sort multiple categories of products simultaneously so that find the best-priced or best-rated products across broad categories, such as vapes or e-liquid.
- As a user I can search products so that find a specific product.
- As a user I can select quantity of product so that decide how many I want to purchase.
- As a user I can view items in my bag so that identify the total cost of my purchase and all items I will receive.
- As a user I can adjust items in the bag so that easily make changes to my purchase.
- As a user I can view the order confirmation so that certify that my order was successful.
- As a user I can receive a email confirmation after checkout so that keep a record of my purchase.
- As a user I can easily enter my payment information so that checkout quickly.
- As a store owner I can add a product so that display items in my website.
- As a Store Owner I can Edit/Update Product so that change products price, description, image and other criteria.
- As a Store Owner I can Delete a Product so that remove items that are no longer for sale.
- As a user I can add products to a Wishlist so that I can save my favorite products.
- As a user I can Remove Products from Wishlist so that delete unwanted items from there.
- As a user I can write a review so that I can tell others user about my experience with the purchased item.
- As a user I can read reviews so that I can have more information about the item I am about to purchase.
- As a user I can Delete a review so that change my review if needed.
- As a user I can write a form so that I can contact the owner.
Vape Attitude uses Business-to-Consumer(B2C) retail model. This website is the online platform where the company connects it's products with the costumers. All Vapes and E-Liquids are produced by Vape Attitude and sold on the webpage.
The Customer Orders from the Website, the Website sends the Order Request to the Warehouse and from the Warehouse the Order is sent to the Customer.
We currently offer 21 Products, which are divided into these Categories; MODS, PODS, E-Juices with Nicotine and Without Nicotine.
-
7 Vapes
- Which 4 are MODS, with price ranging from 90 Euros to 120 Euros.
- Which 2 are PODS, with price ranging from 45 Euros to 66 Euros.
-
14 E-Juices
- Which 7 contain Nicotine, with price ranging from 5 Euros to 6.50 Euros.
- Which 7 do not cotain Nicotine, with price ranging from 3.50 euros to 4 Euros.
Our products are sent directly to the user location, the delivery fee is 10% percent of the Product Total Price. But, if the user spends more than 80 Euros we offer Free Delivery.
Since Facebook has one of the highest numbers of users worldwide, we opted to create a Facebook page to connect with our users.
Also, users can subscribe to our Newsletter by filling out the form found on the bottom of the page, provided by MailChimp.
In order to improve the SEO, I have added a sitemap.xml and robots.txt to the website.
- HTML5
- CSS
- JavaScript
- Django
- Bootstrap
- Git
- Used for version control to commit to Git and Push to GitHub.
- Gitpod
- Used as the IDE to write all the code used in this project.
- Github
- GitHub is used to store the projects code after being pushed from Git.
- Heroku
- Used to deploy the application.
- Google Fonts
- Used to import the fonts.
- FontAwesome
- Used to import icons.
- Balsamiq Wireframes
- Used to create the project's wireframe.
- Amazon Web Services
- Used to host all images and static files.
- Django AllAuth
- Used to deal with user account registration.
- Chrome DevTool
- Used to debug and test new styles.
- ChatGTP
- Used to debug.
- Dall-E-2
- Used to create all Images.
- I have used a combination of automated test and manual testing.
- Tested with Jigsaw
- Tested with Validator.w3
- Here is the sequence of manual test I have applied to check if all applications work.
-
Steps:
- Click on the Account Menu, on the top left.
- Select Register.
- Fill up the form.
- Check your e-mail.
- Click on the link and confirm.
-
Outcome:
- Pass. User is now registered and able to login.
Graphic Example Below.
-
Steps:
- Click on the Account Menu, on the top left.
- Select Login.
- Click on "Forgot Password"
- Check your e-mail.
- Click on the link.
- Add new Password.
-
Outcome:
- Pass. User has a new password and able to log in.
Graphic Example Below.
-
Steps:
- Click on the Account Menu, on the top left.
- Select Login.
- Fill up the Sign In Form.
- Click on the Sign in Button.
-
Outcome:
- Pass. User is now logged in.
Graphic Example Below.
-
Steps:
- Click on the Account Menu, on the top left.
- Select Logout.
- Click on Sign Out
-
Outcome:
- Pass. User is now logged out.
Graphic Example Below.
-
Steps:
- In the Nav Bar, select the Category wanted.
- Inside the Product Detail page, on the top left Click on Sort By.
- Select Price (low to high)
-
Outcome:
- Pass. User can see the product list and sort it by price.
Graphic Example Below.
-
Steps:
- In the Product List Page.
- Click on the wanted Product.
-
Outcome:
- Pass. User can see the product detail page.
Graphic Example Below.
-
Steps:
- In the Product Detail Page.
- Select the amount needed.
- Click on Add to Bag.
-
Outcome:
- Pass. User is able to Add the Product to the Bag.
Graphic Example Below.
-
Steps:
- On the top left of the page, click on the bag icon.
- Select the quantity needed.
- Click on Update.
-
Outcome:
- Pass. User is able to view his bag and increase the item amount.
Graphic Example Below.
-
Steps:
- In the bag page, click Secure Checkout.
- Fill up the form.
- Click on Confirm Order.
- Check Email.
-
Outcome:
- Pass. User is able to Checkout and receives a Confirmation E-mail.
Graphic Example Below.
-
Steps:
- In the Product Detail Page.
- Click on Add to Wishlist.
-
Outcome:
- Pass. User is able to add product to the Wishlist.
Graphic Example Below.
-
Steps:
- Either:
- Click on Manage Wishlist on the Product Detail
- Or on the top left in the account icons click on Wishlist.
- Click on Remove from the Wishlist.
- Either:
-
Outcome:
- Pass. User is able to view the Wishlist and delete products from there.
Graphic Example Below.
Views and Remove items from Wishlist Images
In order to access your wishlist click on the "Manage Wishlist"Or you can click here.
This is your wishlist page
In order to remove click on the "Remove from Wishlist" Button.
-
Steps:
- In the Product Detail Page.
- On the bottom there is a Review Form, write your review there.
- Click Submit review
-
Outcome:
- Pass. User is able to add a review.
Graphic Example Below.
-
Steps:
- Go to the Admin Dashboard.
- Click on Reviews.
- Check the Is Approved Box.
- Review is now posted.
-
Outcome:
- Pass. Admin is able to moderate reviews and see the review posted.
- All users can see the review now.
Graphic Example Below.
-
Steps:
- In the Product Detail Page.
- Click on the Delete Button.
- Only the owner of the review is able to see this button.
-
Outcome:
- Pass. User is able to delete his own review.
Graphic Example Below.
-
Steps:
- On the middle of the Nav Bar, click on Contact Us.
- Fill up the Contact Form.
- If the user logged in his email will be displayed there already.
-
Outcome:
- Pass. User is able to send a form.
Graphic Example Below.
-
Steps:
- Site Owner has received a Email after form submission.
- Go to the Admin dashboard.
- Click on Contacts
- Click on the Name of the contact form you want to read.
-
Outcome:
- Pass. Admin is able to read the Contact Form.
Graphic Example Below.
-
Steps:
- Either:
- Go to the Admin Dashboard.
- Access Product Management in the Accounts Icon.
- In the Product Management.
- Fill up the form.
- Either:
-
Outcome:
- Pass. Site Owner is able to Add a new product.
Graphic Example Below.
-
Steps:
- Go to the Product Detail Page or the Product List.
- Click on Edit.
- Only SuperUsers can see this option
- Fill up the form with the necessary changes
-
Outcome:
- Pass. Site Owner is able to Edit a Product.
Graphic Example Below.
-
Steps:
- Go to the Product Detail Page or the Product List.
- Click on Delete.
- Only SuperUsers can see this option
-
Outcome:
- Pass. Site Owner is able to Delete the product.
Graphic Example Below.
- In order to Deploy this project:
- Either fork or clone this project.
- Heroku Setup.
- AWS Setup.
-
In order to Fork this repository:
- Access your GitHub account and find the relevant repository.
- Click on 'Fork' on the top right of the page.
- You will find a copy of the repository in your own Github account.
-
In order to Clone this repository:
- Create repository where you will work with this clone.
- Copy "https://github.com/gioZAK/easy_vape.git".
- Run the directory you want the clone to be.
- In your IDE's terminal type 'git clone' and the paste the URL you just copied.
- Press Enter.
- You now have a local clone.
-
To setup with Heroku:
- Create an account at heroku.com.
- Create a new app, add app name and your region.
- Click on create app.
- Go to "Settings".
- Under Config Vars, add your sensitive data.
- Now go to your IDE and connect your enviroment with heroku.
- heroku login -i.
- Then run the following command: heroku git:remote -a your_app_name_here.
- Finally: git push heroku main.
-
To setup with AWS:
- Create an account at AWS.
- Navigate to the IAM application and create a user and group.
- Set the AmazonS3FullAccess for the user and copy the AWS ACCESS and SECRET keys as config vars to your workspace and Heroku.
- Create a new Bucket within the S3 application with an appropriate name.
- Enable public access for your bucket so users can access and use the services on your website (upload, view, download, etc).
- If Needed Documentation at https://aws.amazon.com/s3/.
- I have relied on the Code Institute Boutique Ado Walktrough Project in order to make my own.
- Special Thanks to the Code Institute staff for the support throughout the course.
- I have used ChatGPT as a tool to debug and to guide me on how to apply new functionalities.
- I have created all images using Dall-E-2