lmcrean / Hoverboard

A responsive product home page for a Virtual Learning Environment. The key focus for the project was responsive CSS, using flex and grid displays to allow the website to be viewed comfortably on different devices.
https://lmcrean.github.io/Hoverboard/
2 stars 3 forks source link
css-flexbox css-grid css3 design figma figmadesign forms html-css media-queries responsive-design
# Responsive Website for a Virtual Classroom Product [Live page Badge](https://lmcrean.github.io/Hoverboard/) [Full Documentation Research Badge](https://github.com/lmcrean/Hoverboard/blob/main/testing.md) [![GitHub commit activity (branch)](https://img.shields.io/github/commit-activity/t/lmcrean/Hoverboard?color=green)](https://github.com/lmcrean/Hoverboard/commits/main) [![GitHub closed issues](https://img.shields.io/github/issues-closed/lmcrean/Hoverboard?color=green)](https://github.com/lmcrean/Hoverboard/issues?q=is%3Aissue+is%3Aclosed) [![GitHub issues](https://img.shields.io/github/issues/lmcrean/Hoverboard?label=%20 )](https://github.com/lmcrean/Hoverboard/issues) [![HTML](https://img.shields.io/github/issues/lmcrean/Hoverboard/html?logo=html5&logoColor=white&label=HTML&color=yellow)](https://github.com/lmcrean/Hoverboard/labels/html) [![CSSl](https://img.shields.io/github/issues/lmcrean/Hoverboard/css?logo=css3&label=CSS&color=yellow)](https://github.com/lmcrean/Hoverboard/labels/css)
responsive design
**This project presents Hoverboard as an exciting new Virtual Learning Environment for schools.** The key focus for the developer was responsive CSS, using ```flex``` and ```grid``` displays to allow the website to be viewed comfortably on different devices. The design also utilised consistent font pairings, border-styles, padding and color themes to reinforce the tone of the product. The website was designed with a mobile-first approach, using Figma, and then implemented with HTML, CSS and Javascript. *The website was deployed to GitHub pages.*

Documentation introduction

This readme introduces the key features of the project, using the framework of the 5 planes of User Experience. It summarises key challenges addressed along the way and also provides credits and acknowledgesments at the end.

Testing is summarised in the readme, while a seperate Testing file is dedicated to a more specific technical account.

In the issues I have logged written, video or screenshot accounts.

Table of Contents


1. Features

Navbar

displayed with tab-active, regular and :hover states

Navigates to all 3 main pages, with a hamburger icon for mobile devices.


Hero Section

Introductory section with slogan and background image.


Mission Intro with nested features for teachers

Introduces the company's mission and the product's features. The features are nested in a grid display, with the features intro displayed in a column for mobile devices and a row for larger devices.


Call to Action

These are inline links to the features page and sign up page.


Testimonials

These display quotations from previous users, with their name and title. They are displayed in a column for mobile devices and a 2x4 grid for larger devices.


Headers for Features page, Sign up page and Thank you page

Introduces the page and reinforces the design theme.


About features

Describes the features of the product, with graphics and text.


Sign Up Form

Allows the user to sign up for a free trial of the product. The form input requires that the email includes @ and . and that the mobile number is 11 digits long.


Footer

Provides links to social media websites. Displayed on every page and anchored to the bottom of the page.


2. UX Development Planes

The 5 UX development planes are for the purpose of explaining the design process of the website. Both intention and outcome are recorded.

The key tool to bridge UX and code was the Figma wireframe: issues are logged here. Figma GitHub 2 features page closed issues by-label

2.1. Strategy Plane

The website itself was aimed at Education Professionals such as teachers and headteachers. The design choices factored in to consideration that students also use the product. To meet both user needs in the long term, the tone of the product would need to strike a balance between professional and playful.

The business goals were to increase the user population of Education Professionals signing up for a free trial. To achieve this, the website needed to be persuasive, informative and easy for the user to navigate.

The new user is most likely a Teacher.

User Stories

New User:


2.2. Scope plane

The following features were designed to meet the needs of new users. They were displayed across three main pages, sometimes appearing more than once for the purpose of both making the website easy to navigate and consistent branding design.

Feature Function Most relevant user story
Navbar
Navigation - I need to comfortably access this website on any device such as mobile, tablet, laptop or desktop.
Footer
Navigation [promoting businesses' online profile]
Hero image with slogan Reinforces brand, Visualizes the experience - I need to visualise this product's mission.
Page headings

Design appeal and clear navigation - I need to comfortably access this website on any device such as mobile, tablet, laptop or desktop.
Hoverboard's Mission Introduces the product persuasively in the context of VLE's, why we're different - I need to visualise this product's mission.
Call-to-action: Find out about our Features, claim-your free trial
provides clear links for the user to navigate, - I need to comfortably access this website on any device such as mobile, tablet, laptop or desktop.
- I need to be able to sign up for a free trial easily.
Testimonials from different users Provides users testimonials, Builds social proof and trust - If I am convinced enough that the product will make my job easier, then I will sign up for a free software trial.
Gallery Views, Peer Feedback, Deep Assessment
Visualizes easy navigation of classwork on a browser,student chat function in action, chatbot in action - If I am convinced enough that the product will make my job easier, then I will sign up for a free software trial.
- I need to understand the products features and their relevance to my job.
Form input Records essential details: name, address, school. Redirects to thank you page, form method="GET" - I need to be able to sign up for a free trial easily.

Omissions from the scope There were a few omissions from the project. Several Javascript features were omitted in the testimonials feature mid-project to prioritise developing the responsivity, such as a carousel and read/more read less button for mobile view. Popular frameworks such as bootstrap were not used in this instance in order for the developer to focus on learning CSS responsivity.


2.3. Structure Plane

This diagram illustrates a page structure with simple and accessible hyperlinks. The Navbar links to all 3 main pages. There are 3 call-to-action features that include a hyperlink. The submit button takes user to a thank you page, assuming the form is entered correctly.

When using the submit button, the form input requires that the

If the form is entered incorrectly on submission, the user will be prompted to adjust the form.


2.4. Skeleton Plane

In the skeleton plane each feature's display changed according to the device size. As well as adapting to viewport, a sense of depth was achieved by taking background images and discrete overlapping.

The website was designed with a mobile-first approach, using Figma. The key challenge was to use viewport breakpoints at 768px, 1208px and 1768px to display the website comfortably on different devices.

Home page wireframe


*to view wireframe in more detail, ```right click > open image in new tab```*

Navbar (used on all pages)

Call-to-action (also used on features page)

Testimonials

Features page wireframe

*to view wireframe in more detail, ```right click > open image in new tab```*

Headings (also used on sign up page and thank you page)

to view wireframe in more detail, right click > open image in new tab

Form input

the form input is displays as a column for mobile devices, 2 columns for tablet devices. On largest devices the form is displayed as a column again but on the right hand side.

Submit button

The submit button checks that the form is entered correctly, see structure plane for more details. It is placed underneath the form as the user will be in this area once completing the form.


2.5. Surface Plane

This surface plane describes the choice of typefaces, colors and style themes relevant to the project's desired tone and practical needs.

Typefaces used were Peace Sans for headings and Glacial Indifference for body text. The font pairings were chosen for their playful but professional tone as outlined in the strategy plane.

/*These type selectors are all Peace Sans*/
h1, h2, label {
  font-family: 'PeaceSans', sans-serif;
}

/* These type selectors are all Glacial Indifference*/
p, h3, h4, h5, a,
form input{
  font-family: 'glacialindifference', sans-serif;
}

/* these type selectors are all Glacial Indifference, but with some small changes in style*/
h3 {font-weight: 700 !important; /*bolden text*/}
h4 {font-style:italic;/*italicize text*/}
h5 {font-size: 0.7rem;/*reduce font size*/}

Regarding font-size, the clamp() function was mostly used to ensure the font size was responsive to the device size. This was used instead of media queries, as it was more efficient and easier to read, it allowed the media queries to be used more for positioning and to address bugs with the display.

/* The clamp() CSS function clamps a value between an upper and lower bound. It takes three parameters: a minimum value, a preferred value, and a maximum allowed value. [...]*/
h1 { font-size: clamp(1.8rem, 1.3893rem + 2.3467vw, 4rem);}
h2 { font-size: clamp(1.5rem, 1.5rem + 1.2vw, 2.5rem); }
p { font-size: clamp(1rem, 0.9253rem + 0.4267vw, 1.4rem);}

The color theme was chosen to be consistent with the logo with the aim of creating a consistent brand identity. To speed up efficiency, root variables were used to store the color values. This allowed the color theme to be changed easily in the future.

The footer section used black SVG images that were the filtered to match the color theme.

filter: invert(100%)

An important design theme was the use of overlapping images and colors, to create a sense of depth.

The border-radius was chosen to be consistent with the logo and hero image. There was also a design motif of images overlapping colors, the use of border-radius and overlapping is clearly illustrated in the testimonials feature and call to action features.

3. Manual Testing

GitHub CSS open issues by-label GitHub CSS closed issues by-label GitHub HTML open issues by-label GitHub HTML closed issues by-label

Manual testing was executed with the following criteria:

3.1. testing.md

Further documentation is available in this link: Full Documentation Research Badge

4. Automatic Testing

The Automatic Testing achieved

4.1. Validator Testing

The W3C Markup Validator and W3C CSS Validator Services were used to validate the project to ensure there were no syntax errors in the project.

The result was passed for HTML5 and CSS3.

further documentation here: Full Documentation Research Badge

4.2. Lighthouse Report

To check the lighthouse report, right click inspect and click on the lighthouse tab. The lighthouse report was run on the home page, features page and sign up page.

To further improve the lighthouse score I could use more WebP images and reduce image sizes.

Home Page Features Page Sign Up Page
Mobile image image image
Desktop image image image
Timestamp 31st July '23 31st July '23 15th July '23

5. Fixed bugs

The key challenge for this project was responsive design with style.css.

CSS breakthroughs included formatting images such as object-fit: cover to fit the hero-picture. the bg-squiggles would not fit in to the viewport and so would.

When using display: grid, devising a system for switching html elements over using classes with

There were fewer challenges with the HTML form, mainly getting the labels syntax correct.

Although Javascript was kept to a mininum, one bug realised the DOM wasn't loading without placing the <script> container at the bottom.

5.1. Unfixed Bugs

There are no known bugs.

6. Deployment

The site was deployed to GitHub pages. You can access the live link here.

9. Future features to implement

7.1. Code snippets

7.2. Technologies Used

The main languages used were HTML5 and CSS3. Javascript was also used to for smaller features such as the Navbar hamburger, or read more - read less button.

Programme How it was used
Canva Designing Hoverboard Logo
Figma Designing wireframe
VSCode Code editor
Github Version control
Tools How it was used
Clamp tool developing a responsive font size with the clamp tool
amiresponsive Checking mobile, desktop, tablet view
browserstack Checking website on firefox, opera, edge, safari and chrome
gifcap Recording gifs
shields.io Documentation Badges
FontJoy Finding font pairings
Library How it was used
Canva All graphics i.e. non-photographic imagery was designed and adapted from Canva's open source library
Pexels Used for Testimonials user images and the hero images
Unsplash John Anderson's picture in the testimonial
Font Awesome The icons in the footer and navbar were taken from
CDN Fonts Peace Sans and Glacial Indifference fonts sourced

7.3. Acknowledgements

A special thank you to the wonderful tutors at Code Institute, who I consulted for advice throughout the project. I'm deeply grateful for your prompt support.

Special thank you to Seun Owonikoko, my mentor at Code Institute, for your time and patience taking me through devtools.

7.4. Pull request acknowledgements

Special thank you to Syed Anwaar for contributing to this project by addressing an early .landing-feature img width issue, adding animation to navbar, contributions to form-handler.php

Thank you to Sahil4883 for fixing footer height. early on in the project.