gaiaengineer / freecodecamp

Learning HTML/CSS and JS

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

HTML, CSS, and JavaScript Code Sandbox

Below are a selection of personal coding projects undertaken for the purpose of skill enhancement and practice in the domains of HTML, CSS, and JavaScript. Most of them were performed as capstone projects for the following courses:

🌱 Fellow learners are welcome to use these projects as a base for their own capstone projects.

👋🏻 Feel free to consult my freeCodeCamp profile and LinkedIn page to see my credentials and connect.

0 - Table of Contents

1 - Survey Form

Project description

This is a simple survey form meant to collect data from users. By the design of the Responsive Web Design course, the learner should construct a survey form that is functionally similar to the example provided here. The following user stories should have been fulfilled:

  • You should have a page title in an h1 element with an id of title
  • You should have a short explanation in a p element with an id of description
  • You should have a form element with an id of survey-form
  • Inside the form element, you are required to enter your name in an input field that has an id of name and a type of text
  • Inside the form element, you are required to enter your email in an input field that has an id of email
  • If you enter an email that is not formatted correctly, you will see an HTML5 validation error
  • Inside the form, you can enter a number in an input field that has an id of number
  • The number input should not accept non-numbers, either by preventing you from typing them or by showing an HTML5 validation error (depending on your browser)
  • If you enter numbers outside the range of the number input, which are defined by the min and max attributes, you will see an HTML5 validation error
  • For the name, email, and number input fields, you can see corresponding label elements in the form, that describe the purpose of each field with the following ids: id="name-label", id="email-label", and id="number-label"
  • For the name, email, and number input fields, you can see placeholder text that gives a description or instructions for each field
  • Inside the form element, you should have a select dropdown element with an id of dropdown and at least two options to choose from
  • Inside the form element, you can select an option from a group of at least two radio buttons that are grouped using the name attribute
  • Inside the form element, you can select several fields from a series of checkboxes, each of which must have a value attribute
  • Inside the form element, you are presented with a textarea for additional comments
  • Inside the form element, you are presented with a button with id of submit to submit all the inputs

Technologies

Credits

Background image for the project is provided by Ugur Akdemir on Unsplash

2 - Tribute Page

Project description

This is a simple tribute page meant to give information on a famous person. By the design of the Responsive Web Design course, the learner should construct a survey form that is functionally similar to the example provided here. The following user stories should have been fulfilled:

  • Your tribute page should have a main element with a corresponding id of main, which contains all other elements
  • You should see an element with an id of title, which contains a string (i.e. text), that describes the subject of the tribute page (e.g. "Dr. Norman Borlaug")
  • You should see either a figure or a div element with an id of img-div
  • Within the #img-div element, you should see an img element with a corresponding id="image"
  • Within the #img-div element, you should see an element with a corresponding id="img-caption" that contains textual content describing the image shown in #img-div
  • You should see an element with a corresponding id="tribute-info", which contains textual content describing the subject of the tribute page
  • You should see an a element with a corresponding id="tribute-link", which links to an outside site, that contains additional information about the subject of the tribute page. You must give your element an attribute of target and set it to _blank in order for your link to open in a new tab
  • Your #image should use max-width and height properties to resize responsively, relative to the width of its parent element, without exceeding its original size
  • Your img element should be centered within its parent element

Technologies

Credits

The photo for the project is provided by this website.

3 - Documentation Page

Project description

This is a simple technical documentation page meant to give information on a certain syntax or functionality. By the design of the Responsive Web Design course, the learner should construct a technical documentation page that is functionally similar to the example provided here. The following user stories should have been fulfilled:

  • You can see a main element with a corresponding id="main-doc", which contains the page's main content (technical documentation)
  • Within the #main-doc element, you can see several section elements, each with a class of main-section. There should be a minimum of five
  • The first element within each .main-section should be a header element, which contains text that describes the topic of that section.
  • Each section element with the class of main-section should also have an id that corresponds with the text of each header contained within it. Any spaces should be replaced with underscores (e.g. The section that contains the header "JavaScript and Java" should have a corresponding id="JavaScript_and_Java")
  • The .main-section elements should contain at least ten p elements total (not each)
  • The .main-section elements should contain at least five code elements total (not each)
  • The .main-section elements should contain at least five li items total (not each)
  • You can see a nav element with a corresponding id="navbar"
  • The navbar element should contain one header element which contains text that describes the topic of the technical documentation
  • Additionally, the navbar should contain link (a) elements with the class of nav-link. There should be one for every element with the class main-section
  • The header element in the #navbar must come before any link (a) elements in the navbar
  • Each element with the class of nav-link should contain text that corresponds to the header text within each section (e.g. if you have a "Hello world" section/header, your navbar should have an element which contains the text "Hello world")
  • When you click on a navbar element, the page should navigate to the corresponding section of the #main-doc element (e.g. If you click on a .nav-link element that contains the text "Hello world", the page navigates to a section element with that id, and contains the corresponding header)
  • On regular sized devices (laptops, desktops), the element with id="navbar" should be shown on the left side of the screen and should always be visible to the user
  • Your technical documentation should use at least one media query

Technologies

Credits

The text for the project is provided by this website.

4 - Product Page

Project description

This is a simple product page meant to give information on a certain set of products inside a brand. By the design of the Responsive Web Design course, the learner should construct a technical documentation page that is functionally similar to the example provided here. The following user stories should have been fulfilled:

  • Your product landing page should have a header element with a corresponding id="header"
  • You can see an image within the header element with a corresponding id="header-img" (A logo would make a good image here)
  • Within the #header element, you can see a nav element with a corresponding id="nav-bar"
  • You can see at least three clickable elements inside the nav element, each with the class nav-link
  • When you click a .nav-link button in the nav element, you are taken to the corresponding section of the landing page
  • You can watch an embedded product video with id="video"
  • Your landing page has a form element with a corresponding id="form"
  • Within the form, there is an input field with id="email" where you can enter an email address
  • The #email input field should have placeholder text to let users know what the field is for
  • The #email input field uses HTML5 validation to confirm that the entered text is an email address
  • Within the form, there is a submit input with a corresponding id="submit"
  • When you click the #submit element, the email is submitted to a static page (use this mock URL: https://www.freecodecamp.com/email-submit)
  • The navbar should always be at the top of the viewport
  • Your product landing page should have at least one media query
  • Your product landing page should utilize CSS flexbox at least once

Technologies

Credits

The video and the image for the project are taken from Merchant of Venice promo materials.

5 - Portfolio Page

Project description

This is a simple portfolio page meant to give information about me as an expert. Attention: this is not a real portfolio. My real one is here: www.olgaalexeeva.com. By the design of the Responsive Web Design course, the learner should construct a portfolio page that is functionally similar to the example provided here. The following user stories should have been fulfilled:

  • Your portfolio should have a welcome section with an id of welcome-section
  • The welcome section should have an h1 element that contains text
  • Your portfolio should have a projects section with an id of projects
  • The projects section should contain at least one element with a class of project-tile to hold a project
  • The projects section should contain at least one link to a project
  • Your portfolio should have a navbar with an id of navbar
  • The navbar should contain at least one link that you can click on to navigate to different sections of the page
  • Your portfolio should have a link with an id of profile-link, which opens your GitHub or freeCodeCamp profile in a new tab
  • Your portfolio should have at least one media query
  • The height of the welcome section should be equal to the height of the viewport
  • The navbar should always be at the top of the viewport

Technologies

Credits

All the texts are taken from my real portfolio: www.olgaalexeeva.com. GitHub icon is provided by Github icons created by Pixel Buddha - Flaticon.

MIT License

Copyright (c) 2023 Olga Alexeeva

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

About

Learning HTML/CSS and JS


Languages

Language:HTML 65.1%Language:CSS 34.9%