Giter Club home page Giter Club logo

portfolioprojectone's Introduction

Fundamentals of Big Band Drumming

Portfolio Project 1: HTML/CSS Essentials

images of website on different devices

This project is built as part of the Code Institute Full Stack Software Development course. For this course, Dirk Ornée had to built a first Portfolio Project. He choose to built a project that combines his knowledge as a professional musician, with his knowledge gained troughout the course.

Live Site

Fundamentals of Big Band Drumming

Repository

https://github.com/DOdrums/PortfolioProjectOne


Table of Contents

UX

Business goals

The main goal for this project, is to develop a valuable resource for drummers and conductors, to learn about big band drumming. The website should be able to provide a helicopter view of what big band drumming is like, how it should be approached and what it should sound like. This should help conductors in giving pointers to drummers during rehearsals and should improve the playing of big band drummers who aren't very experienced yet. The second goal is to show my competency as a developer using HTML & CSS.

Target Audience

Drummers and Conductors are the main target audience, since the website really aims to help them specifically in understanding the function of a big band drummer better. The information is also presented in a way, that it is assumed you already have knowledge of music and big band music specifically. However, anybody with some knowledge or just a general interest in big band music should be able to enjoy this website and learn something.

User Stories

As the owner:

  • I want to share my knowledge about big band drumming and keep everything I have learned over the years in one place (the website).
  • I want the user to really dive in, get interrested in the topic and get inspired to do more research by themselves.
  • I want the user to learn the fundamentels of big band drumming through this website, so they can use this information in a pragmatic way to develop their own style and preferences.
  • I want to build a relationship with users, where they can contact me through the contact form if they have more questions, so I can help them out with anything drumming related.

As a new user:

  • I want to navigate the site easily and intuitively, without having to wonder what the purpose of the site is.
  • I want to be redirected through the pages in an intuitive way, having a logical hierarchy to follow in order to learn everything I can from the website.
  • I came to this website specifically to learn about big band drumming, especially about topics within big band drumming which are hard to find recources for.

As a returning user:

  • I want to return to the information, to see if I'm already incorporating everything in my playing or conducting.
  • I want to re-listen to the audio, to see if now that I have tried to use the information in practice, I start to recognize more of the information learned in the audio itself.
  • I want to contact the author, for any further questions I have.

Structure of the website

The website is designed to give a good hierarchical flow. This means that after reading the homepage, the user will go to the second page (Reading & Playing) and read through this information. On the bottom of that page they will be prompted to continue to the Three Drummers page, which is the logical place to continue, as it builds on the information read in the Reading & Playing page. The pages however can also be used just by themselves, they both contain enough information to stand on their own. Furthermore, the website is made fully responsive, so it functions on any device. That being said, as you'll be reading sheet music on the Reading & Playing page, a bigger screen is more fitting for the type of content.

Color Scheme

The Color Scheme was chosen to represent a somewhat old fashioned look, especially since a lot of the images are black and white, which could look weird on a very modern looking website. To make the website not appear boring, a bright yellow (Safety Yellow) was used. The main color palette can be seen below:

main color palette

Of this color pallette the following colors were used:

  • Eerie Black
  • Cultured
  • Safety Yellow

A secondary color palette was used for extra colors:

secondary color palette

Of this color palette the following colors were used:

  • Davy's Grey
  • Pale Silver

Features

image of all the features that could be added and their difficulty and feasability

Before this project was started, a MoSCoW-method style table was made to see which global features should be added and which features would be omitted or added at a later date. You can see said features in the image above. Let's have a look at the features that actually made it to the website:

Home Page:

The home page is where the user will learn about the project and it's function. Right at the top is a nav bar, making clear which sections the website is divided in. The current active page will be underlined in yellow and user will get a conformation that other links work when hovering over them, by temporarily having hovered link underlined yellow as well:

image of nav bar

Right below the nav bar we find the title and cover text, with a captivating hero-image behind it. The cover text is written short and concise, but with a clear explanation of the website's main goal:

image of hero-image and cover-text

Next is the About Me section, which explains quickly who the author is and why he wrote this website. You'll also see a portrait picture, to put a face to the name:

image of about me section

Underneath the about me section, you'll find a video of Buddy Rich playing an impressive drum solo! This video is meant to attract the attention of the user and make them want to learn more about big band drumming:

image of video section

Finally we have the footer section. This footer section features four socials links, in case user wants to get to know more about the author:

image of footer

Reading & Playing page

The reading and playing page starts off with an introduction explaining that on this page you will learn how to interpret notes as a big band drummer. It also mentions you should already know how to read sheet music in order to take full advantage of the information on this page. There is an image of famous drummer Sonny Payne with a hyperlink to Wikipedia in case you want to learn more:

image of intro

Next, user will start reading all about big band drumming and get sheet music examples to see what a drum sheet looks like, with explanations about what everything on the sheet means:

image of sheet music and text

Sroll further and user will find the first audio example. These audio examples are used to give a live example of what the drumming sounds like and to connect the theory to the practice:

image of audio track

At the end of the page multiple, lists are introduced to sum up some simple best practices for playing big band music. These lists give the user a clear overview of what is important to remember about big band drumming and is a good place to return to a second time, when refreshing their knowledge about the topic:

image of lists

Notice that on the side of the page, there is a little button with an arrow in it. This button will bring you back to the top of the page when clicked:

image of back to top button

Three Drummers page

The three drummers page is similar in layout and features to the Reading & Playing page, sporting an intro, text and audio examples. On this page though, instead of sheet music, you'll find nice oversized images of each drummer covered on this page:

large image of buddy rich

Contact page

On this last page, you'll find a contact box where the user can input their information and ask the author a question. For the author's convenience, a 'Profession/Instrument' box was added, so author can tailor make his response to any questions. image of contact section

Future Features

Styles

In the three drummers page, three different ways of playing big band music are discussed. However, these three different ways all fall inside a quite similar big band style. There are different styles of big band music and playing, that fall outside of my expertise, but could be added in a seperate page to at least familiarise the user with them.

Sounds

On the three drummers page, the drum kits that are used by the drummers are briefly discussed. A seperate page dedicated to the sound of several different drum kits kind could be made, covering how to tune your drum kit in different ways as well as what to look for in a good jazz cymbal.

Technique

This page would be specifically for drummers and discusses what kind of drumming techniques to use to get a good swinging feel and sound.

Hamburger Menu

Since Javascript wasn't used inside this project, a hamburger menu couldn't be made. In a future release (outside of the course), this could be added for better usability on smartphones.

Differently sized sheets for smartphone sizes

Although the sheet music is readable on a phone when held in landscape mode, it doesn't read nicely when in portrait mode. This could be mitigated by cutting up the sheets in smaller portions, and aligning these portions underneath each other. However, with the sheets that are currently used, this could not be done, since the resolution was not high enough and the pictures were slightly warped (new sheet music could be custom-made to mitigate this).

Working Contact form

Although the contact form is build up properly, there was no back-end section in this project. This means the information is not sent anywhere. In a future update this functionality could be added, so the author actually recieves any input from users.

Credits

To be able to built this project in gitpod, I used the template made by Code Institute, as found here: full template

Other websites I used for inspiration and general coding examples and knowledge:

Code

  • Nav bar inspiration and code for hero-image animation was taken from the love running walkthrough project
  • The CSS code margin-left: calc((100% - 600px) / 2); to center paragraphs on page 2 and 3 was taken from the NYtimes website, which uses this code to center text in their articles
  • The CSS code to make the youtube video responsive for screen sizes 767px and under, was taken from this website: make youtube video responsive
  • The javascript code for the back to top button was taken from this website: https://codeconvey.com/floating-back-to-top-button-html/

Images

Several images were taken from other website:

Reading and Playing page

Three Drummers page

Contact page

Any other images displayed on the website were shot by the author.

Media

  • Audio examples were taken from author's personal music library.

Technologies used

HTML - for basic structuring and semantic markup of the document.

CSS - to provide styling to all the pages.

Preview (Mac) - for converting images to smaller file sizes.

Color Palette generator for generating the color schemes.

Font Awesome - for items used in footer and back to top button.

Awwwards - for the heading font.

Gitpod - used to connect a browser based VScode to github.

Github - used for version control and deployment of the website.

Multi Device Website Mockup Generator - to create an image of the website shown on different devices.

Testing

Functionality testing

Throughout the development of this website Chrome developer tools was used to solve issues and try out new styles. Since you see the results immediately, it is a faster way of working than adding code to your project and refreshing your page after every step. Every once in a while I'd open the website in Safari, to make sure it was also functional in this browser, since Safari is notorious for having the worst HTML support.

Compatibility testing

The site was tested by myself on an iPhone 8 and a 15 inch Macbook Pro. Friends and family also tested the website on Windows Desktops, the original (small) iPhone SE, and Android devices. The website was also tested in Chrome, Firefox and Safari. No problems or responsiveness issues were found.

User stories testing

As the owner:

  • I want to share my knowledge about big band drumming and keep everything I have learned over the years in one place (the website).
    • I was able to make a well structured website with clear information about big band drumming. Most of the relevant information I know, can be found on this website.
  • I want the user to really dive in, get interrested in the topic and get inspired to do more research by themselves.
    • The video on the homepage should captivate the user and make them want to dive in to the material deeper.
    • The short audio clips should further peak there interesest and make them want to listen to more big band music.
  • I want the user to learn the fundamentels of big band drumming through this website, so they can use this information in a pragmatic way to develop their own style and preferences.
    • User can learn through text, sheet music and audio. It is well structured and easy to digest information.
  • I want to build a relationship with users, where they can contact me through the contact form if they have more questions, so I can help them out with anything drumming related.
    • User can find a dedicated contact page urging user to contact author in case they have any more questions.

As a new user:

  • I want to navigate the site easily and intuitively, without having to wonder what the purpose of the site is.
    • Purpose of page is explained to user in the cover text. After that, user can read a short intro about the author and watch a short video that displays some high quality big band drumming. User should be ready to dive in to the information expecting more information about big band drumming.
  • I want to be redirected through the pages in an intuitive way, having a logical hierarchy to follow in order to learn everything I can from the website
    • User will feel a natural flow throughout the page, having to only scroll down through the two main information pages and being urged to continue with the Three Drummers page after finishing the Reading & Playing page.
  • I came to this website specifically to learn about big band drumming, especially about topics within big band drumming which are hard to find recources for.
    • User is expected to already have some knowledge about music and (playing) drums. It is meant as a specialized resoure where user can learn about big band drumming that are hard to find in other sources.

As a returning user:

  • I want to return to the information, to see if I'm already incorporating everything in my playing or conducting.
    • Information is structured in bite sized portions, making it easy to return to the information and look for a specific section, in case user wants to revisit certain information.
  • I want to re-listen to the audio, to see if now that I have tried to use the information in practice, I start to recognize more of the information I read, in the audio itself.
    • Audio will be available to play as much as the user wants and is fully user controlled, making it easy to re-play or fast forward (or back) through the music.
  • I want to contact the author, for any further questions I have.
    • User can find a dedicated contact page on the website.

Performance testing

I used the Lighthouse tool in Chrome Developer Tools to test certain key factors of the website troughout development. This helped me to spot errors or possibble improvements and mostly helped me in keeping the website fast and the code up to snuff with current best practices. Scores can be seen in the image below:

image of lighthouse scores

Code validation

To validate the code I used the following two tools:

Nu Html Checker

W3C CSS Validation Service

Both validators returned no significant errors on any of the pages.

Bugs

  • After finishing page 2 of the website, I noticed that the line underneath the nav bar was suddenly cut in half. This was caused by a bottom-margin property being added to the main font selector (which includes the nav element). This was solved by making a selector that contains a negative bottom-margin to the ul and il child elements of the nav element and by adding a nav selector that contains a bottom-margin of 0.
  • The thumbnail of the youtube video would dissapear in and out of frame partially when resizing the window. After some playing around in the chrome dev tools, I discovered this was due to the width being set to a percentage setting instead of pixels. I changed it to pixels and now the thumbnail stayed sized the same no matter the window size.
  • There was a problem with the hero image after resizing it to fit tablet sizes. The hero image was now zooming into the div below instead of behind it. This was because I changed the height setting of hero-image id but not of the hero-outer id.
  • There was a problem with the figcaption under the count basie image not aligning. This happened because I moved around CSS rules inside the media query section, and misplaced a bracket because of that. This misplaced bracket made two CSS rules fall outside of the media query and were now applied project-wide. It took a while to find what caused this, but Chrome Developer tools made it easier to see that the wrong styles were being applied at bigger screen sizes.

Deployment

The site was deployed through Github Pages. Connected to Github was Gitpod, which features a browser based VScode. For the most part I used the connection to Gitpod with a desktop VScode, since I have VIM and other extensions installed, which didn't work in the browser based version.

To the deploy the project, I had to:

  • Go to settings in github
  • Scroll down to Pages
  • Select the main branch
  • Hit save to deploy the website

To test the website locally while building:

  • Open terminal in the open VScode project
  • Start http server by typing 'python3 -m http.server' into the terminal window
  • Click the 'Open Browser' button that appears

Acknowledgements

This website was built as part of the Full Stack Software Development course from Code Institute. I would like to thank my mentor Adeye Adegbenga, for his excelent feedback and guidance throughout the development of the project. I would also like to thank friends and family, who all took a look at the finished project to make sure it worked well and if I could improve things. Lastly, a special thanks to Riyadh Khan, who gave me excellent feedback in the peer-code-review channel on slack.

portfolioprojectone's People

Contributors

dodrums avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.