Skip to content

Ecommerce website developed using the Django framework for a ceramics business called Zen Ceramics.

Notifications You must be signed in to change notification settings

emidombek/zenceramics

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Zen Ceramics Readme πŸ“š

Devices Preview

Link to Live Site Here

πŸ€” What is the Zen Ceramics Website?

The Zen Ceramics website is an online platform showcasing and selling artisanal ceramic products, emphasizing simplicity and elegance.

⭐ Purpose and Goals of the Website

The purpose and goals of the Zen Ceramics website are to display and sell high-quality, artisanal ceramic products, promote the beauty and functionality of handmade ceramics, and connect with a community of ceramics enthusiasts who value craftsmanship and sustainability.

πŸ™‹ Target Audience

  • πŸ‘¨β€πŸŽ€ Buyers

    The target audience for the Zen Ceramics website includes art and design enthusiasts, individuals who appreciate handmade and artisanal home goods, professionals in the hospitality industry looking for unique tableware, and eco-conscious consumers interested in sustainable and locally crafted products.

  • πŸ§™ Admins

    For admins and employees, the Zen Ceramics website serves as a platform to manage product listings and process orders.

πŸ§‘ User stories

πŸ‘¨β€πŸŽ€ Buyer User Stories

  • As an interior designer, I want to browse a curated selection of artisanal ceramics so that I can find unique pieces that complement my clients’ design aesthetics.

  • As an eco-conscious consumer, I want to learn about the sustainability practices behind the ceramics, so that I can make informed decisions that align with my values.

  • As a home chef, I want to see detailed descriptions and high-quality images of ceramic tableware, so I can visualize how they would fit into my meal presentations.

  • As a gift shopper, I want to easily filter products by categories like price, occasion, or recipient preferences, so I can quickly find a thoughtful and unique gift.

  • As a repeat customer, I want the option to create an account where I can track my orders and save my shipping information to streamline future purchases.

  • As a new visitor, I want to see customer reviews and ratings for products, so I can gauge their quality and popularity before making a purchase.

  • As an enthusiast of handmade goods, I want to read about the artisans’ backgrounds and their creative processes, so I can feel a personal connection to the items I buy.

  • As a busy shopper, I want a mobile-friendly website that allows me to browse and purchase products easily from my phone, so I can shop whenever I have a few spare minutes.

πŸ§™ Admin User Stories

  • As a site administrator, I want to easily add, update, or remove products from the website, so I can keep the product listings current with our inventory.

  • As a customer service representative, I want to access a customer's order history and current order status quickly, so I can provide them with accurate updates and support.

  • As a marketing manager, I want to create and manage promotional codes and discounts, so I can run marketing campaigns to drive sales and customer engagement.

  • As an email marketing specialist, I want to segment our customer base and target them with personalized email campaigns, so we can increase engagement and repeat purchases.

  • As a feedback analyst, I want to collect and analyze customer feedback and reviews, so we can identify areas for product improvement and enhance customer satisfaction.

πŸ’° Business and Marketing Plan

Revenue Model

  • Direct Sales: Selling ceramics directly to consumers through the website.
  • Commission from Artists: Earning a commission on sales for featuring independent artists' work on the platform.

πŸ“ž Marketing Strategies

Online Marketing

  • SEO: Implementing SEO best practices with a focus on keywords related to ceramics, pottery, and home decor to attract organic traffic.
  • Social Media: Utilizing visually-driven platforms like Instagram and Pinterest to showcase products and share behind-the-scenes content from artists.
  • Email Marketing: Developing a newsletter to share updates, artist stories, and exclusive offers with subscribers.

Facebook Page

Offline Marketing

  • Art and Craft Fairs: Participating in fairs to increase brand visibility and directly sell products.
  • Collaborations with Designers: Partnering with interior designers and architects to recommend Zen Ceramics in their projects.
  • Workshops: Hosting pottery workshops either virtually or in local studios to engage with the community and educate potential customers.

πŸ“ˆ Key Performance Indicators (KPIs)

  • Website Traffic: Measured through unique visitors and total visits.
  • Conversion Rate: The percentage of website visitors who make a purchase.
  • Customer Loyalty: Tracked through repeat purchases and subscription renewals for memberships.

πŸ‘ Risks and Mitigation Strategies

  • Market Saturation: Differentiating the product offering through unique, high-quality pieces and compelling artist stories.
  • Dependency on Artists: Building a diverse network of artists to ensure a steady supply of new and varied ceramics.
  • Economic Downturns: Offering products at various price points and promoting the intrinsic value and timeless nature of handcrafted ceramics.

πŸ–Œ UX,Design and Layout

πŸ–± UX Concept

Devices Preview

🌊 User Flowchart

🌈 Design System

Click here to view the Elements of the Design System

Color Palette

This color palette was selected to reflect the game theme, mood, contrast, and accessibility for an immersive and user-friendly experience.

Color Palette

This font was chosen for its bold and easy-to-read structure while maintaining the theme of of the website.

Font

Pacifico Font

Pacifico imported from Google Fonts

Inter 200

Inter 200 imported from Google Fonts

Inter 600

Inter 600 imported from Google Fonts

Inter 700

Inter 700 imported from Google Fonts

Iconography

Icons are taken from Bootstrap Icons

Additional Fonts, Buttons, Navbar, Activity Dasboard, Hover Effects and Cards

These elements are styled using Bootstrap 5.3

πŸ–Ό Wireframes

πŸ–₯ Technology

  • Languages:

    • Python 3.11.5: the primary language used to develop the server-side of the website.
    • JS: the primary language used to develop interactive components of the website.
    • HTML: the markup language used to create the website.
    • CSS: the styling language used to style the website.
    • Bootstrap: a CSS Framework used for developing responsive and mobile-first websites.
  • Frameworks and libraries:

    • Django: python framework used to create all the logic.
    • jQuery: was used to control click events and sending AJAX requests.
    • Bootstrap: was used to control click events and sending AJAX requests.
  • Databases:

    • SQLite: was used as a development database.
    • PostgreSQL: the database used to store all the data.
    • Elephant SQL: PostgreSQL database hosting service.
  • Other tools:

    • Git: the version control system used to manage the code.
    • Pip3: the package manager used to install the dependencies.
    • Gunicorn: the webserver used to run the website.
    • Spycopg2: the database driver used to connect to the database.
    • Django-allauth: the authentication library used to create the user accounts.
    • Heroku: the cloud platform used to host the website.
    • ElephantSQL: the cloud database used to store all the data.
    • GitHub: used to host the website's source code.
    • VSCode: the IDE used to develop the website.
    • Chrome DevTools: was used to debug the website.
    • Bootstrap Icons: was used to create the icons used on the website.
    • Miro was used to make a flowchart for the README file.
    • Coolors was used to make a color palette for the website.
    • W3C Validator: was used to validate HTML5 code for the website.
    • W3C CSS validator: was used to validate CSS code for the website.
    • JShint: was used to validate JS code for the website.
    • PEP8: was used to validate Python code for the website.
    • Django Q: Django Q is a native Django task queue, scheduler and worker application using Python multiprocessing. Used to update auction status after closure.
    • Django Widget Tweaks: Used to add extra classes to django html.
    • Cloudinary: Image/file cloud hosting service.
    • Whitenoise: tool used in Django applications for serving static files.
    • Unlighthouse: a tool designed to scan an entire website and evaluate it using Google's Lighthouse metrics.
    • Mailchimp: Mailing list and Marketing service for newsletter.

✍ Agile Methodology

Github's issues, issue labels, milestones and project management board was used to help me track and organise the work in this project:

πŸ’Ž Milestones

The issues where orgnaised into Milestones and custom labels where create to add context and detail to each issue and it's status:

And then displayed on my Project Management Board:

Sorted by Issue Status and Milestone, clicking into the issue allowed for viewing labels and updating them:

✨ Features

Please refer to the FEATURES.md file for all features-related documentation.

πŸ”’ Information Architecture

  • During develoopment the database was created using SQLite.
  • The database was then migrated to PostgreSQL.

πŸͺ„ Data Modeling

Order

Field Type Description
user ForeignKey Linked to Django's User model, nullable and blankable
email EmailField The email address of the user
order_date DateTimeField The date when the order was placed
shipping_address TextField The shipping address for the order
total_price DecimalField The total price of the order
status CharField The status of the order (Pending, Payment Complete, Shipped, Delivered)

OrderItem

Field Type Description
order ForeignKey Linked to Order model
product ForeignKey Linked to Product model
quantity IntegerField The quantity of the product
price DecimalField The price of the product

Product

Field Type Description
name CharField The name of the product
description TextField The description of the product
price DecimalField The price of the product
category CharField The category of the product
inventory IntegerField The inventory count of the product
image CloudinaryField The image of the product, optional
created_at DateTimeField The date when the product was created
updated_at DateTimeField The date when the product was last updated

Review

Field Type Description
product ForeignKey Linked to Product model
user ForeignKey Linked to Django's User model
rating DecimalField The rating given to the product
comment TextField The comment about the product
created_at DateTimeField The date when the review was created

Contact

Field Type Description
user ForeignKey Linked to Django's User model, nullable and blankable
name CharField The name of the person contacting
email EmailField The email address for contact
subject CharField The subject of the message
message TextField The message body
created_at DateTimeField The date when the contact was created

Wishlist

Field Type Description
user ForeignKey Linked to Django's User model
product ForeignKey Linked to Product model
added_at DateTimeField The date when the product was added to the wishlist
notes TextField Notes about the wishlist item, optional
quantity IntegerField The quantity desired, default is 1

Address

Field Type Description
user ForeignKey Linked to Django's User model
name CharField The name of the recipient
address_line_1 CharField The primary address line
address_line_2 CharField The secondary address line, optional
city CharField The city
state_province_region CharField The state, province, or region
postal_zip_code CharField The postal or zip code
country CharField The country
phone CharField The contact phone number
is_default BooleanField If this address is the default address
created_at DateTimeField The date when the address was created
updated_at DateTimeField The date when the address was last updated

πŸ“ Testing

Please refer to the TESTING.md file for all test-related documentation.

πŸš€ Deployment

  • The website was deployed to Heroku.

  • The database was deployed to ElephantSQL.

  • This website can be found here link.

Please refer to the DEPLOYMENT.md file for all deployment-related documentation.

🌟Credits

  • All images used on the website are taken from Pexels under free license.
  • Lots of information taken from this youtube video on Django from FreeCodeCamp.
  • The entire series on advacned Python from Patrick Loeber.
  • This video on AJAX Requests from Net Ninja.

About

Ecommerce website developed using the Django framework for a ceramics business called Zen Ceramics.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published