conroy9068 / p5-eCommerce

0 stars 1 forks source link

MarketFlex

Table of Contents

Overview

MarketFlex is a fully responsive e-commerce platform built using Django. This site allows people to browse and purchase tools and equipment used in many industries like the automotive and metal fabrication industry to name two.

The site allows users to search for specific items they are looking for and filter all items on a number of parameters. The site allows them to create a user profile so that they can quickly purchase items each time they visit the site and also keeps a record of there past orders.

Users can make purchases as a guest without having a profile also if they chose not to register with an account.

The option to sign up to newsletters is also available to the user, this will keep them up to date with the latest promotions and sales on offer.

The site also has admin users, admin users have access to create, update and delete products on the site.

View the live project Here

Responsive Design Screenshot

User Experience (UX)

Agile Development

The agile methodology was used in the development of this project. This is when each feature to the site is broken down into smaller tasks and each then is developed. The tool used to manage this was GitHub projects.

The breakdown of tasks was done using user stories, each story would describe the task the end user would like to do to achieve a desired goal. The user stories contained acceptance criteria that outline what the site needed to do in order to meet the requirements of the user story. Then there are tasks which described the technical work thats needed to be done to complete each User Story.

Story points are an estimated level of effort the developer thinks will be required to develop that feature.

The MoSCoW Prioritization technique was used to assign priorities for Product Backlog Items to be completed. Using this allowed for each user story to be prioritized.

User Story Sample USER STORY: As a Site User, I want to be able to navigate the site. The navigation needs to be simple and easy to understand. Navigating should be fluid

ACCEPTANCE CRITERIA:

TASKS:

BUG TICKETS:

STORYPOINTS: 4

User Stories

User stories where done using the agile methodology above. The user stories where created and managed using GitHub projects. A lin to all the user stories can be found below.

View user stories Here

Design

Database Schema

Wireframes

Wireframes were created using Balsamiq. The wireframes were created for desktop with the goal being to create a responsive design. The wireframes were created for the following pages:

Wireframes - Product List Page - ![Wireframe for all products](./README_ASSESTS/wf-all-products.png) - Product Detail Page - ![Wireframe for product details](./README_ASSESTS/wf-product-detail.png) - Bag Page - ![Wireframe for shopping bag](./README_ASSESTS/wf-bag.png) - Checkout Page - ![Wireframe for checkout form](./README_ASSESTS/wf-checkout-form.png) - Profile Page - ![Wireframe for user profile page](./README_ASSESTS/wf-profile.png) - Contact Page - ![Wireframe for contact page](./README_ASSESTS/wf-contact.png) - Newsletter Page - ![Wireframe for newsletter](./README_ASSESTS/wf-newsletter.png)

Typography

Colours

Image Description

Icons

Features

Nav Bar

Landing Page

About Page

Product List Page

Product Detail View

Product Review

Search, Order & Filter

Bag

Order From

Checkout Confirmation Page

Profile Page

Register, Log In & Log Out

Footer

Product Create

Product Edit

Contact Page

Error Pages

Messages

Custom newsletter form

Privacy Policy

Mailchimp Integration (Removed)

Features Left to Implement

Testing

Browse to the TESTING.md file for the full testing documentation.

Technologies Used

Languages Used

Libraries & Frameworks

-sqlparse:

Web Marketing

MarketFlex stands as a pivotal B2B and B2C e-commerce platform, dedicated to revolutionizing the way garages, tradesmen, specialized and general contractors, as well as retail shops in Ireland, source their tools and equipment. With a comprehensive product range spanning categories like Abrasives, Automotive Refinishing, Engineering, Woodworking, and more, MarketFlex is committed to providing high-quality materials at competitive prices.

Key Advantages for MarketFlex:

Target Audience:

MarketFlex primarily serves garages, tradesmen, specialized and general contractors, and retail shops looking to stock high-quality tools and equipment. We also cater to individual buyers, offering a seamless purchasing experience for both one-time and recurring needs.

Marketing and Customer Engagement Strategies:

Site Features and User Experience:

MarketFlex is designed with user convenience in mind, featuring easy navigation, dedicated customer support, and a streamlined purchase process. Our goal is to ensure that every visitor can effortlessly find and acquire the tools and equipment they need, enhancing their operational efficiency.

Search Engine Optimization

SEO and Content Strategy: Utilizing tools like Google Trends and WordTracker, the aim is to identify and target key search terms relevant to our diverse product range. Inspired by industry leaders, our content emphasizes MarketFlex's role as "Abrasives Experts at your Service!"

Short Tail Keywords:

  1. "Abrasives"
  2. "Automotive Refinishing"
  3. "Engineering Tools"
  4. "Woodworking Tools"
  5. "Metal Fabrication"
  6. "Rupes Tools"
  7. "Pencil Grinders"
  8. "Body Filler"
  9. "Stainless Steel Finishing"

Long Tail Keywords:

  1. "Best Abrasives for Metal Fabrication"
  2. "Top Automotive Refinishing Products"
  3. "High-Quality Engineering Tools in Ireland"
  4. "Woodworking Equipment for Professionals"
  5. "Rupes Tools for Automotive Care"
  6. "Pencil Grinders for Metal Fabrication"
  7. "Body Filler for Automotive Repairs"
  8. "Stainless Steel Finishing Solutions"
  9. "Bodyshop Supplies in Ireland"

sitemap.xml

Site map was generated using XML Sitemaps and then uploaded to the root directory of the site.

robots.txt

The robots.txt file was created and uploaded to the root directory of the site.

Deployment

Heroku Deployment

  1. Create a Heroku account by going to https://signup.heroku.com/
  2. Create a new app by clicking the "New" button in the top right corner and then click "Create new app".
  3. Enter a name for the app and select the region closest to you.
  4. Click the "Create app" button.
  5. Select "settings" from the top menu.
  6. Click the "Reveal Config Vars" button.
  7. Enter the following environment variables with your values:
    • STRIPE_PUBLIC_KEY
    • STRIPE_SECRET_KEY
    • STRIPE_WH_SECRET
    • SECRET_KEY
  8. Click buildpacks from the top menu.
  9. Add the following buildpacks:
    • heroku/python
  10. Click the "Deploy" tab from the top menu.
  11. Click the "Connect to GitHub" button.
  12. Search for your repository and click the "Connect" button.
  13. Click the "Enable Automatic Deploys" button.
  14. Click the "Deploy Branch" button.
  15. Click the "View" button to launch the app.

Local Deployment

  1. Clone the repository by clicking the "Clone or download" button in github.
  2. In your IDE open a new terminal.
  3. Change the current working directory to the location where you want the cloned directory to be made.
  4. Type git clone, and then paste the URL you copied in Step 2.
  5. Press Enter. Your local clone will be created.
  6. Create a virtual environment by typing python -m venv venv in the terminal.
  7. Activate the virtual environment by typing venv\bin\activate in the terminal.
  8. Install the requirements by typing pip install -r requirements.txt in the terminal.
  9. Create a .env file in the root directory and add the following environment variables:
    • os.environ.setdefault("STRIPE_PUBLIC_KEY", "xxxxxxxxx")
    • os.environ.setdefault("STRIPE_PRIVATE_KEY", "xxxxxxxxx")
    • os.environ.setdefault("STRIPE_WH_SECRET", "xxxxxxxxx")
    • os.environ.setdefault("SECRET_KEY", "xxxxxxxxxx")
    • os.environ.setdefault("DEBUG", "False || True")
  10. Migrate the database by typing python manage.py makemigrations and then python manage.py migrate in the terminal.
  11. Create a superuser by typing python manage.py createsuperuser in the terminal.
  12. Run the app by typing python manage.py runserver in the terminal.

Tools

Credits

Content

Information Resources