Repository files navigation

functional-programming

📋 My concepts

🟥 Week 1

Hi! Welcome to my repository for the two week course functional-programming! Here you can find the website I produced during the first week of this course.

We were tasked to write functions that could parse some data into a more suitable form. These functions had to adhere to the functional programming paradigm. The data we had to use was gathered by a questionnaire that me and my classmates had to complete on the first day of the course. This questionnaire contained the following question.

  • What color garments are you wearing today?

I used the answers to this question to create my visualizations. Feel free to clone this repository and take a look!

NOTE: The content on this website is completely written in Dutch!

Homescreen

💾 Week 2

During the second week of this course I was tasked to fetch and clean some data from an external API. I decided to use the Star Wars API and the PokéAPI for this assignment. To first get a deeper understanding of using the fetch API I challenged myself to not use the await and async keywords in my implementation of the Star Wars API. To practice these keywords I did use them in my implentation of the PokéAPI.

The code for my implementation of the Star Wars API can be found in the week2old folder. My implementation of the PokéAPI is located in the week2 folder of this repository.

🧑‍💻 How to install

Week 1

NOTE: Before you can install this project be sure to have both Node.js and NPM installed. NPM should automatically be installed when installing Node.js.

You can install my project locally by running the following command in your local folder.

  • git clone https://github.com/Steinberg99/functional-programming

When you have cloned my repository run the command npm install to install all of the project dependencies. Run this command in the local folder where you cloned my project. When you have done this you can run the command npm start to start the project. The website should run in the browser when visiting localhost:4200.

Week 2

To run my implementations of the Star Wars API and the PokeAPI you navigate to their aforementioned folders in the console. Before you can run these implementations using Node.js you need to add the following line somewhere into the package.json file.

"type": "module",

Doing this is required because node-fetch can only be imported with the import statement instead of the require() function. Once this line has been added the files can be run using the following command in the corresponding folder.

  • node swapi.js in the week2old folder to run my implementation of the Star Wars API.
  • node pokemon.js in the week2 folder to run my implementation of the PokéAPI.

The results of these scripts should be logged to the console. The following objects are examples of the expected outcome.

{name: 'Luke Skywalker',gender: 'male',height: '172',mass: '77',homeworld: {name: 'Tatooine',climate: 'arid',terrain: 'desert'}}
{name: 'Bulbasaur',types: ['grass','poison'],weight: 69,height: 7,image_url: 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/1.png'}

💻 Technologies

During this project I made use of the following technologies or libraries.

✍️ Author and license

Author: Stein Bergervoet, license: MIT License.

License: MIT

About

My repository for the two week course functional-programming. Here you can find the website I produced during this course.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

functional-programming

📋 My concepts

🟥 Week 1

Hi! Welcome to my repository for the two week course functional-programming! Here you can find the website I produced during the first week of this course.

We were tasked to write functions that could parse some data into a more suitable form. These functions had to adhere to the functional programming paradigm. The data we had to use was gathered by a questionnaire that me and my classmates had to complete on the first day of the course. This questionnaire contained the following question.

  • What color garments are you wearing today?

I used the answers to this question to create my visualizations. Feel free to clone this repository and take a look!

NOTE: The content on this website is completely written in Dutch!

Homescreen

💾 Week 2

During the second week of this course I was tasked to fetch and clean some data from an external API. I decided to use the Star Wars API and the PokéAPI for this assignment. To first get a deeper understanding of using the fetch API I challenged myself to not use the await and async keywords in my implementation of the Star Wars API. To practice these keywords I did use them in my implentation of the PokéAPI.

The code for my implementation of the Star Wars API can be found in the week2old folder. My implementation of the PokéAPI is located in the week2 folder of this repository.

🧑‍💻 How to install

Week 1

NOTE: Before you can install this project be sure to have both Node.js and NPM installed. NPM should automatically be installed when installing Node.js.

You can install my project locally by running the following command in your local folder.

  • git clone https://github.com/Steinberg99/functional-programming

When you have cloned my repository run the command npm install to install all of the project dependencies. Run this command in the local folder where you cloned my project. When you have done this you can run the command npm start to start the project. The website should run in the browser when visiting localhost:4200.

Week 2

To run my implementations of the Star Wars API and the PokeAPI you navigate to their aforementioned folders in the console. Before you can run these implementations using Node.js you need to add the following line somewhere into the package.json file.

"type": "module",

Doing this is required because node-fetch can only be imported with the import statement instead of the require() function. Once this line has been added the files can be run using the following command in the corresponding folder.

  • node swapi.js in the week2old folder to run my implementation of the Star Wars API.
  • node pokemon.js in the week2 folder to run my implementation of the PokéAPI.

The results of these scripts should be logged to the console. The following objects are examples of the expected outcome.

{name: 'Luke Skywalker',gender: 'male',height: '172',mass: '77',homeworld: {name: 'Tatooine',climate: 'arid',terrain: 'desert'}}
{name: 'Bulbasaur',types: ['grass','poison'],weight: 69,height: 7,image_url: 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/1.png'}

💻 Technologies

During this project I made use of the following technologies or libraries.

✍️ Author and license

Author: Stein Bergervoet, license: MIT License.

License: MIT

About

My repository for the two week course functional-programming. Here you can find the website I produced during this course.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

functional-programming

📋 My concepts

🟥 Week 1

Hi! Welcome to my repository for the two week course functional-programming! Here you can find the website I produced during the first week of this course.

We were tasked to write functions that could parse some data into a more suitable form. These functions had to adhere to the functional programming paradigm. The data we had to use was gathered by a questionnaire that me and my classmates had to complete on the first day of the course. This questionnaire contained the following question.

  • What color garments are you wearing today?

I used the answers to this question to create my visualizations. Feel free to clone this repository and take a look!

NOTE: The content on this website is completely written in Dutch!

Homescreen

💾 Week 2

During the second week of this course I was tasked to fetch and clean some data from an external API. I decided to use the Star Wars API and the PokéAPI for this assignment. To first get a deeper understanding of using the fetch API I challenged myself to not use the await and async keywords in my implementation of the Star Wars API. To practice these keywords I did use them in my implentation of the PokéAPI.

The code for my implementation of the Star Wars API can be found in the week2old folder. My implementation of the PokéAPI is located in the week2 folder of this repository.

🧑‍💻 How to install

Week 1

NOTE: Before you can install this project be sure to have both Node.js and NPM installed. NPM should automatically be installed when installing Node.js.

You can install my project locally by running the following command in your local folder.

  • git clone https://github.com/Steinberg99/functional-programming

When you have cloned my repository run the command npm install to install all of the project dependencies. Run this command in the local folder where you cloned my project. When you have done this you can run the command npm start to start the project. The website should run in the browser when visiting localhost:4200.

Week 2

To run my implementations of the Star Wars API and the PokeAPI you navigate to their aforementioned folders in the console. Before you can run these implementations using Node.js you need to add the following line somewhere into the package.json file.

"type": "module",

Doing this is required because node-fetch can only be imported with the import statement instead of the require() function. Once this line has been added the files can be run using the following command in the corresponding folder.

  • node swapi.js in the week2old folder to run my implementation of the Star Wars API.
  • node pokemon.js in the week2 folder to run my implementation of the PokéAPI.

The results of these scripts should be logged to the console. The following objects are examples of the expected outcome.

{name: 'Luke Skywalker',gender: 'male',height: '172',mass: '77',homeworld: {name: 'Tatooine',climate: 'arid',terrain: 'desert'}}
{name: 'Bulbasaur',types: ['grass','poison'],weight: 69,height: 7,image_url: 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/1.png'}

💻 Technologies

During this project I made use of the following technologies or libraries.

✍️ Author and license

Author: Stein Bergervoet, license: MIT License.

License: MIT

About

My repository for the two week course functional-programming. Here you can find the website I produced during this course.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

functional-programming

📋 My concepts

🟥 Week 1

Hi! Welcome to my repository for the two week course functional-programming! Here you can find the website I produced during the first week of this course.

We were tasked to write functions that could parse some data into a more suitable form. These functions had to adhere to the functional programming paradigm. The data we had to use was gathered by a questionnaire that me and my classmates had to complete on the first day of the course. This questionnaire contained the following question.

  • What color garments are you wearing today?

I used the answers to this question to create my visualizations. Feel free to clone this repository and take a look!

NOTE: The content on this website is completely written in Dutch!

Homescreen

💾 Week 2

During the second week of this course I was tasked to fetch and clean some data from an external API. I decided to use the Star Wars API and the PokéAPI for this assignment. To first get a deeper understanding of using the fetch API I challenged myself to not use the await and async keywords in my implementation of the Star Wars API. To practice these keywords I did use them in my implentation of the PokéAPI.

The code for my implementation of the Star Wars API can be found in the week2old folder. My implementation of the PokéAPI is located in the week2 folder of this repository.

🧑‍💻 How to install

Week 1

NOTE: Before you can install this project be sure to have both Node.js and NPM installed. NPM should automatically be installed when installing Node.js.

You can install my project locally by running the following command in your local folder.

  • git clone https://github.com/Steinberg99/functional-programming

When you have cloned my repository run the command npm install to install all of the project dependencies. Run this command in the local folder where you cloned my project. When you have done this you can run the command npm start to start the project. The website should run in the browser when visiting localhost:4200.

Week 2

To run my implementations of the Star Wars API and the PokeAPI you navigate to their aforementioned folders in the console. Before you can run these implementations using Node.js you need to add the following line somewhere into the package.json file.

"type": "module",

Doing this is required because node-fetch can only be imported with the import statement instead of the require() function. Once this line has been added the files can be run using the following command in the corresponding folder.

  • node swapi.js in the week2old folder to run my implementation of the Star Wars API.
  • node pokemon.js in the week2 folder to run my implementation of the PokéAPI.

The results of these scripts should be logged to the console. The following objects are examples of the expected outcome.

{name: 'Luke Skywalker',gender: 'male',height: '172',mass: '77',homeworld: {name: 'Tatooine',climate: 'arid',terrain: 'desert'}}
{name: 'Bulbasaur',types: ['grass','poison'],weight: 69,height: 7,image_url: 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/1.png'}

💻 Technologies

During this project I made use of the following technologies or libraries.

✍️ Author and license

Author: Stein Bergervoet, license: MIT License.

License: MIT

About

My repository for the two week course functional-programming. Here you can find the website I produced during this course.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

functional-programming

📋 My concepts

🟥 Week 1

Hi! Welcome to my repository for the two week course functional-programming! Here you can find the website I produced during the first week of this course.

We were tasked to write functions that could parse some data into a more suitable form. These functions had to adhere to the functional programming paradigm. The data we had to use was gathered by a questionnaire that me and my classmates had to complete on the first day of the course. This questionnaire contained the following question.

  • What color garments are you wearing today?

I used the answers to this question to create my visualizations. Feel free to clone this repository and take a look!

NOTE: The content on this website is completely written in Dutch!

Homescreen

💾 Week 2

During the second week of this course I was tasked to fetch and clean some data from an external API. I decided to use the Star Wars API and the PokéAPI for this assignment. To first get a deeper understanding of using the fetch API I challenged myself to not use the await and async keywords in my implementation of the Star Wars API. To practice these keywords I did use them in my implentation of the PokéAPI.

The code for my implementation of the Star Wars API can be found in the week2old folder. My implementation of the PokéAPI is located in the week2 folder of this repository.

🧑‍💻 How to install

Week 1

NOTE: Before you can install this project be sure to have both Node.js and NPM installed. NPM should automatically be installed when installing Node.js.

You can install my project locally by running the following command in your local folder.

  • git clone https://github.com/Steinberg99/functional-programming

When you have cloned my repository run the command npm install to install all of the project dependencies. Run this command in the local folder where you cloned my project. When you have done this you can run the command npm start to start the project. The website should run in the browser when visiting localhost:4200.

Week 2

To run my implementations of the Star Wars API and the PokeAPI you navigate to their aforementioned folders in the console. Before you can run these implementations using Node.js you need to add the following line somewhere into the package.json file.

"type": "module",

Doing this is required because node-fetch can only be imported with the import statement instead of the require() function. Once this line has been added the files can be run using the following command in the corresponding folder.

  • node swapi.js in the week2old folder to run my implementation of the Star Wars API.
  • node pokemon.js in the week2 folder to run my implementation of the PokéAPI.

The results of these scripts should be logged to the console. The following objects are examples of the expected outcome.

{name: 'Luke Skywalker',gender: 'male',height: '172',mass: '77',homeworld: {name: 'Tatooine',climate: 'arid',terrain: 'desert'}}
{name: 'Bulbasaur',types: ['grass','poison'],weight: 69,height: 7,image_url: 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/1.png'}

💻 Technologies

During this project I made use of the following technologies or libraries.

✍️ Author and license

Author: Stein Bergervoet, license: MIT License.

License: MIT

About

My repository for the two week course functional-programming. Here you can find the website I produced during this course.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

functional-programming

📋 My concepts

🟥 Week 1

Hi! Welcome to my repository for the two week course functional-programming! Here you can find the website I produced during the first week of this course.

We were tasked to write functions that could parse some data into a more suitable form. These functions had to adhere to the functional programming paradigm. The data we had to use was gathered by a questionnaire that me and my classmates had to complete on the first day of the course. This questionnaire contained the following question.

  • What color garments are you wearing today?

I used the answers to this question to create my visualizations. Feel free to clone this repository and take a look!

NOTE: The content on this website is completely written in Dutch!

Homescreen

💾 Week 2

During the second week of this course I was tasked to fetch and clean some data from an external API. I decided to use the Star Wars API and the PokéAPI for this assignment. To first get a deeper understanding of using the fetch API I challenged myself to not use the await and async keywords in my implementation of the Star Wars API. To practice these keywords I did use them in my implentation of the PokéAPI.

The code for my implementation of the Star Wars API can be found in the week2old folder. My implementation of the PokéAPI is located in the week2 folder of this repository.

🧑‍💻 How to install

Week 1

NOTE: Before you can install this project be sure to have both Node.js and NPM installed. NPM should automatically be installed when installing Node.js.

You can install my project locally by running the following command in your local folder.

  • git clone https://github.com/Steinberg99/functional-programming

When you have cloned my repository run the command npm install to install all of the project dependencies. Run this command in the local folder where you cloned my project. When you have done this you can run the command npm start to start the project. The website should run in the browser when visiting localhost:4200.

Week 2

To run my implementations of the Star Wars API and the PokeAPI you navigate to their aforementioned folders in the console. Before you can run these implementations using Node.js you need to add the following line somewhere into the package.json file.

"type": "module",

Doing this is required because node-fetch can only be imported with the import statement instead of the require() function. Once this line has been added the files can be run using the following command in the corresponding folder.

  • node swapi.js in the week2old folder to run my implementation of the Star Wars API.
  • node pokemon.js in the week2 folder to run my implementation of the PokéAPI.

The results of these scripts should be logged to the console. The following objects are examples of the expected outcome.

{name: 'Luke Skywalker',gender: 'male',height: '172',mass: '77',homeworld: {name: 'Tatooine',climate: 'arid',terrain: 'desert'}}
{name: 'Bulbasaur',types: ['grass','poison'],weight: 69,height: 7,image_url: 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/1.png'}

💻 Technologies

During this project I made use of the following technologies or libraries.

✍️ Author and license

Author: Stein Bergervoet, license: MIT License.

License: MIT

About

My repository for the two week course functional-programming. Here you can find the website I produced during this course.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

functional-programming

📋 My concepts

🟥 Week 1

Hi! Welcome to my repository for the two week course functional-programming! Here you can find the website I produced during the first week of this course.

We were tasked to write functions that could parse some data into a more suitable form. These functions had to adhere to the functional programming paradigm. The data we had to use was gathered by a questionnaire that me and my classmates had to complete on the first day of the course. This questionnaire contained the following question.

  • What color garments are you wearing today?

I used the answers to this question to create my visualizations. Feel free to clone this repository and take a look!

NOTE: The content on this website is completely written in Dutch!

Homescreen

💾 Week 2

During the second week of this course I was tasked to fetch and clean some data from an external API. I decided to use the Star Wars API and the PokéAPI for this assignment. To first get a deeper understanding of using the fetch API I challenged myself to not use the await and async keywords in my implementation of the Star Wars API. To practice these keywords I did use them in my implentation of the PokéAPI.

The code for my implementation of the Star Wars API can be found in the week2old folder. My implementation of the PokéAPI is located in the week2 folder of this repository.

🧑‍💻 How to install

Week 1

NOTE: Before you can install this project be sure to have both Node.js and NPM installed. NPM should automatically be installed when installing Node.js.

You can install my project locally by running the following command in your local folder.

  • git clone https://github.com/Steinberg99/functional-programming

When you have cloned my repository run the command npm install to install all of the project dependencies. Run this command in the local folder where you cloned my project. When you have done this you can run the command npm start to start the project. The website should run in the browser when visiting localhost:4200.

Week 2

To run my implementations of the Star Wars API and the PokeAPI you navigate to their aforementioned folders in the console. Before you can run these implementations using Node.js you need to add the following line somewhere into the package.json file.

"type": "module",

Doing this is required because node-fetch can only be imported with the import statement instead of the require() function. Once this line has been added the files can be run using the following command in the corresponding folder.

  • node swapi.js in the week2old folder to run my implementation of the Star Wars API.
  • node pokemon.js in the week2 folder to run my implementation of the PokéAPI.

The results of these scripts should be logged to the console. The following objects are examples of the expected outcome.

{name: 'Luke Skywalker',gender: 'male',height: '172',mass: '77',homeworld: {name: 'Tatooine',climate: 'arid',terrain: 'desert'}}
{name: 'Bulbasaur',types: ['grass','poison'],weight: 69,height: 7,image_url: 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/1.png'}

💻 Technologies

During this project I made use of the following technologies or libraries.

✍️ Author and license

Author: Stein Bergervoet, license: MIT License.

License: MIT

About

My repository for the two week course functional-programming. Here you can find the website I produced during this course.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

functional-programming

📋 My concepts

🟥 Week 1

Hi! Welcome to my repository for the two week course functional-programming! Here you can find the website I produced during the first week of this course.

We were tasked to write functions that could parse some data into a more suitable form. These functions had to adhere to the functional programming paradigm. The data we had to use was gathered by a questionnaire that me and my classmates had to complete on the first day of the course. This questionnaire contained the following question.

  • What color garments are you wearing today?

I used the answers to this question to create my visualizations. Feel free to clone this repository and take a look!

NOTE: The content on this website is completely written in Dutch!

Homescreen

💾 Week 2

During the second week of this course I was tasked to fetch and clean some data from an external API. I decided to use the Star Wars API and the PokéAPI for this assignment. To first get a deeper understanding of using the fetch API I challenged myself to not use the await and async keywords in my implementation of the Star Wars API. To practice these keywords I did use them in my implentation of the PokéAPI.

The code for my implementation of the Star Wars API can be found in the week2old folder. My implementation of the PokéAPI is located in the week2 folder of this repository.

🧑‍💻 How to install

Week 1

NOTE: Before you can install this project be sure to have both Node.js and NPM installed. NPM should automatically be installed when installing Node.js.

You can install my project locally by running the following command in your local folder.

  • git clone https://github.com/Steinberg99/functional-programming

When you have cloned my repository run the command npm install to install all of the project dependencies. Run this command in the local folder where you cloned my project. When you have done this you can run the command npm start to start the project. The website should run in the browser when visiting localhost:4200.

Week 2

To run my implementations of the Star Wars API and the PokeAPI you navigate to their aforementioned folders in the console. Before you can run these implementations using Node.js you need to add the following line somewhere into the package.json file.

"type": "module",

Doing this is required because node-fetch can only be imported with the import statement instead of the require() function. Once this line has been added the files can be run using the following command in the corresponding folder.

  • node swapi.js in the week2old folder to run my implementation of the Star Wars API.
  • node pokemon.js in the week2 folder to run my implementation of the PokéAPI.

The results of these scripts should be logged to the console. The following objects are examples of the expected outcome.

{name: 'Luke Skywalker',gender: 'male',height: '172',mass: '77',homeworld: {name: 'Tatooine',climate: 'arid',terrain: 'desert'}}
{name: 'Bulbasaur',types: ['grass','poison'],weight: 69,height: 7,image_url: 'https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/1.png'}

💻 Technologies

During this project I made use of the following technologies or libraries.

✍️ Author and license

Author: Stein Bergervoet, license: MIT License.

License: MIT

About

My repository for the two week course functional-programming. Here you can find the website I produced during this course.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages