Skip to content

phloreenm/MP1-CultureCoffee-CI-CoBC-FM

Repository files navigation

GitHub contributors GitHub last commit GitHub language count GitHub top language

Table of Contents

  1. About the site
  2. UX Design - the Five Plans method
  3. Testing (testing.md)
  4. Performance
  5. Issues
  6. Deployment (deployment.md)
  7. CREDITS:
  8. Aknowledgment

About the site

Culture Coffee cafe is a static website which is intended to promote, atract and offer information to potential and actual customers of Culture Coffee café. Since this website was build as a Milesstone Project for my course, therefore educational purposes only, please be advised that some information on the website may not accurate and are displayed for the fore-mentioned scope.

Link to live website is here

Link to this GitHub repo is here

Some sections of this documentation have been moved to a different file, specific to that content. The reason is all that information in this docuement only woud've made navigation difficult. So for example, wireframes.md, contrast.md or testing.md, are different files and they are linked in this document. Inside those separate files there are links back to the main readme.md file too.


Return to Table of Contents



UX (User Experience)

UXD

The UX design and development is based on the Five Elements of User Experience we've learned on Code Institute's platform.

Strategy

  • Website objectives
    • Planning Stage
      • The idea of making this website came from a real-world need, which is to build a presentation website for Culture Coffee café located in Salisbury. From the begining I had a rough idea of the content the site will provide, but folowing the development methods learned at Code Institute, helped me organise the workflow.
    • Site Objectives
      • The main purpose of this website is to offer the users the information necessary so that a client could learn:
        • who we are?
        • what could we offer as a café shop?
        • which is the café's menu?
        • where are we located?
        • how the venue looks like on the inside?
        • if there are other clients reviews about this shop.
        • if he could contact us?
    • Design Goals
      • The site should be responsive on all devices.
      • Offer accesibility support.
      • The navigation shoud be intuitive and easy.
      • Each page should keep a pleasant, neat and common design across the website.
      • The information offered is enough and organized well to attract the clients.
  • User needs
    • User Stories
      • A first-time client, or a prospective client, may have the following user stories:

        As a I want to... So that I can...
        Prospective Client
        find a café in Salisbury drink a coffee locally
        find café's location visit the café
        find contact details ask some other questions
        read the menu see if I can have a brunch, lunch or just a coffee
        download the menu print the menu
        find opening hours visit the café
        read some testimonials (reviews) see other clients' experience
        read the social media pages see what other clients shared
        see if they have accessible entryway bring my son who's using a wheelchair
        check if there is free Wifi do some work from my laptop
        hire the café have a private party
      • Additionally to the user stories of a first-time client, an existing client might also have the following stories:

        As an I want to... So that I can...
        Existing Client
        remember café's location visit it again
        find if they offer bonuses for being a loyal customer. have a coffee for free
        make a review show how happy I am for their coffee
        make a complain discuss a refund
        remember café's location visit it again
      • As a bussiness owner the users stories are related to the purpose of the bussiness itself, but also to the intent to grow in future:

        As a I want to... So that I can...
        Business Owner
        sell my products make profit
        create a select clientele make a target
        reward the loyal clients retain customers
        offer a good, intuitive browsing experience raise the chances the client would remain on the site
        implement a good site structured layout provide concise informations
        provide pictures gallery showcase some of the products on sale
        provide links to social media make a presence in the online
        create a positive image attract more customers

Scope

  • Functional specifications:
    • An user should be able achieve its goals by visiting the site's sections
    • An user could understand site's structure by accesing the navigation menu bar
    • In case website page address is typed wrong, the server displays the 404 error in a dedicated page.
    • The user receives a status feedback as a result of its sent enquiry.
    • All pages are responssive on most of the devices, from small to large screens.
    • Website is well displayed on most popular browsers.
  • Content requirements:
    • The information provided to user needs are acomplished through:
      • Navigation Menu
      • Images
        • Logo
        • Pictures' Gallery
        • Products' descriptive images
        • Icons (from FontAwasome)
      • Specific text information (address, phone number, email address)
      • Internal links
      • External links to other sites or services:
        • Travel sites
        • tel: link to open diallling screen
        • mailto: link to quickly open default mail client
    • Information is actual.
    • Information is clear and easy to understand; homogeneous base of content.

Structure

  • Information architecture:

      1. Information available across all the pages
      • Header and Footer are accesible on all pages offering quick acces to different type of information
      1. Features grouped and available only to specific pages:
      • Each page's content section is specific to the page.
  • Design options:

    • HOW:
      • an user can learn some information about out cafe by reading the Landing Page content
      • an user could consult the cafe's menu in two ways:
        • viewing the dedicated Cafe's Menu page.
        • downloading the available Cafe's Menu in PDF format.
      • an user may see real pictures gallery:
        • by visiting the Pictures Gallery page
        • by accessing the Google Maps and TripAdvisor links available at the bootom of the Pictures Gallery's content section.
      • an user may send an enquiry to the café using the Contact page.
    • WHERE:
      • Structure and flow (user journey) map

    The flow of an user visiting the website is represented in the following diagram:
    User's journey


Skeleton

The skeleton plane is represented by the wireframe sketches and they're are located in wireframes.md file.


Return to Table of Contents



Surface

UI (User Interface)

Site structure

  • The site's structure follows a simple linear design. From the home page you may access any other page through the navigation menu. This is a straight forward aproach. The same navigation menu is accesible on every other page, even on the 404.html one. The Form Confirmation page is displayed to confirms the form has been successfuly submited and you have the option to navigate back to the website or other internal links.
  • One reason behing this aproach (of the simple linear design) is the Mental Model natural thought process, more exactly, the users build mental models and use these

"to assess relations among topics and to guess where to find things they haven’t seen before". (Site Structure theory)

The following diagram represents this structure
Site's structure


Return to Table of Contents



Responsiveness

  • Some commonly used breakpoints are 576px, 768px, and 992px. These values should cover most of the targetted devices, like smart phones, tablets/laptops, and desktops. The layout I chose allowed me to use the 920px breakpoint for the navigation menu (when the header's width is too small and the navigation items would begin to wrap) and 992px for the general layout.

  • For responsiveness on mobile devices the minimum supported width is 300px. Using smaller resolution would make the pictures unreasonbly sized and the layout would not serve the purpose properly. That's why I decided this would be the minimum body's width.

  • Going higher in the width resolution from 991px we see a landscape and desktop view, with larger paddings and margins, with a maximum width of the main content of 1000px. On iPad Pro the layout is displayed as on desktop view, but on a Samsung Tab S4, the layout is rendered as a mobile view.

  • The navigation bar has a little different responsivness than the rest of the layout because of the size of the text from navigation bar, and also because I din not want navigation's items to wrap in desktop view mode. When the width of the screen decreases and would force the navigation elements to wrap, that's the moment the header is displayed as mobile layout. Therefore the transformation of the navgation bar from desktop view to mobile view happens much earlier, going down from 920px.

  • The overall responsiveness of the site has been tested and the results can be found in the folowing section.


Return to Table of Contents



Layout

The general layout of the website is composed of three main areas: Header, Content and Footer. The Header (containing the Logo and the Navigation Menu) and the Footer are common to all pages, but the Content area is different for each page.


HEADER

  • contains the company's logo and, depending on the device's screen width, a menu navigation bar to the top right (on larger screens) or a hamburger menu button (which opens the hidden menu - in mobile view).

On screens up to 920px width (small screens)
On screens up to 920px width (small screens)

On screens larger than 920px width (larger screens)
On screens larger than 920px width


MAIN CONTENT SECTION

  • contains the page's specific subjects (like some information on Langding Page, Cafe's Menu, Pictures Callery, Contact form or the 404 page).
  • this area is limited to a max-width: 1000px; there is also a padding: 0 100px; in desktop view. Also the background-color is limited to this width and this should create a delimitation between the empty space and the actual main content.
  • in mobile view the pading is reduced to 30px and the width:100%, so that more information would fit on smaller screens.

Return to Table of Contents



Home page

Home page main section contains:

  • a welcoming message at the top.
  • some introductory information structured as Q&A form. This area contains some links to links on another pages. For example, the word "coffees", from the What else can we offer you ? question, is a link to the Coffees category from Cafe's Menu page. This is making navigation handy. The purpose is to guide the visitor through the website's content, and describe what the company has to offer.

Mobile and desktop view:

Left - Mobile view Bottom - Mobile view


Return to Table of Contents



Menu page

The menu page is structured differently that the other pages, because the main purpose is to display the Café's menu, sorted in four categories: Coffees, Dishes, Cakes and Wines. For that reason I found useful to use the grid system. The same result could be obtained with just using flexbox too, but my choice was grid for this page.

  • In mobile view the layout is formed as a single column. So the categories and their content are all displayed in one columns only.

  • On larger screens (desktop view) the container is displayed in a column: inside it, the categories in this column and the the content are displayed on two columns.

  • Bellow each category group, there is a link Back to top(... of the page), to help the user to jump to the main navigation bar area.

  • I chose to create another menu specific to this page only.

    • This menu only contains internal links found on the same page, to the main categories from the list, which are: Coffees, Dishes, Cakes and Wines.
    • Using this menu the navigation is quicker for the user, if he's interested in a specific product and is not interested to see other items.
    • It is available at the bottom of the page too.
    • Since using JS is not required for this project, I needed to find a way to change the text of a specific area, when the state changes. I found out that the <details> element can help. So when this menu is collapsed, the user is asked to acces this menu by clicking the ▶️ Click to open quick menu links:

    Menu closed
    Menu closed

    - The user may choose to colapse the menu by clicking again `🔽 Click to close quick menu links` area.

    Menu opened
    Menu opened - After the user clicks, the menu opens like this

    - You may notice that the text content changes from "open" to "close". The ▶️ and 🔽 icons display the status of the `details` element. - In mobile and desktop view, this area keeps the same layout, by adapting its width to the viewport.

    Quick Links Menu - Mobile view

  • Bellow, there is a linked text which, on click, it downloads the complete Café's menu in PDf format.

    Download link

  • The main content of this page is composed of four categories, each with a couple of cafe's menu items, grouped acordingly.

    • Each category is delimited and begins with the header.
    • Under the Header there are the items displayed in a column or two columns, depending on screen size.
    • At the end of each category there is a "Back to top" link.
    • Just before the Footer area, there is the same Quick Menu links displayed again, to ease users's navigation.

    Small screen and larger screen layout preview:
    mobile view desktop view


Return to Table of Contents



Gallery page

The Gallery page has only one purpose: to showoff some pictures depincting the interior design of the cafe, staff, making coffees, etc.

  • In mobile view there are two views:
    • One column

      Mobile view: width smaller than 672px
      Mobile One column Preview

    • Two columns

      Mobile view: width between 673 and 992px
      Mobile 2 columns Preview

  • Desktop or large screen view: images are displayed on a single column, at high resolution:

    Desktop view: width more than 992px
    Larger screens and Desktop pone column Preview


Return to Table of Contents



Contact page

  • The Contact page is structured around a form, containing multiple fields, which the user may choose to fill. The user can make a request, ask a question, propose a recommandation, make a complain and also take part to a poll by votting his favorite coffee.

    Mobile and Desktop preview
    Contact page - Mobile preview Contact page - Desktop preview


Return to Table of Contents



FOOTER

Mobile and Desktop view

Footer in mobile view Footer in desktop view

  • The footer is composed three sub-areas, as follows:
    • ADDRESS - contains a link with the Google Maps location of the Cafe shop. Accessing the link will offer you the posibility to ask for directions towards the shop. Depending on the device used, the behaviour differs: on mobile deviced it will open the Google Maps app and on desktop device it will open a new tab with Google Maps.

    • SOCIAL MEDIA LINK - linked icons to acces the social media pages of the café shop. On hover over these icons, they grow in size to 2rem.

    • CONTACT US

      • The EMAIL contains the mailto: link, so if the user want's, by pressing on the e-mail address, the default email client is opened. The Send to and CC section are prefilled with the right email destinators addresses.

        Testing on a smartphone:
        Client's default app opens already having destinators emails completed

      • The TEL section is also a link, which, while in mobile view, is enabled and proceeds to opening the phone number in calling screen, but if viewed on a desktop, the link is disabled. As described here:

      tel: support is great across mobile clients, it can be unreliable on the desktop and in webmail clients.

      Preview:

      Press phone number opens default calling application Calling screen on a smartphone


Return to Table of Contents



Fonts

  • Font families used:
    • font-family: 'Lato', sans-serif;
    • font-family: 'Montserrat', sans-serif;
    • font-family: 'Merriweather', serif;
  • The fonts were chose to offer a good visual impact, but mostly to promote readability. The text being easy readable, it is more likely that users reading the content they obtain the needed information quicly and understand the message.

Return to Table of Contents



Colours

Choosing the site's color theme was a bit tricky for me.

I have a Moderate Deutan colour blindness. This doesn't affect me in a manner where I could not see colours, as many people might believe when they hear "colour blindness". But it more related to colour sensivity. Is just that in some specific cases (low or crepuscular light, for example) I might not perceive colours as others. For this reason I needed help from someone else, so in some moments in the development of this project I had to ask for a second opinion.

Finally, the color theme I decided to use in this project is actually is based on the colors of a coffee bean and two other complemetary colors, to create a good contrast. So I primarly used an image of coffee beans. From that, using the tools available at coolors.co I extracted the main pallete colors. The extracted color nuances were too many, so I had to finnaly decide to which basic color I'll use. After, to create an acceptable contrast, I've used the generator so that I'll will give me colors to fit one each other.

As a result, the final contrast ratio is everywhere above 9:1. All contrast test were conducted on Color Contrast Accessibility Validator and WebAIM - Contrast Checker. The result can be consulted in the dedicated file.

Default color pallete - colormind.io

  • #231a19 - used mainly for text color.

  • #552f1e - used for:

    • Main navigation menu links background when hovered.
    • Landing page internal links hover effect
  • #883f22 - used for active page in main navigation links

  • #f5f7bb - used for hover text color change in links in main navigation bar and footer.

  • #ece7e1 - used for:

    • Header background.
    • Main content background color in main page.
  • The arrows used in the Quick Menu categories list in Cafe's Menu page, are blue.


Return to Table of Contents



Accessibility

  • The Accessibility score of 100 in Lightroom was obtained by using the recommended landmarks or *special regions, so that screen readers and other assistive technologies can jump to different sections of the site. These improve the overal navigation experience.
  • Each page has distinctly separated areas. The main content area of each page contains the right landmarks and ARIA landmarks, such as role, aria-label.
  • In mobile view the main navigation bar is hidden behind an icon. The icon has normally applied a bouncing effect, but to avoid vestibular motion triggers the animation is reduced (in media queries section of the css file), when the user has disabled such effects.

Back to Table of Contents


Deployment

This section is described in its own file deployment.md


Return to Table of Contents



Performance

  1. To improve loading speeds, I've used *.webp image format (https://developers.google.com/speed/webp) and *.png and *.jpg formats. Every image is been proccesed with Adobe Photoshop -> Export -> Save to Web -> and used low or medium presets for image quality.
  2. Images from Gallery page were resized to 768px for the long side. This resolution is enough to display good images for breakpoint-md: 768px .
  3. Images used on Cafe's Menu page were resized to small format and low quality, so it won't affect performance.
  4. The performance of the site was tested using the Lighthouse tool. The results were negatively influenced by two aspects (links not crawable and pre-connect), for which I did not find a solution to fit my needs. This aspect is described more detailed in testing.md page file.

Return to Table of Contents



Issues

Along the development I encountered different issues. Some of them were fixed, for other I found a way around of just used a better solution.

  • When resizing the browser window to mobile view, at the left of the browser can be seen the hidden navigation bar transition effect.

  • Contact Page legend text centering: an issue I had was centering the legend element, which wasn't easy achievable through CSS, because of the cross browsers incompatibility. There, an in-line property solved it (https://www.geeksforgeeks.org/html-legend-align-attribute/). Issues discussed HERE

  • I could not find a FontAwesome icon for Tripadvisor. Issue is discussed HERE

  • While site was deployed on github Pages, the images on the site wouldn't load. Found out that I have to remove the '/' from the relative links. Example: <src="/assets/imgs/coffees/image.jpeg> -> in this format the images wouldn't load, so I had to remove the backslash before the 'assets' folder. Found this through the Developer's Tools in Chrome. In VS Code having the / won't affect loading, but on GitHub alt-text is being shown.

  • I couldn't use Extended Syntax for Markdown documents, as while I was trying to use Footnotes, for example, it wasn't rendered in my GitHub repository. Therefore I had to use links inside the content to credit the extracted ideas from the respective sources.

  • Wasn't able to use emoji in this document, because on preview they weren't rendered ar icons, but plain text.

  • Hover effects won't work properly on touch mobile devices (which are using a touch screen), so a media query for that has to be implemented.

  • The navigation menu, while in mobile view, is displayed OVER the content of the page. So opening the menu in mobile view, the actual content below the header won't go lower to make place for the menu items. I didn't want to use JS and/or Boostrap, so this was an acceptable compromise I had to accept for the purpose of this project.

  • While validating I had an error

    End tag nav seen, but there were open elements.

    Unclosed element ul.

    but couldn't find any opened or unclosed elements. These errors dissapeared after I corrected some other errors.


Return to Table of Contents



CREDITS

Code Snipets

Research and Information

Media

Other resources and tools used


Return to Table of Contents



Aknowledgment

Before finishing this project I would like to say a big "thank you!" to all of you who helped me in working on this project. Firstly, to my family who supported me all along in every aspect, especialy in being absent at some important moments, because I had to study. Of course, nothing would have been possible without everyting Code Institue offered through this course and its wonderful Slack community. Since I am officialy taking this course at City of Bristol College, a big thanks to my tutors, Pasquale F. and Ben Smith for every step they've been with me through the learning process. And last but not least, to my mentor, Adegbenga Adeye, whose insights were always very helpful and helped me shape this project.


Return to Table of Contents


About

Milestone Project 1 - Culture Coffee café - static page [C.I. & CoB C]

Resources

Stars

Watchers

Forks

Packages

No packages published