Drennan98 / TeeTime

0 stars 0 forks source link

Welcome to my site on all things golf related called TeeTime

Responsive image here

You can find the link to the deployed site here, TeeTime.

Project Purpose

This is the 4th project for the diploma in Full Stack Software Development with Code Institute. TeeTime is a blog where users can interact with eachother, compare favourite golf courses and chat about all things golf. The website will offer users the ability to create, edit delete posts. They will also be able to comment on eachother posts. Think of it as Instagram or Facebook but for golfers. This is a full stack website which incorporates the Django framework. One my main goals is to get people into the game of golf so once users have engaged with content on the site.

User Experience (UX)

Project Goals

Target Audience

Agile Methodology

Epics

User Stories

  1. Create a convenient, easy-to-navigate interface.

  2. Complete, Edit and Delete functions.

  3. Views the dates a blog post was created and edited.

  4. Different golf courses.

  5. Liking and commenting other peoples posts.

  6. Signing up for golf newsletter.

  7. Course ratings.

  8. Defensive programming.

  9. Search functions.

  10. Background story of creator.

Kanban Board

Kanban Board

MoSCoW Prioritization

MoSCoW Prioritization for TeeTime

Features

All "Must Have" features were implemented.

Landing Page

Landing Page

Navbar and Navbar links

NavBar

Login Status

Login Status

Create, Read, Update, Delete (CRUD) Functionality

CRUD Example

Register / Sign In / Sign Out

SignUp Form

SignIn Form

SignOut Screen

Feedback messages to user upon user actions (i.e deleting a post)

Delete Course

Sign In and reflects username

Post Created

Comment Deleted

Post Deleted

Signed Out

Back to top button

Back to top

Design

As with my previous projects I went with a very simple design for this project, the main design features are detailed below:

Technologies Used

Typography

  1. Go to Google Fonts.

  2. Scroll through the fonts and select whichever one you like.

  3. Click on the font.

  4. Click "get font" in the top right hand corner. It should be a blue button.

  5. Click "get embed code" on the right handside. This is also a blue button.

  6. Embed this code in the head of your HTML file.

Color Palette

The main colors I went with for this project are as follows:

  1. Grey

  2. Black

  3. 3E5622

  4. Green

  5. Blue

  6. 30C5FF

  7. White

  8. Aqua

  9. 007bff

  10. F58F29

  11. purple (hover pseudo class)

Wireframes (include different screen sizes)

Post Feed Wireframe

Article Feed

Landing Page Wireframe

Landing Page

Signup Form Wireframe

Signup Form

iPad Landing Page Wireframe

iPad Landing Page

iPhone Landing Page Wireframe

iPhone Landing Page

Testing

User Story Testing

User Story 1 - Create a convenient, easy-to-navigate interface

User Story 2 - Create, Edit and Delete Functions

User Story 3 - View the dates a blog post was created

User Story 4 - Different golf courses

User Story 5 - Commenting other peoples posts (Future feature)

User Story 6 - Signing up for golf newsletter (Will not be implemented at this time)

- Description: Sign up for a golf newsletter with the latest news from the golf world.  

User Story 7 - Course ratings (Will not be implemented at this time)

- Description: Add the ability to rate courses which were submitted by users. 

User Story 8 - Defensive programming

User Story 9 - Search functions (Will not be implemented at this stage)

- Description: The ability to search posts created. 

User Story 10 - Background story of creator (Will not be implemented at this time)

- Description: Page showcasing the idea behind TeeTime and the background of the creator. 

Browser Compatibility

Validations

Directory File Result
blog create_post.html PASS
blog edit_post.html PASS
blog post_detail.html PASS
blog post_list.html PASS
home golfcourse_display.html PASS
home golfcourse_detail.html PASS
home golfcourse_form.html PASS
home golfcourse_list.html PASS
signup login.html PASS
signup logout.html PASS
signup signup.html ***

NOTE for assessor: The signup.html validation returned errors in the generated code by Django, I have no control over this therefore could not resolve it, I hope this is ok.

JavaScript Validation

Directory File Result

Directory File Result
static/css style.css PASS
blog apps.py PASS
blog forms.py PASS
blog models.py PASS
blog urls.py PASS
blog views.py PASS
home init.py PASS
home admin.py PASS
home apps.py PASS
home forms.py PASS
home models.py PASS
home urls.py PASS
home views.py PASS
signup init.py PASS
signup admin.py PASS
signup apps.py PASS
signup forms.py PASS
signup models.py PASS
signup urls.py PASS
signup views.py PASS
tee_time init.py PASS
tee_time asgi.py PASS
tee_time settings.py PASS
tee_time urls.py PASS
tee_time wsgi.py PASS

Lighthouse Testing (Desktop and Mobile)

Lighthouse testing is used to analyse a number of different things about a webpage. These can include performance, accessibility, best practices, SEO and Progressive Web App (PWA).

Here is a brief breakdown of what each audit category assesses:

  1. Performance

    • Measures a pages loading times.
    • Some metrics include Total Blocking Time and Speed Index.
    • Improvements will be suggested.
  2. Accessibility

    • This will check how accessible the web page is to someone with disabilities.
    • Evaluates aspects like the use of semantic HTML.
    • Improvements will be suggested.
  3. Best Practices

    • Ensures the web page uses modern web development practices.
    • This will include checks for the correct use of API's.
    • Indicates where the webpage might be using practices which could be considered deprecated.
  4. Search Engine Optimization (SEO)

    • Assess optimization by search engines.
    • Meta tags and valid HTML are just examples of what is analysed here.
    • Provides better visibility in search results.
  5. Progressive Web App (PWA)

    • Checks to see if the webpage meets PWA standards.
    • Checks for criteria that make the page offline-capable.
    • Helps with user experience.

To perform a Lighthouse audit, please follow these steps:

  1. Inspect your page with Dev Tools. (Right click anywhere on the page and click "Inspect").

  2. In the top right hand panel, you will see a list of options, starting with "Elements" and ending with "Application". Click the ">>" button beside "Application" which will show a menu of other options, including Lighthouse. Click on Lighthouse.

  3. Click "Analyze page load".

Lighthouse

Deployment

The deployment process is done on a platform called Heroku. The deployment process is lengthy but is as follows:

Forking

  1. On GitHub, navigate to the GitHub repository you would like to fork.

  2. In the top right hand corner, you will see a fork button, click this to fork the desired repo. (note: you cannot fork your own repo's so this button will be greyed out on your own repo's).

  3. Once you hit the fork button, it will bring you to the "Create a new fork screen".

  4. You can then hit the green "Create fork" button.

Cloning

  1. Navigate to the repository you want to clone.

  2. Click the green code button.

  3. You will see three subheadings of HTTPS, SSH and GitHub CLI. Copy the URL under the HTTPS subheading.

  4. Open the terminal in your IDE (e.g VS Code or GitPod).

  5. Type the command "git clone" with the URL you copied in the step 3.

  6. Finally, hit Enter.

Bugs

Credits

 Future features