JKirkby95 / Clare-Golf-Store

0 stars 1 forks source link

Clare Golf Store

Amiresponsive image

For my final portfolio project, I chose to create Clare Golf Store as a mix of two of my greatest passions: golf andmy new found one coding. Having played golf since a young age, I have always been captivated by the sport. This lifelong enthusiasm for golf naturally sparked the idea of a specialized store that caters to golfers’ needs, from beginners to seasoned players. Recently, I discovered a new passion for coding, enthralled by the creative and problem-solving aspects it involves. Merging these interests, Clare Golf Store became the perfect project to not only showcase my technical skills in web development but also to create a platform that resonates with my deep-seated love for golf. This project represents a harmonious blend of my personal interests and professional growth, aiming to provide a seamless and engaging online shopping experience for golf enthusiasts. I have learned so much and come so far in the last year of coding and I'm proud to show what I can create.

View the deployed website here.(Right click to open in new tab!)

Table of Contents

  1. User Experience (UX)
    1. Strategy
      1. Project Goals
      2. Agile planning
      3. Goals Table
    2. Scope
      1. User Stories
    3. Structure
      1. Database Model
    4. Skeleton
      1. Wireframes
    5. Surface
      1. Color Scheme
      2. Typography
  2. Marketing
    1. Search Engine Optimisation
    2. Business Model
  3. Features
    1. General
    2. Home Page
    3. Header
    4. Call to action
    5. Newsletter
    6. Footer
    7. Products
    8. Product Detail
    9. Shopping bag
    10. Profile
    11. Club Fitting
    12. Footer links
    13. 404 Error
  4. Technologies Used
    1. Languages Used
    2. Libraries and Frameworks
    3. Packages / Dependencies Installed
    4. Payment Service
    5. Cloud Storage
    6. Tools and Programs
  5. Testing
    1. [Go to TESTING.md]()
  6. Deployment
    1. How To Use This Project
    2. Deployment to Heroku
  7. Finished Product
  8. Credits
  9. Known Bugs
  10. Acknowledgements

User Experience (UX)

Strategy

Project Goals

Agile Planning

For this project I tried to learn more about the agile process and methodologies, my last project had comments about how I didn't use it properly or enough. This time I had 21 user stories in my github projects in total when I first laid out my plan for this project. I feel like I did a better job with them this time and I can see why they're such a valuable tool.

I deceided to leave the reviews section in the future features as I already had the 3 custom models neccessary for the project. But I would love to see it implemented in the future.

This time around I put more detail into each one as seen in the example below:

agile story detail

Below I will show the varies stages of development for these.

Sprint 1 github projects 1

Sprint 2 github projects 2

Sprint 3 github projects 3


Goals Table

Goal Achieved?
Users able to register for an account Yes
Users are able to login/logout of the account Yes
Users are able to save their details to said account Yes
Users can complete a purchase with ease Yes
Users can view their order history afterwards Yes
Users can view and sort products Yes
Users can search for products using the search bar products Yes
Users can add products to their wishlist Yes
Users can remove products from their wishlist Yes
Users are able to make an appointment for club fitting Yes
Users can edit/delete their appointment for club fitting Yes
Users can sign up to our newsletter Yes
Users can find links to contact us or view our social media Yes
The purpose of the site is obvious immeadiatly Yes
The site has a responsive design to suit plenty of screen sizes Yes
All forms on the site are validated and give clear feedback for errors Yes
Review system in place for products No (future feature)

Back to top ⇧


Scope

User Stories

As it was my first time making an ecommerce site , my user stories are not in th best order, In the future I feel like instead of typing them straight into the github projects i will actually start on a piece of paper to get them in the correct order.

User Story 1

User Story 2

User Story 3

User Story 4

User Story 5

User Story 6

User story 7

User story 8

User story 9

User story 10

User story 11

User story 12

User story 13

User story 14

User story 15

User story 16

User story 17

User story 18

User story 19

User story 20

User Story 21

Back to top ⇧


Structure


Database Model

I made this database model using lucid chart, it was my first time using anything like this to create a database diagram. I tried to show all the links between the certain elements of this website.

database diagram

Skeleton

Wireframes

I made these wireframes using lucid chart also, I found them very easy to use although in future I would probably buy a membership for balsamiq as I prefer the look of their wireframes.

Page Wireframe
Home Home
Products Products
User Profile Profile
Club Fitting Club fitting
Shopping Bag Shoppping Bag

Back to top ⇧

Surface

Color Scheme

The color scheme for this site was meant to be easy on the eye and not take away from the content, the main colors I used was the bootstrap dark and light class. I used light over white so it's not quite as harsh on the eyes, and I'm personally a fan of the boostrap dark it's very clean color and lets any products with color pop.

color scheme

Typography

The font used for this site is Nunito.

Nunito is an excellent choice for your website's font due to its modern, clean, and highly readable design. As a sans-serif typeface, it provides a sleek and contemporary aesthetic that enhances the visual appeal of your site.


Marketing

Search Engine Optimisation

To enhance the search engine optimization (SEO) performance of the website, I had to research what words we should inlcude in the meta tags. The aim was to identify relevant keywords to optimize the seo performance of the site.

Several search terms such as 'golf equipment,' 'golf accessories,' and 'club fittings' were analyzed to uncover popular keywords. From this analysis, a selection of both short and long-tail keywords was made and incorporated into the head element of the base.html template.

The chosen keywords include:

Golf clubs Golf equipment Golf accessories Golf fittings Golf apparel Golf bags Golf balls Golf gloves Golf technology

Based on this analysis, adjustments may be made to the keyword selection to refine and improve SEO performance over time. By continuously refining these keywords, the website aims to achieve higher rankings on search engines like Google.

Business Model

Introduction

Clare Golf Store operates as both a physical and online retail platform specializing in high-quality golf equipment, accessories, and fittings. Established initially as a brick-and-mortar store, the business has transitioned to an omnichannel model to reach a broader customer base. This section outlines our business strategy, including key initiatives and considerations.

Online Presence

To expand our reach beyond our local market, we've established a strong online presence through our website and social media platforms. We've created a Facebook page to engage with customers, share updates, and promote products. Additionally, our website serves as an e-commerce platform, offering customers the convenience of shopping from anywhere.

facebook page

Strengths

Weaknesses

Future Growth Opportunities

Conclusion

Clare Golf Store is committed to delivering exceptional products and services to golf enthusiasts worldwide. With a strong emphasis on quality, expertise, and customer satisfaction, we strive to become a leading destination for all golfing needs, both online and offline.


Features

General

Home Page

landing/home page

Header

header

Call to action

call to action

Newsletter

newsletter

Footer

footer

Products

products

Product detail

product details

wishlist

Shopping Bag

shopping bag

Profile

user details

order history

wishlist

Club Fitting

club fitting

appointments

edit

no appointments

Footer links

about

contact

payment

shipping

404 Error page

404

Back to top ⇧


Technologies Used

Languages Used

-HTML5 -CSS3 -JavaScript -Python


Libraries and Frameworks

-Django
-Django was used as web framework.

-Django Template
-Django Template was used as a templating language for Django to display backend data to HTML.

-Bootstrap 4
-Bootstrap 4 was used throughout the website to help with styling and responsiveness.

-Google Fonts
-Google fonts were used to import the fonts into the html file and were used on all parts of the site.

-Font Awesome
-Font Awesome was used throughout the website to add icons for aesthetic and UX purposes.

-JQuery


Packages / Dependencies Installed


Back to top ⇧

Payment Service


Cloud Storage

-Elephantsql -Elephantsql was used to help host the Postgres database with Heroku

-Cloudinary -Cloudinary was used to store all static files for this project


Tools and Programs

-GitPod -GitPod was used for writing code, committing, and then pushing to GitHub.

-GitHub
GitHub was used to store the project's code after being pushed from Git.

-Heroku
-Heroku was used to deploy the website.

-Elephantsql -Elephantsql was used to help host the Postgres database with Heroku.

-Am I Responsive
-Am I Responsive was used to preview the website across a variety of popular devices.

-Chrome DevTools -Chrome DevTools was used during development process for code review and to test responsiveness.

-W3C Markup Validator -W3C Markup Validator was used to validate the HTML code.

-W3C CSS Validator -W3C CSS Validator was used to validate the CSS code.

-JSHint -The JSHints JavaScript Code Quality Tool was used to validate the site's JavaScript code.

-Lucid Chart

Back to top ⇧

Testing

Lighthouse

Home

home page lighthouse


Products Page

products page lighthouse


Product Details Page

product details page lighthouse


Club Fitting Page

club fitting light


Appointments Page

appointments lighthouse


Edit Appointments Page

edit appointments lighthosue


Shoppping Bag Page

shopping bag lighthouse


Checkout Page

checkout page lighthouse


Order Confirmation Page

order confirmation page


Profile Page

profile page lighthouse


About us

about us


Privacy Policy

privacy policy


Contact Us Page

contact us


Shipping Page

shipping page lighthouse


Payment options page

payment options lighthouse


Code Validtion

HTML

Code validation


CSS

Css validation

Javascript

Javascript validation


Python

Python Validation


Manual Testing

Browser Compatibility

Browser Outcome Pass/Fail
Google Chrome No appearance, responsiveness or functionality issues. Pass
Safari No appearance, responsiveness or functionality issues. Pass
Brave No appearance, responsiveness or functionality issues. Pass
Microsoft Edge No appearance, responsiveness or functionality issues. Pass
Firefox Developer No appearance, responsiveness or functionality issues. Pass

Device compatibility

Device Outcome Pass/Fail
HP Pavillion 14" display No appearance, responsiveness or functionality issues. Pass
Custom Home PC with 28" display No appearance, responsiveness or functionality issues. Pass
MSI Katana GF66 11UE No appearance, responsiveness or functionality issues. Pass
Iphone 14 Pro No appearance, responsiveness or functionality issues. Pass
Nothing Phone (1) No appearance, responsiveness or functionality issues. Pass
One Plus 8T No appearance, responsiveness or functionality issues. Pass
Ultra wide monitor Some appearance issues, but functionality all good Fail (something to note for my next project)

Common Elements Testing

Deployment

How To Use This Project

To use and further develop this project you can clone the repository.

Deployment to Heroku

  1. Create the Heroku App:

    • Select "Create new app" in Heroku.
      • Choose a name for your app and select the location.
  2. Prepare the environment and settings.py file:

    • In the Settings tab, click on Reveal Config Vars and copy the url next to DATABASE_URL.
    • In your GitPod workspace, create an env.py file in the main directory.
    • Add the DATABASE_URL value and your chosen SECRET_KEY value to the env.py file.
    • Add the SECRET_KEY value to the Config Vars in Heroku.
    • Update the settings.py file to import the env file and add the SECRETKEY and DATABASE_URL file paths.
    • Update the Config Vars with the Cloudinary url, adding into the settings.py file also.
    • The config vars for the EMAIL_HOST_PASS and EMAIL_HOST_USER also have to be added this time around.
    • In settings.py add the following sections:
      • Cloudinary to the INSTALLED_APPS list
      • STATICFILE_STORAGE
      • STATICFILES_DIRS
      • STATIC_ROOT
      • MEDIA_URL
      • EMAIL_HOST_PASS
      • EMAIL_HOST_USER
      • DEFAULT_FILE_STORAGE
      • TEMPLATES_DIR
      • Update DIRS in TEMPLATES with TEMPLATES_DIR
      • Update ALLOWED_HOSTS with ['app_name.heroku.com', 'localhost']
  3. Store Static and Media files in Cloudinary and Deploy to Heroku:

    • Create three directories in the main directory; media, static and templates.
    • Create a file named "Procfile" in the main directory and add the following:
      • web: gunicorn project-name.wsgi
    • You will have to run the collectstatic cmd before you deploy for the css to be applied.
    • Go to the Deploy tab on Heroku and connect to GitHub, then to the required repository. Click on the Deploy Branch and wait for the build to load. When the build is complete, the app can be opened through Heroku.

Back to top ⇧


Finished Product

Page Desktop Mobile
Home home page home page
Products products products
Product Detail product detail product detail
Club Fitting club fitting club fitting
Appointments appointments appointments
No appointments no appointments no appointments
Edit Appointments edit appointments edit appointments
Contact Us contact us contact us
User Details user details user details
Order History order history order history
Wishlist wishlist wishlist
Bag bag bag
Checkout checkout checkout
Order Confirmation order confirmation order confirmation
About Us about us about us
Privacy Policy privacy policy privacy policy
Shipping shipping shipping
Payment payment payment

Back to top ⇧


Credits


Known Bugs

Acknowledgements