diff --git a/projects/evaluate-news-nlp/src/server/index.js b/projects/evaluate-news-nlp/src/server/index.js
index c4973aebb..0ea94a65d 100755
--- a/projects/evaluate-news-nlp/src/server/index.js
+++ b/projects/evaluate-news-nlp/src/server/index.js
@@ -1,23 +1,23 @@
-var path = require('path')
-const express = require('express')
-const mockAPIResponse = require('./mockAPI.js')
+ path = require('path')
+ const express = require('express')
+ const mockAPIResponse = require('./mockAPI.js')
-const app = express()
+ const app = express()
-app.use(express.static('dist'))
+ app.use(express.static('dist'))
-console.log(__dirname)
+ console.log(__dirname)
-app.get('/', function (req, res) {
- // res.sendFile('dist/index.html')
- res.sendFile(path.resolve('src/client/views/index.html'))
-})
+ app.get('/', function(req, res) {
+ // res.sendFile('dist/index.html')
+ res.sendFile(path.resolve('src/client/views/index.html'))
+ })
-// designates what port the app will listen to for incoming requests
-app.listen(8080, function () {
- console.log('Example app listening on port 8080!')
-})
+ // designates what port the app will listen to for incoming requests
+ app.listen(8080, function() {
+ console.log('Example app listening on port 8080!')
+ })
-app.get('/test', function (req, res) {
- res.send(mockAPIResponse)
-})
+ app.get('/test', function(req, res) {
+ res.send(mockAPIResponse)
+ })
\ No newline at end of file
diff --git a/projects/landing-page.zip b/projects/landing-page.zip
new file mode 100644
index 000000000..2b7757f07
Binary files /dev/null and b/projects/landing-page.zip differ
diff --git a/projects/landing-page/README.md b/projects/landing-page/README.md
index 3282de7b9..9d4bb4bd7 100755
--- a/projects/landing-page/README.md
+++ b/projects/landing-page/README.md
@@ -1,13 +1,35 @@
# Landing Page Project
+A landing page project that involes using the `js/app.js` file to covert the static version of the landing page project to a more interactive one.
+
## Table of Contents
-* [Instructions](#instructions)
+* [Description](#Description)
+* [Process](#Process)
+* [Dependencies](#Dependencies)
+
+## Description
+
+The starter project has some HTML and CSS styling to display a static version of the Landing Page project. I converted this project from a static project to an interactive one. It required modifying the HTML and CSS files, but primarily the JavaScript file.
+
+To get started, open `js/app.js` and view the app's functionality
+
+For specific, detailed instructions linking to this project, look at the project instructions in the Udacity Classroom.
+
+## Process
+
+Firstly, I linked the `js/app.js` to the `index.html`.
+
+I created a **fourth** content section in the `index.html`.
+
+I created the helper functions to create the **list** for the nav-bar, then I created the **active class** scroll for the section and lastly for the helper function I created the **scrollTo** function for when you click a link.
+
+Then I worked on the main functions. I used the main functions to basically call the helper functions that work the same.
-## Instructions
+Finally, I begin events by calling the main functions.
-The starter project has some HTML and CSS styling to display a static version of the Landing Page project. You'll need to convert this project from a static project to an interactive one. This will require modifying the HTML and CSS files, but primarily the JavaScript file.
+In summary, I built the menu bar, created a **scrollTo** link to the **sections** and lastly I created an **active class** scroll function.
-To get started, open `js/app.js` and start building out the app's functionality
+## Dependencies
+I used a starter-code from *[refresh-2019](https://github.com/udacity/fend/tree/refresh-2019/projects/landing-page)*
-For specific, detailed instructions, look at the project instructions in the Udacity Classroom.
diff --git a/projects/landing-page/css/styles.css b/projects/landing-page/css/styles.css
index 16145e98c..7c048ca8c 100755
--- a/projects/landing-page/css/styles.css
+++ b/projects/landing-page/css/styles.css
@@ -1,4 +1,4 @@
-/*
+ /*
*
* CSS written based on SMACSS architecture.
* To learn more, visit: http://smacss.com/
@@ -7,217 +7,226 @@
* To learn more, visit: https://css-tricks.com/reboot-resets-reasoning/
*
*/
-
-
-/* ---- Base Rules ---- */
-body {
- background: rgb(136,203,171);
- background: linear-gradient(0deg, rgba(136,203,171,1) 0%, rgba(0,13,60,1) 100%);
- margin: 0;
- font-family: 'Merriweather', serif;
- color: #fff;
-}
-
-
-/* Typeography General*/
-h1 {
- font-family: 'Fira Sans', sans-serif;
- font-size: 3em;
- margin: 2em 1rem;
-}
-
-@media only screen and (min-width: 35em){
+ /* ---- Base Rules ---- */
+
+ body {
+ background: rgb(136, 203, 171);
+ background: linear-gradient(0deg, rgba(136, 203, 171, 1) 0%, rgba(0, 13, 60, 1) 100%);
+ margin: 0;
+ font-family: 'Merriweather', serif;
+ color: #fff;
+ }
+ /* Typeography General*/
+
h1 {
- font-size: 7em;
- margin: 2em 4rem 1em;
- }
-}
-
-h2 {
- border-bottom: 1px solid #cc1;
- font-family: 'Oxygen', Sans-Serif;
- font-size: 3em;
- color: #fff;
-}
-
-p {
- line-height: 1.6em;
- color: #eee;
-}
-
-/* ---- Layout Rules ---- */
-main {
- margin: 10vh 1em 10vh;
-}
-
-.main-hero {
- min-height: 40vh;
- padding-top: 3em;
-}
-
-section {
- position: relative;
- min-height: 80vh;
-}
-
-
-/* ---- Module Rules ---- */
-
-/* Navigation Styles*/
-.navbar__menu ul {
- padding-left: 0;
- margin: 0;
- text-align: right;
-}
-
-.navbar__menu li {
- display: inline-block;
-}
-
-.navbar__menu .menu__link {
- display: block;
- padding: 1em;
- font-weight: bold;
- text-decoration: none;
- color: #000;
-}
-
-.navbar__menu .menu__link:hover {
- background: #333;
- color: #fff;
- transition: ease 0.3s all;
-}
-
-/* Header Styles */
-.page__header {
- background: #fff;
- position: fixed;
- top: 0;
- width: 100%;
- z-index: 5;
-}
-
-/* Footer Styles */
-.page__footer {
- background: #000;
- padding: 3em;
- color: #fff;
-}
-
-.page__footer p{
- color: #fff;
-}
-
-
-/* ---- Theme Rules ---- */
-/* Landing Container Styles */
-.landing__container {
- padding: 1em;
- text-align: left;
-}
-
-@media only screen and (min-width: 35em){
+ font-family: 'Fira Sans', sans-serif;
+ font-size: 3em;
+ margin: 2em 1rem;
+ }
+
+ @media only screen and (min-width: 35em) {
+ h1 {
+ font-size: 7em;
+ margin: 2em 4rem 1em;
+ }
+ }
+
+ h2 {
+ border-bottom: 1px solid #cc1;
+ font-family: 'Oxygen', Sans-Serif;
+ font-size: 3em;
+ color: #fff;
+ }
+
+ p {
+ line-height: 1.6em;
+ color: #eee;
+ }
+ /* ---- Layout Rules ---- */
+
+ main {
+ margin: 10vh 1em 10vh;
+ }
+
+ .main-hero {
+ min-height: 40vh;
+ padding-top: 3em;
+ }
+
+ section {
+ position: relative;
+ min-height: 80vh;
+ }
+ /* ---- Module Rules ---- */
+ /* Navigation Styles*/
+
+ .navbar__menu ul {
+ padding-left: 0;
+ margin: 0;
+ text-align: right;
+ }
+
+ .navbar__menu li {
+ display: inline-block;
+ }
+
+ .navbar__menu .menu__link {
+ /* display: block; */
+ padding: 1em;
+ font-weight: bold;
+ text-decoration: none;
+ color: #000;
+ }
+
+ .navbar__menu .menu__link-active {
+ background: #333;
+ color: #fff;
+ transition: ease 0.3s all;
+ }
+ /* Header Styles */
+
+ .page__header {
+ background: #fff;
+ position: fixed;
+ top: 0;
+ width: 100%;
+ z-index: 5;
+ }
+ /* Footer Styles */
+
+ .page__footer {
+ background: #000;
+ padding: 3em;
+ color: #fff;
+ }
+
+ .page__footer p {
+ color: #fff;
+ }
+ /* ---- Theme Rules ---- */
+ /* Landing Container Styles */
+
.landing__container {
- max-width: 50em;
- padding: 4em;
- }
-}
-
-section:nth-of-type(even) .landing__container {
- margin-right: 0;
- margin-left: auto;
- text-align: right;
-}
-
-/* Background Circles */
-/* Note that background circles are created with psuedo elements before and after */
-/* Circles appear to be random do to use of :nth-of-type psuedo class */
-section:nth-of-type(odd) .landing__container::before {
- content: '';
- background: rgba(255, 255, 255, 0.187);
- position: absolute;
- z-index: -5;
- width: 20vh;
- height: 20vh;
- border-radius: 50%;
- opacity: 0;
- transition: ease 0.5s all;
-}
-
-section:nth-of-type(even) .landing__container::before {
- content: '';
- background: rgb(255,255,255);
- background: linear-gradient(0deg, rgba(255,255,255,.1) 0%, rgba(255,255,255,.2) 100%);
- position: absolute;
- top: 3em;
- right: 3em;
- z-index: -5;
- width: 10vh;
- height: 10vh;
- border-radius: 50%;
- opacity: 0;
- transition: ease 0.5s all;
-}
-
-section:nth-of-type(3n) .landing__container::after {
- content: '';
- background: rgb(255,255,255);
- background: linear-gradient(0deg, rgba(255,255,255,.1) 0%, rgba(255,255,255,.2) 100%);
- position: absolute;
- right: 0;
- bottom: 0;
- z-index: -5;
- width: 10vh;
- height: 10vh;
- border-radius: 50%;
- opacity: 0;
- transition: ease 0.5s all;
-}
-
-section:nth-of-type(3n + 1) .landing__container::after {
- content: '';
- background: rgb(255,255,255);
- background: linear-gradient(0deg, rgba(255,255,255,.1) 0%, rgba(255,255,255,.2) 100%);
- position: absolute;
- right: 20vw;
- bottom: -5em;
- z-index: -5;
- width: 15vh;
- height: 15vh;
- border-radius: 50%;
- opacity: 0;
- transition: ease 0.5s all;
-}
-
-
-/* ---- Theme State Rules ---- */
-/* Section Active Styles */
-/* Note: your-active-class class is applied through javascript. You should update the class here and in the index.html to what you set in your javascript file. */
-section.your-active-class {
- background: rgb(0, 0, 0);
- background: linear-gradient(0deg, rgba(0, 0, 0, 0.1) 0%, rgba(0, 0, 0, 0) 100%);
-}
-
-section.your-active-class .landing__container::before {
- opacity: 1;
- animation: rotate 4s linear 0s infinite forwards;
-}
-
-section.your-active-class .landing__container::after {
- opacity: 1;
- animation: rotate 5s linear 0s infinite forwards reverse;
-}
-
-/* Section Active Styles Keyframe Animations */
-@keyframes rotate {
- from {
- transform: rotate(0deg)
- translate(-1em)
- rotate(0deg);
- }
- to {
- transform: rotate(360deg)
- translate(-1em)
- rotate(-360deg);
- }
-}
\ No newline at end of file
+ padding: 1em;
+ text-align: left;
+ }
+
+ @media only screen and (min-width: 35em) {
+ .landing__container {
+ max-width: 50em;
+ padding: 4em;
+ }
+ }
+
+ section:nth-of-type(even) .landing__container {
+ margin-right: 0;
+ margin-left: auto;
+ text-align: right;
+ }
+ /* Background Circles */
+ /* Note that background circles are created with psuedo elements before and after */
+ /* Circles appear to be random do to use of :nth-of-type psuedo class */
+
+ section:nth-of-type(odd) .landing__container::before {
+ content: '';
+ background: rgba(255, 255, 255, 0.187);
+ position: absolute;
+ z-index: -5;
+ width: 20vh;
+ height: 20vh;
+ border-radius: 50%;
+ opacity: 0;
+ transition: ease 0.5s all;
+ }
+
+ section:nth-of-type(even) .landing__container::before {
+ content: '';
+ background: rgb(255, 255, 255);
+ background: linear-gradient(0deg, rgba(255, 255, 255, .1) 0%, rgba(255, 255, 255, .2) 100%);
+ position: absolute;
+ top: 3em;
+ right: 3em;
+ z-index: -5;
+ width: 10vh;
+ height: 10vh;
+ border-radius: 50%;
+ opacity: 0;
+ transition: ease 0.5s all;
+ }
+
+ section:nth-of-type(3n) .landing__container::after {
+ content: '';
+ background: rgb(255, 255, 255);
+ background: linear-gradient(0deg, rgba(255, 255, 255, .1) 0%, rgba(255, 255, 255, .2) 100%);
+ position: absolute;
+ right: 0;
+ bottom: 0;
+ z-index: -5;
+ width: 10vh;
+ height: 10vh;
+ border-radius: 50%;
+ opacity: 0;
+ transition: ease 0.5s all;
+ }
+
+ section:nth-of-type(3n + 1) .landing__container::after {
+ content: '';
+ background: rgb(255, 255, 255);
+ background: linear-gradient(0deg, rgba(255, 255, 255, .1) 0%, rgba(255, 255, 255, .2) 100%);
+ position: absolute;
+ right: 20vw;
+ bottom: -5em;
+ z-index: -5;
+ width: 15vh;
+ height: 15vh;
+ border-radius: 50%;
+ opacity: 0;
+ transition: ease 0.5s all;
+ }
+ /* ---- Theme State Rules ---- */
+ /* Section Active Styles */
+ /* Note: your-active-class class is applied through javascript. You should update the class here and in the index.html to what you set in your javascript file. */
+
+ section.your-active-class {
+ background: rgb(0, 0, 0);
+ background: linear-gradient(0deg, rgba(0, 0, 0, 0.1) 0%, rgba(0, 0, 0, 0) 100%);
+ }
+
+ section.your-active-class .landing__container::before {
+ opacity: 1;
+ animation: rotate 4s linear 0s infinite forwards;
+ }
+
+ section.your-active-class .landing__container::after {
+ opacity: 1;
+ animation: rotate 5s linear 0s infinite forwards reverse;
+ }
+ /* Section Active Styles Keyframe Animations */
+
+ @keyframes rotate {
+ from {
+ transform: rotate(0deg) translate(-1em) rotate(0deg);
+ }
+ to {
+ transform: rotate(360deg) translate(-1em) rotate(-360deg);
+ }
+ }
+ /* Responsive class for the nav-bar */
+
+ @media (max-width: 600px) {
+ .navbar__menu ul {
+ text-align: center;
+ }
+ .navbar__menu .menu__link {
+ font-size: 13px;
+ }
+ }
+
+ @media (max-width: 280px) {
+ .navbar__menu .menu__link {
+ font-size: 10px;
+ }
+ .navbar__menu .menu__link {
+ padding: 0.5em;
+ }
+ }
\ No newline at end of file
diff --git a/projects/landing-page/index.html b/projects/landing-page/index.html
index baadb068a..c7026824d 100755
--- a/projects/landing-page/index.html
+++ b/projects/landing-page/index.html
@@ -1,59 +1,83 @@
+
-
-
-
- Manipulating the DOM
-
-
-
+
+
+
+ Manipulating the DOM
+
+
+
+
+
-
-
-
-
-
-
-
Landing Page
+
+
-
-
-
-
Section 1
-
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi fermentum metus faucibus lectus pharetra dapibus. Suspendisse potenti. Aenean aliquam elementum mi, ac euismod augue. Donec eget lacinia ex. Phasellus imperdiet porta orci eget mollis. Sed convallis sollicitudin mauris ac tincidunt. Donec bibendum, nulla eget bibendum consectetur, sem nisi aliquam leo, ut pulvinar quam nunc eu augue. Pellentesque maximus imperdiet elit a pharetra. Duis lectus mi, aliquam in mi quis, aliquam porttitor lacus. Morbi a tincidunt felis. Sed leo nunc, pharetra et elementum non, faucibus vitae elit. Integer nec libero venenatis libero ultricies molestie semper in tellus. Sed congue et odio sed euismod.
+
+
+
Section 1
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi fermentum metus faucibus lectus pharetra dapibus. Suspendisse potenti. Aenean aliquam elementum mi, ac euismod augue. Donec eget lacinia ex. Phasellus imperdiet porta orci
+ eget mollis. Sed convallis sollicitudin mauris ac tincidunt. Donec bibendum, nulla eget bibendum consectetur, sem nisi aliquam leo, ut pulvinar quam nunc eu augue. Pellentesque maximus imperdiet elit a pharetra. Duis lectus mi, aliquam
+ in mi quis, aliquam porttitor lacus. Morbi a tincidunt felis. Sed leo nunc, pharetra et elementum non, faucibus vitae elit. Integer nec libero venenatis libero ultricies molestie semper in tellus. Sed congue et odio sed euismod.
-
Aliquam a convallis justo. Vivamus venenatis, erat eget pulvinar gravida, ipsum lacus aliquet velit, vel luctus diam ipsum a diam. Cras eu tincidunt arcu, vitae rhoncus purus. Vestibulum fermentum consectetur porttitor. Suspendisse imperdiet porttitor tortor, eget elementum tortor mollis non.
-
-
-
-
-
Section 2
-
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi fermentum metus faucibus lectus pharetra dapibus. Suspendisse potenti. Aenean aliquam elementum mi, ac euismod augue. Donec eget lacinia ex. Phasellus imperdiet porta orci eget mollis. Sed convallis sollicitudin mauris ac tincidunt. Donec bibendum, nulla eget bibendum consectetur, sem nisi aliquam leo, ut pulvinar quam nunc eu augue. Pellentesque maximus imperdiet elit a pharetra. Duis lectus mi, aliquam in mi quis, aliquam porttitor lacus. Morbi a tincidunt felis. Sed leo nunc, pharetra et elementum non, faucibus vitae elit. Integer nec libero venenatis libero ultricies molestie semper in tellus. Sed congue et odio sed euismod.
+
Aliquam a convallis justo. Vivamus venenatis, erat eget pulvinar gravida, ipsum lacus aliquet velit, vel luctus diam ipsum a diam. Cras eu tincidunt arcu, vitae rhoncus purus. Vestibulum fermentum consectetur porttitor. Suspendisse imperdiet
+ porttitor tortor, eget elementum tortor mollis non.
+
+
+
+
+
Section 2
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi fermentum metus faucibus lectus pharetra dapibus. Suspendisse potenti. Aenean aliquam elementum mi, ac euismod augue. Donec eget lacinia ex. Phasellus imperdiet porta orci
+ eget mollis. Sed convallis sollicitudin mauris ac tincidunt. Donec bibendum, nulla eget bibendum consectetur, sem nisi aliquam leo, ut pulvinar quam nunc eu augue. Pellentesque maximus imperdiet elit a pharetra. Duis lectus mi, aliquam
+ in mi quis, aliquam porttitor lacus. Morbi a tincidunt felis. Sed leo nunc, pharetra et elementum non, faucibus vitae elit. Integer nec libero venenatis libero ultricies molestie semper in tellus. Sed congue et odio sed euismod.
-
Aliquam a convallis justo. Vivamus venenatis, erat eget pulvinar gravida, ipsum lacus aliquet velit, vel luctus diam ipsum a diam. Cras eu tincidunt arcu, vitae rhoncus purus. Vestibulum fermentum consectetur porttitor. Suspendisse imperdiet porttitor tortor, eget elementum tortor mollis non.
-
-
-
-
-
Section 3
-
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi fermentum metus faucibus lectus pharetra dapibus. Suspendisse potenti. Aenean aliquam elementum mi, ac euismod augue. Donec eget lacinia ex. Phasellus imperdiet porta orci eget mollis. Sed convallis sollicitudin mauris ac tincidunt. Donec bibendum, nulla eget bibendum consectetur, sem nisi aliquam leo, ut pulvinar quam nunc eu augue. Pellentesque maximus imperdiet elit a pharetra. Duis lectus mi, aliquam in mi quis, aliquam porttitor lacus. Morbi a tincidunt felis. Sed leo nunc, pharetra et elementum non, faucibus vitae elit. Integer nec libero venenatis libero ultricies molestie semper in tellus. Sed congue et odio sed euismod.
+
Aliquam a convallis justo. Vivamus venenatis, erat eget pulvinar gravida, ipsum lacus aliquet velit, vel luctus diam ipsum a diam. Cras eu tincidunt arcu, vitae rhoncus purus. Vestibulum fermentum consectetur porttitor. Suspendisse imperdiet
+ porttitor tortor, eget elementum tortor mollis non.
+
+
+
+
+
Section 3
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi fermentum metus faucibus lectus pharetra dapibus. Suspendisse potenti. Aenean aliquam elementum mi, ac euismod augue. Donec eget lacinia ex. Phasellus imperdiet porta orci
+ eget mollis. Sed convallis sollicitudin mauris ac tincidunt. Donec bibendum, nulla eget bibendum consectetur, sem nisi aliquam leo, ut pulvinar quam nunc eu augue. Pellentesque maximus imperdiet elit a pharetra. Duis lectus mi, aliquam
+ in mi quis, aliquam porttitor lacus. Morbi a tincidunt felis. Sed leo nunc, pharetra et elementum non, faucibus vitae elit. Integer nec libero venenatis libero ultricies molestie semper in tellus. Sed congue et odio sed euismod.
-
Aliquam a convallis justo. Vivamus venenatis, erat eget pulvinar gravida, ipsum lacus aliquet velit, vel luctus diam ipsum a diam. Cras eu tincidunt arcu, vitae rhoncus purus. Vestibulum fermentum consectetur porttitor. Suspendisse imperdiet porttitor tortor, eget elementum tortor mollis non.
-
-
-
-
+
Aliquam a convallis justo. Vivamus venenatis, erat eget pulvinar gravida, ipsum lacus aliquet velit, vel luctus diam ipsum a diam. Cras eu tincidunt arcu, vitae rhoncus purus. Vestibulum fermentum consectetur porttitor. Suspendisse imperdiet
+ porttitor tortor, eget elementum tortor mollis non.
+
+
+
+
+
Section 4
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi fermentum metus faucibus lectus pharetra dapibus. Suspendisse potenti. Aenean aliquam elementum mi, ac euismod augue. Donec eget lacinia ex. Phasellus imperdiet porta orci
+ eget mollis. Sed convallis sollicitudin mauris ac tincidunt. Donec bibendum, nulla eget bibendum consectetur, sem nisi aliquam leo, ut pulvinar quam nunc eu augue. Pellentesque maximus imperdiet elit a pharetra. Duis lectus mi, aliquam
+ in mi quis, aliquam porttitor lacus. Morbi a tincidunt felis. Sed leo nunc, pharetra et elementum non, faucibus vitae elit. Integer nec libero venenatis libero ultricies molestie semper in tellus. Sed congue et odio sed euismod.
+
Aliquam a convallis justo. Vivamus venenatis, erat eget pulvinar gravida, ipsum lacus aliquet velit, vel luctus diam ipsum a diam. Cras eu tincidunt arcu, vitae rhoncus purus. Vestibulum fermentum consectetur porttitor. Suspendisse imperdiet
+ porttitor tortor, eget elementum tortor mollis non.