Skip to content

FAC10/week1-jzlp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

JZLP Week one project

##Intro - Zooey show README why, what, how How did you split up the work? How did you choose to pair?

##Show your use of Github - Joey commit history PR history

##Walk through the UX - Lucy i.e. demo your website

##Walk through the code ###HTML structure - Lucy ###Flexbox - Joey ###Responsiveness - Joey ###Acccessibility - Zooey ###Images and form - Piotr ###Scroll feature - Piotr ###Javascript problem - Lucy

Why

To showcase JZLP, a team of developers who understand, communicate and deliver.

What

A one-page portfolio site that provides an overview of JZLP, including an about us section, team member profiles and a contact page.

How

Process

Discussion Day 1

  • set up github repo and gitter channel
  • group wireframe of web app
  • decided to go mobile first in terms of design
  • ran through user stories to check that our plan fitted these
    • decided to use formspree.io for form
    • looking at colorsafe to make sure we fulfil partially sighted readers needs
    • straight up semantic html to aid accessability. no divs.
      • use aria landmarks as well as html5 elements to ensure accessability
      • set autocomplete tags to complete forms
      • make sure all is tabbable
    • do we need any javascript?
      • hopefully not
  • Day one target: have a basic web app with placeholders by the end of today

Tasks

  • html structure assigned to Piotr and Lucy

  • work out host on github pages

  • inital design (enhanced wireframe) assigned to Joey and Zooey

  • Ensure site works with Chrome Vox --> accessible, tabbable and chrome vox accessibility, tabbable and nav with arrow keys

Stretch goals

// Find elements in DOM
var linksDOM = document.querySelectorAll('.js-nav-link');


// Scroll to target function
var totalScrollDuration = 600;
var numberOfScrolls = 60;
var singleScrollDuration = totalScrollDuration / numberOfScrolls;

function scrollTo(targetElementPosition, scrollDuration) {
  if (scrollDuration <= 0) { return; }
  var distanceToTarget = targetElementPosition - getScrollPosition();
  var singleScrollDistance = distanceToTarget / scrollDuration * singleScrollDuration;

  setTimeout(function() {
    var scrolledElement = document.body; // chrome safari
    var positionBeforeScroll = getScrollPosition();
    scrolledElement.scrollTop = positionBeforeScroll + singleScrollDistance;

    if (document.documentElement.scrollTop === positionBeforeScroll) {
      scrolledElement = document.documentElement; // firefox
      scrolledElement.scrollTop = getScrollPosition() + singleScrollDistance;
    }

    if (scrolledElement.scrollTop === targetElementPosition) { return; }
    scrollTo(targetElementPosition, scrollDuration - singleScrollDuration);
  }, singleScrollDuration);
}


function getScrollPosition() {
  return document.body.scrollTop ||
         document.documentElement.scrollTop ||
         window.pageYOffset ||
         0;
}


// Add event listeners
linksDOM.forEach(function(link) {
  link.addEventListener('click', function(event) {
    event.preventDefault();
    var targetId = event.target.innerText; // assumes that inner text will be the same as target id
    var targetPosition = document.getElementById(targetId).offsetTop;
    scrollTo(targetPosition, totalScrollDuration);
  });
});
  • improve security of form submission
  • make each section fill screen

User stories

Build a one-page portfolio website for you and your team

We want you to work together over the next few days to build a small site from scratch that provides a short portfolio for you and your team.

To describe what features should be implemented, these are the user stories that should be satisfied;

As a client looking to hire a team of developers

I want to visit your site and immediately see a headline about your team

So that I get a concise description of what you have to offer me.

As a client looking to hire a team of developers

I want to visit your site and see a navigation link for 'About, Team, and Contact'

so I can quickly navigate to the areas of the site I'd like to visit.

As a client looking to hire a team of developers

I want to be able to contact the developers by filling out and submitting a form by providing my name, email and message information

So that the team have sufficient information to contact me afterwards

As a client looking to hire a team of developers

I want to click on a navigation link and a corresponding section be made visible in the browser window on the same page

So that I can quickly navigate around the site without having to wait for new pages to be loaded.

As a client looking to hire a team of developers

I want to easily view the site when browsing on my mobile, tablet or desktop

so that I can understand the sites content easily on whatever device I choose to view it in.

As a visually impaired client...

I would like to easily read and understand the text on your site

so I can understand the information available

As a blind client...

I would like to easily understand how to navigate the site after my screen reader reads me the content of the site

so I can understand the information available.

As a client with JavaScript disabled in their browser for security reasons

I would like to visit your site and get a similar experience to viewing your site on a modern browser with JavaScript enabled

so that I don't feel like I'm completely in the stone age.