Skip to content

Latest commit

 

History

History
885 lines (523 loc) · 33 KB

README.md

File metadata and controls

885 lines (523 loc) · 33 KB

Inked Clippers Barbershop & Tattoo Studio

Am I responsive image

Welcome to Inked Clippers!

Inked Clippers is your one-stop destination for all things barbershop and tattoo studio. Our platform brings together skilled barbers, talented tattoo artists, and expert piercers to showcase their services and connect with potential clients. Whether you're looking for a fresh haircut, a unique tattoo, or a stylish body piercing, Inked Clippers has got you covered.

View live website

GitHub last commit GitHub contributors GitHub language count GitHub top language Code size Github files Github stars Github forks

Contents

User Experience

Initial Discussion

Inked Clippers Barbershop & Tattoo Studio is the culmination of my passion for both barbershop aesthetics and tattoo artistry. Originally conceived as a barbershop, I quickly realized that I could expand the concept to include a tattoo parlor, making the project even more exciting and unique.

As a Django beginner, I embarked on this project with enthusiasm and determination. At first, I faced challenges connecting the various components, but through persistent trial and error, I gained a deeper understanding of the Django framework. Witnessing my vision gradually take shape was incredibly rewarding.

The primary goal for Inked Clippers was to create a captivating home page that features a stunning landing page image, a section dedicated to customer testimonials, and a clear representation of our studio's location. Additionally, I aimed to provide detailed and separate pages for both the barbershop and tattoo services, showcasing the full range of services and introducing the talented employees behind each craft.

Throughout the development process, I leveraged the power of Django, Bootstrap 5, and other essential technologies to ensure a seamless user experience. Combining frontend aesthetics with backend functionality, I strived to create an elegant and user-friendly platform that truly embodies the essence of our studio.

As a testament to my growth as a developer, Inked Clippers serves as my inaugural Django project, and it holds a special place in my heart. With this project, I not only honed my technical skills but also gained invaluable insights into the world of barbershops and tattoo studios. I'm proud to present Inked Clippers Barbershop & Tattoo Studio as a fusion of artistry, creativity, and technical prowess.

Key information for this site

  • Navbar: Easily navigate through the website and access different sections.

  • Footer: Find contact details, address, and opening times for the shop.

  • Home Page: Welcome with a captivating landing image, customer testimonials, and the shop's location.

  • About Page: Introduction and a brief history of the barbershop and tattoo studio.

  • Barbers Page: Explore a variety of barber services and meet the talented team of barbers.

  • Tattoo Page: Explore piercing services, and get answers to common questions about getting a tattoo and aftercare from skilled artists and piercers on the Tattoo Page and FAQs section.

Agile Methodology, MOSCOW, and Kanban Board

My Agile Approach

This project was developed using Agile methodologies to facilitate flexibility and iterative progress. Embracing an adaptive planning process allowed me to continuously improve and respond to evolving project needs.

User Stories and MOSCOW Prioritization

To outline project features, I defined user stories short descriptions from an end user's perspective. Employing the MOSCOW technique helped me prioritize these features effectively:

  • Must-Have: Identified critical features essential for project success.
  • Should-Have: Important features that were not immediately critical.
  • Could-Have: Considered features that could be included if time allowed.
  • Wont-Have: Acknowledged nice-to-haves that were intentionally excluded from the current scope.

MOSCOW prioritization guided me in managing expectations, focusing on key deliverables, and navigating the development process.

Kanban Board for Task Management

I utilized a Kanban board to visually manage the flow of work throughout the project. The board's columns included:

  • To Do: Tasks (user stories) planned for development.
  • In Progress: Tasks actively being worked on.
  • Done Tasks that have been finished.
  • Future Features: Tasks that will be added in the future.
  • Wont Have Tasks that wont be included in the project.

This Kanban board provided a clear visual representation of my project's progress, making it easier to track and manage tasks. Link to project Kanban board.

Back to top

User Stories

  • As a developer, I want to install Django on my local machine, so that I can start building web applications using the Django framework

  • As a developer, I want to set up ElephantSQL in my workspace, so that I can use it as a cloud-based PostgreSQL database for my project.

  • As a visitor, I want to read reviews and testimonials from previous customers, so that I can see the quality of the services offered.

  • As a visitor, I want to learn more about the team behind the barbershop or tattoo studio, so that I can feel a connection and establish trust.

  • As a visitor, I want to see a visually appealing header on the landing page, so that I can quickly understand the purpose and branding of the website.

  • As a customer, I want to find the contact details of Inked Clippers, such as the address, phone number, and email, so that I can reach out to them for inquiries or appointments.

  • As a customer, I want to easily find the location or address of the barbershop or tattoo studio, so that I can plan my visit or contact them if needed.

  • As a visitor, I want to be greeted by an engaging hero image on the landing page, so that I can get a glimpse of the atmosphere and style of the barbershop or tattoo studio.

  • As a customer, I want to view the list of services offered by the barbershop, along with their corresponding prices, so that I can choose the desired service within my budget.

  • As a developer I want to perform an initial deployment of my Django project to Heroku, so that I can quickly test and verify its functionality in a live environment.

  • As a customer, I want to register for the website so that I can access the features and functionalities.

  • As a customer I want to be able to log in and log out of the website, so that I can have an account to save my information so I dont have to enter it every time.

  • As a user, I want to be able to leave reviews for Inked Clippers services I have received so that I can share my experience and provide feedback to the barbershop and other potential customers.

  • As a user, I want to be able to update my personal information on my profile page so that I can keep my details accurate and up to date.

  • As a customer, I want to view the list of tattoo services offered by the studio, along with their corresponding prices, so that I can choose the desired service within my budget.

  • As a customer, I want to browse a gallery of the barbershop's previous haircuts and styles, so that I can assess their expertise and find inspiration for my own haircut.

  • As a customer, I want to browse a gallery of the tattoo studio's previous artworks, so that I can assess their style and find inspiration for my own tattoo design.

Design

Colour Scheme

  • For the Minimum Viable Product (MVP), I have opted to stick with the default Bootstrap styling, providing a clean and familiar look. However, future upgrades will introduce a color scheme to enhance the overall aesthetic appeal of the site.
Element Color Description
Text (Default) White
General Background RGB(33, 33, 33) Dark Gray
Navbar Background RGB(31, 37, 41) Dark Slate Gray
Footer Background RGB(31, 37, 41) Dark Slate Gray
Footer links White
Barbershop Table Text White
Tattoo Accordion Background #212529
Tattoo Accordion Text White
Tattoo Accordion Body Background #212529 Blue Shark
Register Form Label Text White
Register Form Text White
Login White Container Border White
Profile Container Border White
Review Container Border White
Back to Top Button Background RGB(33, 37, 31) Blue
Back to Top Button Hover Background Blue
Back to Top Button Text White

Typograpghy

  • I have not incorporated specific fonts in my current project. However, I plan to introduce fonts in future updates to enhance the overall design and aesthetics

Wireframes

Desktop Wireframes
Home Page
  • Home Page
About Page
  • About Page
Barbers Page
  • Barbers Page
Tattoo Page
  • Tattoo Page
Register Page
  • Register Page
Login Page
  • Login Page
Mobile Wireframes
Home Page
  • Home Page
About Page
  • About Page
Barbers Page
  • Barbers Page
Tattoo Page
  • Tattoo Page
Narbar Diagram
  • Home Page

Features

Existing Features

  • Nav

    • The nav bar is at the top of every page and has the logo with links to the About page, Barbers page, Tattoo page, Register and Log in pages.

      • Once the user is logged in the link to the About page is hidden and the Register link changes to profile while Login changes to Log out.
      Desktop view
      • Nav Bar Desktop View
      Mobile view
      • Nav Bar Mobile View
  • The Footer

    • The footer is at the bottom of every page and has the address, opening times and the contact details of Inked Clippers. Underneath the barbershop information it has social media links to find the barbers on Facebook, Twitter(X), Github and Linkedin.

      Desktop view
      • Footer Desktop View
      Mobile view
      • Footer Page Mobile View
  • Home Page

    • The Landing page Image

      • When the website first loads you see an image of a man getting hes hair cut with writing that says "Precision Cuts, Timeless Tattoos Unleash Your Style at Inked Clippers!" underneath the callout there is a white button blinking if you click this button it will scroll down and take you to the testimonials section.

        Desktop view
        • Landing Page Desktop View
        Mobile view
        • Landing Page Mobile View
    • Testimonials

      • Testimonials is a section where people that have signed up for Inked Clippers can leave a review and tell there experience with the store and staff. I have added pagination for when the testimonials get too long it will only display 3 testimonials at a time.

      • The testimonials are made up of a star rating system, staff member, review and username.

        Desktop view
        • Testimonails Desktop View

        • Testimonails Desktop View

        Mobile view
        • Testimonails Mobile View
    • Location

      • After you scroll past the testimonial section you have the location of the shop at the bottom of the page just above the footer.

        Desktop view
        • Location Desktop View
        Desktop view
        • Location Mobile View
  • About Page

    • The about page is broken into four sections. The first section is a introducion to Inked Clippers with an image of a standard barbershop pole

      Desktop view
      • About Page section One Desktop View
      Mobile view
      • About Page section One Mobile View
    • The second section is a continuation of the first section the introduction and it has an image of three barber chairs.

      Desktop view
      • About Page section Two Desktop View
      Mobile view
      • About Page section Two Mobile View
    • The third section has the history of Inked Clippers and how it transformed from Clippers to Inked Clippers. It has two photos of the store.

      Desktop view
      • About Page section Three Desktop View
      Mobile view
      • About Page section Three Mobile View
    • The fourth section is all about feeling welcome it explains the vibe and atmosphere of Inked Clippers.

      Desktop view
      • About Page section Four Desktop View
      Mobile view
      • About Page section Four Mobile View
  • Barbers Page

    • The Barbers Page is made up of two sections the services of the barbershop and meet the the barbers.

      • The services is displayed as a table and it has all the services the barbershop provides with the price and a discount price for members that have created a page.

        Desktop view
        • Barbers Page Services Desktop View
        Mobile view
        • Barbers Page Services Mobile View
      • Meet the barbers has the 4 barbers profile displayed in cards it has the barbers name, image, role/nickname and a bio with there information.

        Desktop view
        • Barbers Page Employees Desktop View
        Mobile view
        • Barbers Page Employees Mobile View
  • Tattoo Page

    • The Tattoo Page is broken into 3 sections piercing services, Meet the artist and piecer, and a FAQ's for commonly asked questions.

      • The first section is a set of 4 tables all showing the piecer services for Ear Piercings, Facial Piercings, Oral Piercings and Body Piercings

        Desktop view
        • Tattoo Page Services Desktop View
        Mobile view
        • Tattoo Page Services Mobile View
      • The second section is a meet the Tattoo shop employees its the same layout as seen on the barber page with artists name, image, role/nickname and a bio with there information.

        Desktop view
        • Tattoo Page Employees Desktop View
        Mobile view
        • Tattoo Page Services Mobile View
      • The third section is a FAQ's for commonly asked questions for getting a tattoo and the aftercare.

        Desktop view
        • Tattoo Page FAQ's Desktop View

        • Tattoo Page FAQ's Desktop View

        Mobile view
        • Tattoo Page FAQ'S Mobile View
        • Tattoo Page FAQ'S Mobile View
  • Register Page

    • The register page has a form for making a account for Inked Clippers if you already have a account it has a link to the login page underneath the sign up button

      Desktop view
      • Register Page Desktop View
      • Register Page Desktop View
      Mobile view
      • Register Page Mobile View
      • Register Page Mobile View
  • Login Page

    • The Login page has a form for loging into your account if you dont have a account it has a link to the register page underneath the Login button

      Desktop view
      • Login Page Desktop View
      Mobile view
      • Login Page Mobile View
  • Profile Page

    • Once you Log in you have the option to visit your profile page. Your profile has a placeholder image your username, email phone number and location.

    • Underneath your profile information there is a form prepopulated with your information you have the option to update your details within this form.

      Desktop view
      • Profile Page Desktop View
      • Profile Page Desktop View
      Mobile view
      • Profile Page Mobile View
      • Profile Page Mobile View
      • Profile Page Mobile View
  • Logout Page

    • Once you click logout in the navbar you are taken to the logout page which confirms you have been logged out and gives you the option the login again.

      Desktop view
      • Logout Page Desktop View
      Mobile view
      • Login Page Mobile View
  • Add a testimonial page

    • If you are in your profile and click the leave a review button you will be redirected to the add testimonial page which has a form for creating a testimonial.

      Desktop view
      • Add Testimonial Desktop View
      Mobile view
      • Add Testimonial Mobile View
  • Testimonial detail Page

    • If you click on your own testimonial in your profile it will bring you to the Testimonial Detail page which will show you the testimonial.

      Desktop view
      • Testimonial Detail Desktop View
      Mobile view
      • Testimonial Detail Mobile View
  • Edit Testimonial Page

    • If you are in your profile there will be two buttons underneath your testimonial clicking edit will bring you to a form with your testimonial information pre populated

      Desktop view
      • Edit Testimonial Desktop View
      Mobile view
      • Edit Testimonial Mobile View
  • Delete Testimonial Page

    • If you are in your profile and click the delete button under your testimonial you will be brought too add page asking if you are sure you want to delete. If you change your mind there is also a button to take you back to the home page.

      Desktop view
      • Delete Testimonial Desktop View
      Desktop view
      • Delete Testimonial Desktop View

Back to top

Future Features

  • I am going to change the table in the barbershop page to cards that show images of the haircuts/services.

  • The website needs a proper colour scheme I will change the colour scheme when I am upgrading it but for the MVP I like the default bootstrap styling.

  • I am going to remove the login and register pages and replace them with Django AllAuth for better security and functionality.

  • I want the option for the user to be able to make an apointment. I think leaving a testimonial isnt enough for a user to create an account and making an apointment would give the website more attraction and regular visitors. In the barber page the services table has a discount section for members I would like when booking an apointment the discount is applied at checkout.

  • I need to add a gallery for the barbershop on the barbers page currently I have no images of the haircuts and it would look a lot better with a gallery of happy customers.

  • For the tattoo page its not as simple as listing prices because the services can vary when getting a tattoo so I made a FAQ's section at the bottom with general questions about getting tattoos I would like to add a gallery for the tattoo artists previous work along with the piercers previous work.

  • I would like to add the employees social media links to the Meet the barbers & Tattoo & piercer sections. Many barbers and tattoo artists use social media to showcase their work and attract clients. I believe it would be a small but valuable addition.

  • I'm thinking about adding a blog to the website. This blog would go beyond the FAQs section and give more detailed info on things like how to take care of tattoos and piercings. It could also cover tips for men's beards, suggesting products and offering step by step guides. The blog would be a friendly place to get more specific advice on looking after your body art and grooming.

Testing

I have made a seperate file for testing Inked Clippers all testing results can be found here TESTING.md.

Technologies Used

languages used

  • HTML
  • CSS
  • Python
  • Markdown

Frameworks, Libraries & Programs Used

Deployment

ElephantSQL Database Setup

Step 1: Obtain ElephantSQL Database URL

  1. Sign up or sign in to ElephantSQL:

    • If you don't have an account, sign up otherwise, log in to your account.
  2. Create a new ElephantSQL instance:

    • From the dashboard, click on Create New Instance.
    • Choose a plan based on your requirements.
  3. Retrieve your ElephantSQL Database URL:

    • Once the instance is created, click on it to view details.
    • Find and copy the URL provided this is your ElephantSQL Database URL.

Step 2: Configure Django Project

  1. Add DATABASE_URL to env.py:
    • Open your env.py file.
    • Set DATABASE_URL to the value obtained from ElephantSQL.

Step 3: Use DATABASE_URL in Django Settings

  1. Update Django Settings:

    • Open your settings.py file in your Django project.

    • Locate the DATABASES configuration.

    • Comment out the orignal django database settings

    • Update the DATABASES setting to use the dj_database_url package:

      import dj_database_url
      # At the top of settings.py with the other imports
      
      DATABASES = {
      'default': dj_database_url.parse(os.environ.get("DATABASE_URL"))
       }
       # Replace the orignal database with what is above
    • This allows your Django project to use the ElephantSQL Database URL.

  2. Migrate Database Changes:

    • Run the following commands in your terminal:

      python manage.py makemigrations
      python manage.py migrate
    • This ensures that your database is updated with the latest changes.

Heroku

Step 1: Prepare Environment Variables

Create an env.py file at the root level of your project. Copy and paste the following content into the file:

import os

# Replace placeholders with your actual values
os.environ['DATABASE_URL'] = 'Your_ElephantSQL_Database_url'
os.environ['SECRET_KEY'] = 'Your_Django_secret_key'
os.environ['CLOUDINARY_URL'] = 'Your_Cloudinary_url'

Step 2: Heroku App Setup

  1. Sign up or sign in to your Heroku account:

    • If you don't have an account, sign up otherwise, log in to your account.
  2. Create a new app from the Heroku dashboard:

    • Choose a name for your app.
    • Select the region that is most suitable for you.
  3. Configure app settings:

    • In the app's settings, find and click on 'Reveal Config Vars'.
    • Add the following variables with their corresponding values:
      • DATABASE_URL: Your ElephantSQL Database URL
      • SECRET_KEY: Your chosen Django secret key
      • CLOUDINARY_URL: Your Cloudinary URL
      • DISABLE_COLLECTSTATIC: Set to 1 for initial deployment
      • PORT: Set to 8000

Step 3: Deployment from GitHub

  1. Choose the Deploy option:

    • Go to the Deploy tab in your app dashboard.
  2. Connect to GitHub:

    • Under Deployment method, choose Connect to GitHub.
  3. Select your GitHub repository:

    • Find your GitHub repository by name and connect.
  4. Choose deployment method:

    • At the bottom of the page, choose either Automatic Deployment or Manual Deployment (deploy by branch).
  5. Initiate deployment:

    • Click on the option you prefer, and the deployment process should begin.
  6. Monitor deployment progress:

    • After a while, your app should be deployed. You can check the progress in the Heroku dashboard.

Local Deployment

How to Fork

To fork the repository:

  1. Log in to Github.
  2. Go to the repository for this project, DylanP400/InkedClippers
  3. Click the Fork button in the top right corner.

How to clone

To clone the repository

  1. Log in to GitHub.
  2. Go to the repository for this project, DylanP400/InkedClippers
  3. Click on the code button, select whether you would like to clone with HTTPS, SSH or GitHub CLI and copy the link shown.
  4. Open the terminal in your code editor and change the current working directory to the location you want to use for the cloned directory.
  5. Type 'git clone' into the terminal and then paste the link you copied in step 3. Press enter.

Credits

tutorials

Imagery

I got the home page image and the images of the "employees" from Pexels

Back to top

CI logo