Giter VIP home page Giter VIP logo

zootees's Introduction

Readme

ZooTees


Screen Shot 2022-08-21 at 04.15.32.png

link to live site

About


ZooTees is a E-Commerce site stocking animal themed Street wear clothes. It is fully responsive and accessible on all devices. It features collections of products, search functionality, a raffle to win discounted zoo trips, and all the usual store features such as a bag, easy checkout with saved details etc.


Business Goals

this is a B2C aimed E-Commerce store selling consumer

Contents


UX


User stories completed

User Story ID Description Epic
view all products As a user/shopper I want to view all products So that I can compare and select products to purchase View / Navigation
view individual item details As a user/shopper I want to view individual item details So that I can identify their attributes & info to inform my purchases. View / Navigation
products categories As a user/shopper I want to see product categories So that I can view products grouped by collections and product types. View / Navigation
Sign in/out As a user/shopper I want to sign in/out So that I can access my account and sign out when needed. Registration/Accounts
Register for account As a user/shopper I want to register for an account So that I can track orders & save my details. Registration/Accounts
View account As a User/Shopper I want to view my account page So that I can see my previous orders & account details. Registration/Accounts
Update details As a user/shopper I want to update my details So that I can change my details used to purchase products (Delivery, Name etc) Registration/Accounts
Purchase with no account As a new user/shopper I want to purchase products with no account So that I can check out frictionlessly on my first visit. Registration/Accounts
Reset password As a user/shopper I want to reset my password So that I can regain access to my account if needed. Registration/Accounts
Search for products As a user/shopper I want to search for individual products So that I can find specific products I would like to purchase. Searching
filter As a user/shopper I want to filter by various attributes So that I can narrow my product search based on my own criteria. Searching
View search results As a user/shopper I want to view a list of search results So that I can view products that match my criteria. Searching
Bag quantity As a user/shopper I want to adjust the quantity of products in my bag So that I can adjust the order quantity via the bag without returning to the product page. Checkout
Order summary As a user/shopper I want to view an order summary before paying So that I can confirm the contents of my order before purchase. Checkout
View bag total As a user/shopper I want to view a total bag amount So that I can keep track of the total cost of my current order. Checkout
Payment form As a user/shopper I want to intuitively enter my payment details So that I can checkout quickly. Checkout
Bag contents As a user/shopper I want to view the contents of my bag So that I can keep track of the products I have selected to purchase. Checkout
Product admin As an admin I want to CRUD products So that I can create/update/delete products in the store Admin
Prize admin As a admin I want to CRUD coupons So that I can create/update/delete prizes for users Admin
Raffle admin As a admin I want to view raffle submissions So that I can validate & review entries to grant prizes. Admin
Collection Admin As a admin I want to CRUD collections So that I can create/update/delete collections of products. Admin
User raffle form As a User/Shopper I want to navigate to the raffle form So that I can submit a form to receive a prize. Raffle Entry
Prizes As a user/shopper I want to view any prizes I have received from raffle entries So that I enter the raffle, win prizes and view what prizes I have won. Raffle Entry

User stories planned for next sprint

User Story ID Description Epic
bag preview As a user/shopper I want to interact with my shopping bag while browsing So that I can save/review/quote products at a glance while browsing the product views. product app
Email confirmation As a user/shopper I want to receive email confirmation upon signing up So that I can confirm my account creation has been successful. Registration/Accounts
Order email confirmation As a user/shopper I want to receive an order confirmation via email So that I can review my order details and confirm it was successful. Checkout

Design


Wireframes

  • all wireframes done on remarkable tablet

Homepage

browser-single-grid copy_page-0001.jpg

Collections

browser-single-grid copy copy_page-0001.jpg

Product Page

browser-single-grid copy copy 2_page-0001.jpg

Product Detail

browser-single-grid copy copy 3_page-0001.jpg

Features


Responsive design

Home

Screen Shot 2022-08-21 at 05.21.31.png

  • Header featuring home & all products & collections & raffle link & search & user profile & cart links.
  • Home hero page with description, shop now and collection links.
  • Link to raffle page

Collections

Screen Shot 2022-08-21 at 05.21.48.png

  • Collections page featuring Title, Description, Shop now and image.

Products

Screen Shot 2022-08-21 at 05.21.41.png

  • All products page with product images, title and price.
  • product filtering

Product Details

Screen Shot 2022-08-21 at 05.38.08.png

  • Product detail pages, Product picture,name,price,description, size selector and add to bag button

Raffle

Screen Shot 2022-08-21 at 05.23.02.png

  • Raffle entry page with favourite collection and description field.
  • will display prize code if user entered.

Shopping Bag

Screen Shot 2022-08-21 at 05.23.24.png

  • Checkout page with all products in the cart and the usual product details.

Checkout

Screenshot from 2022-08-21 05-45-09.png

  • Checkout Form, to place an order and view all items in bag

Profile

Screen Shot 2022-08-21 at 05.23.11.png

  • Profile page to view past orders, saved details or update details

Technologies


Database

  • SQLite
    • development sql server used for trialing models.
  • Postgres
    • production sql server.

Database Design

models.png

created using pygraphviz

Languages

  • HTML5
    • Used for the page templates.
  • CSS3
    • Used to style the individual webpages.
  • JavaScript
    • Used to animate and add interactivity to pages.
  • Python 3 & Django
    • Used for the back end logic, database management, MVC functions.

Tools

  • Git
    • Git was used for version control.
  • GitHub
    • Used to store code, agile project management
  • Gitpod
    • An online IDE used in development
  • Heroku
    • A Cloud Platform the website is deployed
  • AWS
    • s3 bucket used to host static media.
  • Favicons
    • Used for icons on the page.
  • Lighthouse
    • Used to test the site for speed and accessibility.
  • Pylint
    • used for code validation
  • W3C Markup Validator
    • Markup validation service for HTML5
  • Jigsaw Validator
    • CSS3 Validation Service

Web Marketing


SEO


  • robots.txt & sitemap.xml were implemented.
  • keywords were implemented to maximise search results.

Newsletter


Screenshot from 2022-08-21 06-55-26.png

  • Mailchimp was set up to send newsletters to customers.

FB Page


fb.png

  • facebook was used to post adverts and engage the customers.

Development Implementation


Testing


  • automated testing was not used due to time constraints and complexity. all the below methods have satisfied the requirements to prove the application is production ready and stable.

Light House


lighthouse.png

Code Validation

  • all python code validated with pylint.
  • some pylint results were ignored as fixing them broke functionality and a alternative could not be found.
  • all html,css & js verified with djlint, a django template specific linter.
  • black was used to format python to pep8 standard.

User Story Testing

  • see UX section for all user story testing.
  • each user story was tested on multiple devices to ensure it satisfied the original spec.

Bugs

  • mailchimp newsletter behaves unpredictability on certain devices changing sizes, but cause is unknown.
  • a webhook is not implemented but could prevent checkout errors.
  • email confirmations have been disabled as I could not get google email intergrations to work.

manual testing

  • all links have been verified to work.
  • each entry on the sitemap in addition to the user accessible pages has been checked to be a valid link.
  • all forms are validated and will not accept incorrect entry.
  • messages initially did not appear due to incompatibility with bootstrap 5 but have been fixed and confirmed to work on every page.

Version Control


Deployment


Deployment and making a clone

Deployment to heroku

In your app

  1. add the list of requirements "pip3 freeze --local > requirements.txt"
  2. commit all changes

Log into heroku

  1. Log into Heroku or create a new account and log in
  2. create new app
  3. Choose Region closest to your location

Project Page

  1. Go to Resources tab and init a new postgres DB

  2. Database url will be available in config variable page.

  3. Add django secret key, stripe keys and aws keys to the config variables.

  4. This document describes the s3 init process

In Repo

  1. Procfile needs to be created in your app

web: gunicorn PROJ_NAME.wsgi

  1. In settings in your app add Heroku to ALLOWED_HOSTS
  2. Add and commit the changes in your code and push to github

Final step - deployment

  1. Go to section "deployment method", choose "GitHub Automatic Deployments”
  2. type the name of your repository and click "search"
  3. once Heroku finds your repository - click "connect"
  4. Click "Enable automatic deploys” and now your app will rebuild with each new commit

Agile Planning


Templates

templates.png

these templates were used to track my bugs, tasks to be completed and User Stories.

Task View

tasks_late.png

Story View

storyview.png

Kanban

kanbanviwe.png

Credits


Code

Content

Acknowledgements

  • my parents for helping me test the applicaton
  • My girlfriend rachel for helping me create the product images
  • code institute slack for the support when I needed it

zootees's People

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.