d-lynch95 / Blue_Ocean_Travel

This is my submission for CI Full stack developer course portfolio project five. This application will create an online ecommerce store for people looking to book travel and tours on Australia's East Coast
https://blue-ocean-travel-feb523e57a47.herokuapp.com/
1 stars 1 forks source link
ecommerce ecommerce-website tourism tourism-industry travel

Blue Ocean travel e-commerce store

Blue Ocean travel is an online e-commerce store that specialises in booking trips on the Australian East Coast. Users will be able to book single or multiple trips and also have the option to contact the company to have a personalised itinerary created. The users will have the possibility to make an account, add tours to their shopping cart, book tours, and process payment through the site. This site was developed using Python (Django), HTML, CSS and by storing the data in a PostgreSQL database.

Live Website

AmiResponsive Mockup

User Goals and Stories

User goals

Business owner goals

User Stories

As a user

As a website business owner

As a new user

E-Commerce Business Model

Design

Font

I used the Lato and Poppins fonts from GoogleFonts. I opted for these fonts as they are clean, easy to read and versatile which make them perfect for a youth adventure travel website. I opted to use Poppins font for the headings and Lato for the body. The only exception to this was the homepage hero image where I opted to use the Lato text as I felt this looked betted

ExampleFont

Colour

The colour scheme is a simple blue that reminds the user of the ocean and instills a desire to travel. The white background contrasts with the light blue font to create an easy yet eye catching colour palette. This colour scheme was inspired by Whitehaven beach which is renowned for it's crystal clear aquatic blue water and powdery white sands. The colour scheme fits well with the company name and the company ethos of inspiring it's users to travel. The blue colour scheme was also inspired by BareFootCampers in New Zealand.

ColourScheme

Logo

The logo is an artificially generated logo from Looka The logo contains the company name and is designed to inspire users to travel and make the leap to travel the world. This is done to encourage users to visit Australia and book tours via the website. CompanyLogo

Wireframes

See wireframes - Homepage ![Homepage](docs/wireframes/homepage.png) - Contact Us ![Contact Us](docs/wireframes/contactus.png) - Product page ![Product page](docs/wireframes/%20product_page.png) - Product Booking Page ![Product Booking Page](docs/wireframes/product_booking_page.png)

Entity relationship diagram

This diagram shows how the users and staff users interact with the database. This was created using LucidChart and outlines the relationship between the database. Entity relationship Diagram

The database schema was set up as follows:

Product

Product

Key FieldType Validation
region ForeignKey null=True,blank=True
name CharField max_length=254
description TextField()
price DecimalField max_digits=6, decimal_places=2
date DateTimeField
duration DurationFiel null=True, blank=True
image_url URLField max_length=1024, null=True, blank=True
image ImageField null=True, blank=True

Region

Key FieldType Validation
name CharField max_length=254
friendly_name CharField max_length=254, null=True, blank=True

Review

Key FieldType Validation
product ForeignKey
rating IntegerField
content TextField
created_by ForeignKey
created_at DateTimeField

User Profile

Key FieldType Validation
user OneToOneField
default_full_name CharField max_length=50, null=True, blank=True
default_phone_number CharField max_length=20,null=True, blank=True
default_email EmailField max_length=254, null=True, blank=True

Contact form

Key FieldType Validation
full_name CharField max_length=50, null=False, blank=False
email EmailField max_length=254, null=False, blank=False
phone_number CharField max_length=20, null=False, blank=False
input_text TextField max_length=1000, null=True, blank=True
selection models.IntegerField

Order Line Item

Key FieldType Validation
order ForeignKey null=False, blank=False,
product ForeignKey null=False, blank=False
quantity IntegerField null=False, blank=False
lineitem_total DecimalField max_digits=6, decimal_places=2, null=False, blank=False, editable=False

Order

Key FieldType Validation
order_number CharField max_length=32, null=False, editable=False
user_profile ForeignKey null=True, blank=True
full_name CharField max_length=50, null=False, blank=False
email EmailField max_length=254, null=False, blank=False
phone_number CharField max_length=20, null=False, blank=False
order_total DecimalField max_digits=10, decimal_places=2, null=False, default=0
original_bag TextField null=False, blank=False
stripe_pid CharField max_length=254, null=False, blank=False

Wishlist

Key FieldType Validation
user ForeignKey
product ForeignKey

Development

Agile Methodology

This project was developed using the Agile methodology. All epics and user stories implementation progress was tracked through Github projects Kanban Board which can be found here.

KanabanBoard

This project had 6 main epics (Milestones)

I. Epic 1. Initial Set up

II. Epic 2. USER REGISTRATION/AUTENTHICATION

III. Epic 3 - Making bookings

IV. Epic 4 - Processing Payment

V. Epic 5 - Deployment Epic

VI. Epic 6 - Documentation

My sprints were planned out as follows:

Technologies used

Features

Existing Features

Home Page

Navigation Menu

NavigationMenu

Link Location Pass/Fail
Logo index.html Pass
Home index.html Pass
Destinations/All Tours products.html Pass
Destinations/K'gari(Fraser Island) products.html with filter for K'gari products Pass
Destinations/Whitsundays products.html with filter for whitsundays products Pass
Destinations/Great Barrier Reef products.html with filter for Great Barrier Reef products Pass
Contact Us contact.html Pass
About Us about.html Pass
Link Location Pass/Fail
Product Management add_tour.html Pass
Submitted Contact Forms staff.html Pass
My Profile Profile.html Pass
My Wishlist wishlist.html Pass
Logout All auth logout page Pass

Footer Footer

Destinations Link Location Pass/Fail
Destinations/All Experiences products.html Pass
Destinations/K'gari(Fraser Island) products.html with filter for K'gari products Pass
Destinations/Whitsundays products.html with filter for whitsundays products Pass
Destinations/Great Barrier Reef products.html with filter for Great Barrier Reef products Pass
Destinations Link Location Pass/Fail
Your Account Profile.html Pass
Contact Us contact.html Pass
About Us about.html Pass
Privacy Policy privacy.html Pass
Action Application Pass/Fail
Send Email Open Email Client Pass
Phone company Open facetime on desktop Pass

Register Page

Log In Page

Sign out page

Contact Us Page

About Us Page

Add Product Page

AddProduct1 AddProduct

Product Page

Product Detail Page

Reviews

Product Delete

Edit Product Page

Wishlist

Profile page

My Orders

Shopping Bag

SecureCheckout

- This page will allow users to view their shopping bag one last time and process payment

- Users are able to input their personal information in this section if it hasn't already been saved on the site

- Users can use a built-in stripe payment element to input their card information and process payment.

SecureCheckout

Order Confirmation

StaffSection

Favicon

Accesibility

I received the following scores on my lighthouse testing

Lighthouse

I tried to reduce the issues but they were being caused by AWS and Heroku so there was not much I could do to change them.

Lighthouse2 Lighthouse2

Features Left to Implement

Search Engine Optimisation

Keywords

I used WordTracker to look up short tail keywords

The FAQs section on the AboutUs is filled with long tail keywords in order to boost SEO such as "When is the best time to travel in Australia?", "Should I stay in hostels", "What is the best trip in Australia"

Page titles

Each page shows an extra title after the store name to assist help with SEO.

Robots.txt

I created a robots.txt file to assist with SEO

robots

Sitemap.xml

I've used MySiteMapGenerator to generate a sitemap.xml file. This was generated using my deployed site URL: https://blue-ocean-travel-feb523e57a47.herokuapp.com/about/

After it finished crawling the entire site, it created a sitemap.xml which I downloaded and included in the repository.

Testing

I created an extra Testing page as the file was too large to fit in this README.

BUGS

User Testing

The application was tested on a macbook air using the google chrome browser.

I also tested it on the following mobile devices: OnePlus NordCE Iphone12 Samsung Galaxy S All of these devices worked as intended.

I did not test this site on a tablet but did utilise the google chrome Dev tools.

Validator Testing

I created a seperate file for validator testing as there were too many files to document in this READE

Validators

Manual Testing

Functional Testing

I created a seperate Testing.md file that outlines all of the tests completed

Unfixed Bugs

Deployment

I created a seperate file to outline the deployment process as it was too long to detail all of the steps here

Deployment

The live link can be found here - Blue Ocean Travel

Credits

Content

Coding help