You've already forked ProfessionalWebsite
756 lines
63 KiB
HTML
756 lines
63 KiB
HTML
<!DOCTYPE html>
|
|
<html data-bs-theme="auto" lang="en-gb">
|
|
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<!-- Matomo -->
|
|
<script>
|
|
var _paq = window._paq = window._paq || [];
|
|
/* tracker methods like "setCustomDimension" should be called before "trackPageView" */
|
|
_paq.push(['trackPageView']);
|
|
_paq.push(['enableLinkTracking']);
|
|
(function() {
|
|
var u="//analytics.adcmnetworks.co.uk/";
|
|
_paq.push(['setTrackerUrl', u+'matomo.php']);
|
|
_paq.push(['setSiteId', '1']);
|
|
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
|
|
g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
|
|
})();
|
|
</script>
|
|
<!-- End Matomo Code -->
|
|
|
|
<script src="https://kit.fontawesome.com/8970d94f9b.js" crossorigin="anonymous"></script>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, shrink-to-fit=no">
|
|
<title>CS:Box</title>
|
|
<meta property="og:type" content="website">
|
|
<meta property="og:image" content="https://www.mrdaviscsit.uk/assets/img/projects/cs_box/csbox_logo.png">
|
|
<meta name="description" content="An evolution of Bit:Box to incorporate different elements of the UK Computing Curriculum">
|
|
<script>
|
|
(function() {
|
|
|
|
// JavaScript snippet handling Dark/Light mode switching
|
|
|
|
const getStoredTheme = () => localStorage.getItem('theme');
|
|
const setStoredTheme = theme => localStorage.setItem('theme', theme);
|
|
const forcedTheme = document.documentElement.getAttribute('data-bss-forced-theme');
|
|
|
|
const getPreferredTheme = () => {
|
|
|
|
if (forcedTheme) return forcedTheme;
|
|
|
|
const storedTheme = getStoredTheme();
|
|
if (storedTheme) {
|
|
return storedTheme;
|
|
}
|
|
|
|
const pageTheme = document.documentElement.getAttribute('data-bs-theme');
|
|
|
|
if (pageTheme) {
|
|
return pageTheme;
|
|
}
|
|
|
|
return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';
|
|
}
|
|
|
|
const setTheme = theme => {
|
|
if (theme === 'auto' && window.matchMedia('(prefers-color-scheme: dark)').matches) {
|
|
document.documentElement.setAttribute('data-bs-theme', 'dark');
|
|
} else {
|
|
document.documentElement.setAttribute('data-bs-theme', theme);
|
|
}
|
|
}
|
|
|
|
setTheme(getPreferredTheme());
|
|
|
|
const showActiveTheme = (theme, focus = false) => {
|
|
const themeSwitchers = [].slice.call(document.querySelectorAll('.theme-switcher'));
|
|
|
|
if (!themeSwitchers.length) return;
|
|
|
|
document.querySelectorAll('[data-bs-theme-value]').forEach(element => {
|
|
element.classList.remove('active');
|
|
element.setAttribute('aria-pressed', 'false');
|
|
});
|
|
|
|
for (const themeSwitcher of themeSwitchers) {
|
|
|
|
const btnToActivate = themeSwitcher.querySelector('[data-bs-theme-value="' + theme + '"]');
|
|
|
|
if (btnToActivate) {
|
|
btnToActivate.classList.add('active');
|
|
btnToActivate.setAttribute('aria-pressed', 'true');
|
|
}
|
|
}
|
|
}
|
|
|
|
window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', () => {
|
|
const storedTheme = getStoredTheme();
|
|
if (storedTheme !== 'light' && storedTheme !== 'dark') {
|
|
setTheme(getPreferredTheme());
|
|
}
|
|
});
|
|
|
|
window.addEventListener('DOMContentLoaded', () => {
|
|
showActiveTheme(getPreferredTheme());
|
|
|
|
document.querySelectorAll('[data-bs-theme-value]')
|
|
.forEach(toggle => {
|
|
toggle.addEventListener('click', (e) => {
|
|
e.preventDefault();
|
|
const theme = toggle.getAttribute('data-bs-theme-value');
|
|
setStoredTheme(theme);
|
|
setTheme(theme);
|
|
showActiveTheme(theme);
|
|
})
|
|
})
|
|
});
|
|
})();
|
|
</script>
|
|
<link rel="icon" type="image/png" sizes="4860x4860" href="/assets/img/brand/ADCM%20Logo%202025.png">
|
|
<link rel="icon" type="image/png" sizes="4860x4860" href="/assets/img/brand/logo-white.png" media="(prefers-color-scheme: dark)">
|
|
<link rel="icon" type="image/png" sizes="4860x4860" href="/assets/img/brand/ADCM%20Logo%202025.png">
|
|
<link rel="icon" type="image/png" sizes="4860x4860" href="/assets/img/brand/logo-white.png" media="(prefers-color-scheme: dark)">
|
|
<link rel="icon" type="image/png" sizes="4860x4860" href="/assets/img/brand/ADCM%20Logo%202025.png">
|
|
<link rel="icon" type="image/png" sizes="4860x4860" href="/assets/img/brand/ADCM%20Logo%202025.png">
|
|
<link rel="icon" type="image/png" sizes="4860x4860" href="/assets/img/brand/ADCM%20Logo%202025.png">
|
|
<link rel="stylesheet" href="/assets/bootstrap/css/bootstrap.min.css">
|
|
<link rel="stylesheet" href="/assets/css/Lato.css">
|
|
<link rel="stylesheet" href="/assets/css/bss-overrides.css">
|
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.css">
|
|
<link rel="stylesheet" href="/assets/css/styles.css">
|
|
<link rel="stylesheet" href="/assets/css/pikaday.min.css">
|
|
<link rel="stylesheet" href="/assets/css/CookieConsentComponent.css">
|
|
<link rel="stylesheet" href="/assets/css/animations.compiled.css">
|
|
<link rel="stylesheet" href="/assets/css/Carousel---Slider-With-Animation.css">
|
|
<link rel="stylesheet" href="/assets/css/Footer-Dark-Multi-Column-icons.css">
|
|
</head>
|
|
|
|
<body>
|
|
<nav class="navbar navbar-expand-md fixed-top portfolio-navbar gradient navbar-dark" style="padding-top: 5px;padding-bottom: 5px;">
|
|
<div class="container-fluid"><a class="navbar-brand logo" href="/index.html" style="margin-right: 0;padding: 0;"><img src="/assets/img/brand/logo-white.png" style="width: 100px;height: 100px;" width="50" height="50"></a><button data-bs-toggle="collapse" class="navbar-toggler" data-bs-target="#navbarNav"><span class="visually-hidden">Toggle navigation</span><span class="navbar-toggler-icon"></span></button>
|
|
<div class="collapse navbar-collapse" id="navbarNav">
|
|
<ul class="navbar-nav ms-auto">
|
|
<li class="nav-item"><a class="nav-link" href="index.html">Home</a></li>
|
|
<li class="nav-item"><a class="nav-link" href="about.html">About</a></li>
|
|
<li class="nav-item dropdown show nav-item" href="projects.html"><a class="dropdown-toggle nav-link nav-link" aria-expanded="true" data-bs-toggle="dropdown" data-bs-auto-close="false" href="projects.html">My Work</a>
|
|
<div class="dropdown-menu show" data-bs-popper="none"><a class="dropdown-item" href="projects.html?tag=web-design">Web Design</a><a class="dropdown-item" href="projects.html?tag=projects-for-education">Projects for Education</a><a class="dropdown-item" href="projects.html?tag=extracurricular-projects">Extracurricular Projects</a><a class="dropdown-item" href="my-work/showreel.html">Showreel</a></div>
|
|
</li>
|
|
<li class="nav-item"><a class="nav-link" href="blog.html">Blog</a></li>
|
|
<li class="nav-item"><a class="nav-link" href="contact.html">Contact</a></li>
|
|
<li class="nav-item d-flex align-items-center mode-select"><a class="nav-link" id="light-mode" data-bs-theme-value="dark"><svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" fill="currentColor" viewBox="0 0 16 16" class="bi bi-sun-fill mb-1">
|
|
<path d="M8 12a4 4 0 1 0 0-8 4 4 0 0 0 0 8M8 0a.5.5 0 0 1 .5.5v2a.5.5 0 0 1-1 0v-2A.5.5 0 0 1 8 0m0 13a.5.5 0 0 1 .5.5v2a.5.5 0 0 1-1 0v-2A.5.5 0 0 1 8 13m8-5a.5.5 0 0 1-.5.5h-2a.5.5 0 0 1 0-1h2a.5.5 0 0 1 .5.5M3 8a.5.5 0 0 1-.5.5h-2a.5.5 0 0 1 0-1h2A.5.5 0 0 1 3 8m10.657-5.657a.5.5 0 0 1 0 .707l-1.414 1.415a.5.5 0 1 1-.707-.708l1.414-1.414a.5.5 0 0 1 .707 0m-9.193 9.193a.5.5 0 0 1 0 .707L3.05 13.657a.5.5 0 0 1-.707-.707l1.414-1.414a.5.5 0 0 1 .707 0zm9.193 2.121a.5.5 0 0 1-.707 0l-1.414-1.414a.5.5 0 0 1 .707-.707l1.414 1.414a.5.5 0 0 1 0 .707M4.464 4.465a.5.5 0 0 1-.707 0L2.343 3.05a.5.5 0 1 1 .707-.707l1.414 1.414a.5.5 0 0 1 0 .708z"></path>
|
|
</svg></a><a class="nav-link" id="dark-mode" data-bs-theme-value="light"><svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" fill="currentColor" viewBox="0 0 16 16" class="bi bi-moon-stars-fill mb-1">
|
|
<path d="M6 .278a.768.768 0 0 1 .08.858 7.208 7.208 0 0 0-.878 3.46c0 4.021 3.278 7.277 7.318 7.277.527 0 1.04-.055 1.533-.16a.787.787 0 0 1 .81.316.733.733 0 0 1-.031.893A8.349 8.349 0 0 1 8.344 16C3.734 16 0 12.286 0 7.71 0 4.266 2.114 1.312 5.124.06A.752.752 0 0 1 6 .278"></path>
|
|
<path d="M10.794 3.148a.217.217 0 0 1 .412 0l.387 1.162c.173.518.579.924 1.097 1.097l1.162.387a.217.217 0 0 1 0 .412l-1.162.387a1.734 1.734 0 0 0-1.097 1.097l-.387 1.162a.217.217 0 0 1-.412 0l-.387-1.162A1.734 1.734 0 0 0 9.31 6.593l-1.162-.387a.217.217 0 0 1 0-.412l1.162-.387a1.734 1.734 0 0 0 1.097-1.097l.387-1.162zM13.863.099a.145.145 0 0 1 .274 0l.258.774c.115.346.386.617.732.732l.774.258a.145.145 0 0 1 0 .274l-.774.258a1.156 1.156 0 0 0-.732.732l-.258.774a.145.145 0 0 1-.274 0l-.258-.774a1.156 1.156 0 0 0-.732-.732l-.774-.258a.145.145 0 0 1 0-.274l.774-.258c.346-.115.617-.386.732-.732L13.863.1z"></path>
|
|
</svg></a></li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</nav>
|
|
<main class="page">
|
|
<section class="portfolio-block block-intro" style="padding-bottom: 10px;">
|
|
<div class="container center-everything">
|
|
<div class="align-content-center heading blog-heading" style="height: 25em;background: linear-gradient(rgba(var(--bs-primary-rgb),0.75), rgba(var(--bs-secondary-rgb),0.75)), url("/assets/img/projects/cs_box/csbox_logo.png") center / cover;color: white;">
|
|
<h2>CS:Box</h2>
|
|
<p>An evolution of Bit:Box to incorporate different elements of the UK Computing Curriculum</p>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
<section class="portfolio-block project">
|
|
<div class="container center-everything">
|
|
<div class="carousel slide carousel-fade project-carousel" data-bs-ride="carousel" id="carousel-1">
|
|
<div class="carousel-inner">
|
|
<div class="carousel-item active"><img class="img-fluid w-100 d-block slider-image-fit" width="1788" height="1054" src="/assets/img/projects/cs_box/csbox_homepage.jpeg" alt="Slide Image"></div>
|
|
<div class="carousel-item"><img class="img-fluid w-100 d-block slider-image-fit" width="1788" height="966" src="/assets/img/projects/cs_box/csbox_unsigned_binary.jpeg" alt="Slide Image"></div>
|
|
<div class="carousel-item"><img class="img-fluid w-100 d-block slider-image-fit" width="1788" height="996" src="/assets/img/projects/cs_box/csbox_gcse_hexadecimal.jpeg" alt="Slide Image"></div>
|
|
<div class="carousel-item"><img class="img-fluid w-100 d-block slider-image-fit" width="1788" height="966" src="/assets/img/projects/cs_box/csbox_a_level_hexadecimal.webp" alt="Slide Image"></div>
|
|
<div class="carousel-item"><img class="img-fluid w-100 d-block slider-image-fit" width="1788" height="1231" src="/assets/img/projects/cs_box/csbox_hex_colours.jpeg" alt="Slide Image"></div>
|
|
<div class="carousel-item"><img class="img-fluid w-100 d-block slider-image-fit" width="1788" height="1000" src="/assets/img/projects/cs_box/csbox_not_gate.jpeg" alt="Slide Image"></div>
|
|
<div class="carousel-item"><img class="img-fluid w-100 d-block slider-image-fit" width="1788" height="1000" src="/assets/img/projects/cs_box/csbox_and_gate.jpeg" alt="Slide Image"></div>
|
|
<div class="carousel-item"><img class="img-fluid w-100 d-block slider-image-fit" width="1788" height="1000" src="/assets/img/projects/cs_box/csbox_or_gate.jpeg" alt="Slide Image"></div>
|
|
<div class="carousel-item"><img class="img-fluid w-100 d-block slider-image-fit" width="1788" height="1000" src="/assets/img/projects/cs_box/csbox_nor_gate.jpeg" alt="Slide Image"></div>
|
|
<div class="carousel-item"><img class="img-fluid w-100 d-block slider-image-fit" width="1788" height="1000" src="/assets/img/projects/cs_box/csbox_nand_gate.jpeg" alt="Slide Image"></div>
|
|
<div class="carousel-item"><img class="img-fluid w-100 d-block slider-image-fit" width="1788" height="1000" src="/assets/img/projects/cs_box/csbox_xor_gate.jpeg" alt="Slide Image"></div>
|
|
<div class="carousel-item"><img class="img-fluid w-100 d-block slider-image-fit" width="1788" height="1000" src="/assets/img/projects/cs_box/csbox_xnor_gate.jpeg" alt="Slide Image"></div>
|
|
</div>
|
|
<div><a class="carousel-control-prev" href="#carousel-1" role="button" data-bs-slide="prev"><span class="carousel-control-prev-icon"></span><span class="visually-hidden">Previous</span></a><a class="carousel-control-next" href="#carousel-1" role="button" data-bs-slide="next"><span class="carousel-control-next-icon"></span><span class="visually-hidden">Next</span></a></div>
|
|
<div class="carousel-indicators focus-ring"><button type="button" data-bs-target="#carousel-1" data-bs-slide-to="0" class="active"></button> <button type="button" data-bs-target="#carousel-1" data-bs-slide-to="1"></button> <button type="button" data-bs-target="#carousel-1" data-bs-slide-to="2"></button> <button type="button" data-bs-target="#carousel-1" data-bs-slide-to="3"></button> <button type="button" data-bs-target="#carousel-1" data-bs-slide-to="4"></button> <button type="button" data-bs-target="#carousel-1" data-bs-slide-to="5"></button> <button type="button" data-bs-target="#carousel-1" data-bs-slide-to="6"></button> <button type="button" data-bs-target="#carousel-1" data-bs-slide-to="7"></button> <button type="button" data-bs-target="#carousel-1" data-bs-slide-to="8"></button> <button type="button" data-bs-target="#carousel-1" data-bs-slide-to="9"></button> <button type="button" data-bs-target="#carousel-1" data-bs-slide-to="10"></button> <button type="button" data-bs-target="#carousel-1" data-bs-slide-to="11"></button></div>
|
|
</div>
|
|
<div class="row">
|
|
<div class="col-12 col-md-6 offset-md-1 info">
|
|
<p>CS:Box is an innovative educational tool designed to support the teaching of key concepts from the UK Computing Curriculum. Building on the foundations of Bit:Box, CS:Box expands its scope to cover a wider range of essential computing topics, providing an interactive and engaging experience for students.<br><br>CS:Box is more than a collection of interactive tools — it is a guided learning experience for students to understand complex computing concepts. By combining hands-on manipulation with visual feedback, it provides a scaffolded learning approach for students at different stages of their educational journey.</p>
|
|
</div>
|
|
<div class="col-12 col-md-3 offset-md-1 meta" style="padding-left: 12px;">
|
|
<div class="tags"><span class="meta-heading">Project Status</span><span>Ongoing</span><span class="meta-heading">Launched</span><span>April 2023</span><span class="meta-heading">Products Created</span><span>Website</span></div><a class="btn btn-primary" role="button" href="https://csbox.mrdaviscsit.uk/" target="_blank" style="margin-top: 25px;margin-right: auto;margin-left: auto;display: flex;justify-content: center;">View Project Website</a><a class="btn btn-primary" role="button" href="https://gitea.adcmnetworks.co.uk/alexander/CS-Box" target="_blank" style="margin-top: 25px;margin-right: auto;margin-left: auto;display: flex;justify-content: center;">View Project on Gitea</a>
|
|
</div>
|
|
</div>
|
|
<div class="more-projects">
|
|
<h3 class="text-center" style="margin-bottom: 10px;">More Projects</h3>
|
|
<div data-bss-type="blog-loop" data-bss-perpage="12">
|
|
<div class="row gy-4 row-cols-1 row-cols-sm-2 row-cols-md-2 row-cols-lg-3 mt-0" data-bss-type="blog-loop-base"></div>
|
|
<nav class="d-flex justify-content-center mt-3" data-bss-type="blog-loop-pagination">
|
|
<ul class="pagination">
|
|
<li class="page-item disabled" data-type="prev" data-page="1"><a class="page-link" aria-label="Previous" href="#"><span aria-hidden="true">«</span></a></li>
|
|
<li class="page-item active" data-type="regular" data-page="1"><a class="page-link" href="#">1</a></li>
|
|
<li class="page-item disabled" data-type="next" data-page="1"><a class="page-link" aria-label="Next" href="#"><span aria-hidden="true">»</span></a></li>
|
|
</ul>
|
|
</nav>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
</main>
|
|
<footer class="text-body bg-body" id="Light-Footer" data-bs-theme="light">
|
|
<div class="container py-4 py-lg-5 center-everything">
|
|
<div class="row justify-content-center">
|
|
<div class="col-sm-4 col-md-3 text-center text-lg-start d-flex flex-column">
|
|
<h3 class="fs-6 text-center text-body" style="font-weight: bold;">Accreditations</h3>
|
|
<div class="swiper w-100" id="light-swiper" data-bss-swiper="{"direction":"horizontal","loop":true,"autoplay":{"pauseOnMouseEnter":true},"autoHeight":true,"effect":"fade","fadeEffect":{"crossFade":true}}">
|
|
<div class="swiper-wrapper">
|
|
<div class="swiper-slide"><a href="https://www.credly.com/badges/9c9dd6cd-2703-4539-adc9-366069cbc3a9/public_url" target="_blank"><img class="img-fluid w-100 accreditation" width="352" height="352" src="/assets/img/accreditations/mce_microsoft_certified_educator.png" alt="Slide Image"></a></div>
|
|
<div class="swiper-slide"><a href="https://www.credly.com/badges/b5ac17a1-0914-496f-9d85-9608966259ee/public_url" target="_blank"><img class="img-fluid w-100 accreditation" width="600" height="600" src="/assets/img/accreditations/microsoft_innovative_educator_expert_2023_2024.png" alt="Slide Image"></a></div>
|
|
<div class="swiper-slide"><a href="https://www.credly.com/badges/ad92a7cb-3e4f-46e2-8e73-99dffd0eb69e/public_url" target="_blank"><img class="img-fluid w-100 accreditation" width="600" height="600" src="/assets/img/accreditations/microsoft_innovative_educator_expert_2024_2025.png" alt="Slide Image"></a></div>
|
|
<div class="swiper-slide"><a href="https://www.credly.com/badges/44756f05-e727-41c8-a352-a656c033c9f0/public_url" target="_blank"><img class="img-fluid w-100 accreditation" width="800" height="800" src="/assets/img/accreditations/pearson_onscreen%20assessment%20expert.png" alt="Slide Image"></a></div>
|
|
<div class="swiper-slide"><a href="https://www.credly.com/badges/52121ef6-0760-4870-91cc-1cb20001238b/public_url" target="_blank"><img class="img-fluid w-100 accreditation" width="1200" height="1200" src="/assets/img/accreditations/establishing_a_stem_club_from_creation_to_careers_2021_2022.png" alt="Slide Image"></a></div>
|
|
<div class="swiper-slide"><a href="https://www.credly.com/badges/60d50339-2dda-4991-90b5-7ff087975746/public_url" target="_blank"><img class="img-fluid w-100 accreditation" width="1200" height="1200" src="/assets/img/accreditations/secondary_computer_science_professional_development_2021_2022.png" alt="Slide Image"></a></div>
|
|
<div class="swiper-slide"><a href="https://www.credly.com/badges/e74f9011-4006-4570-824a-f483fdcb5b26/public_url" target="_blank"><img class="img-fluid w-100 accreditation" width="600" height="600" src="/assets/img/accreditations/secondary_computing_professional_development_2023_2.png" alt="Slide Image"></a></div>
|
|
<div class="swiper-slide"><a href="https://www.credly.com/badges/c73720d2-8208-4e2b-a1e5-c473961834d9/public_url" target="_blank"><img class="img-fluid w-100 accreditation" width="1200" height="1200" src="/assets/img/accreditations/gcse_computer_science_professional_development_2019_2020.png" alt="Slide Image"></a></div>
|
|
<div class="swiper-slide"><a href="https://www.credly.com/badges/c486279a-8e97-4779-90c1-56f09622e782/public_url" target="_blank"><img class="img-fluid w-100 accreditation" width="2000" height="2000" src="/assets/img/accreditations/gcse_computer_science_professional_development_2022_2023.png" alt="Slide Image"></a></div>
|
|
<div class="swiper-slide"><a href="https://www.credly.com/badges/e76ed57f-2270-47f5-8e7e-4136baa261f3/public_url" target="_blank"><img class="img-fluid w-100 accreditation" width="600" height="600" src="/assets/img/accreditations/gcse_computer_science_professional_development_2023.png" alt="Slide Image"></a></div>
|
|
<div class="swiper-slide"><a href="https://www.credly.com/badges/0e46d6b8-1a1b-4d16-a5d5-3b95661fb290/public_url" target="_blank"><img class="img-fluid w-100 accreditation" width="352" height="352" src="/assets/img/accreditations/microsoft_office_specialist_master_2013.png" alt="Slide Image"></a></div>
|
|
<div class="swiper-slide"><a href="https://www.credly.com/badges/287d0ca4-bea1-4e18-b9e7-21f6a5d5d571/public_url" target="_blank"><img class="img-fluid w-100 accreditation" width="352" height="352" src="/assets/img/accreditations/microsoft_office_specialist_word_2013_expert.png" alt="Slide Image"></a></div>
|
|
<div class="swiper-slide"><a href="https://www.credly.com/badges/f1831f0e-776b-49aa-8a8d-05817d4b1410/public_url" target="_blank"><img class="img-fluid w-100 accreditation" width="352" height="352" src="/assets/img/accreditations/microsoft_office_specialist_word_2013.png" alt="Slide Image"></a></div>
|
|
<div class="swiper-slide"><a href="https://www.credly.com/badges/2ab55353-3267-46cc-b3f4-3099af54d869/public_url" target="_blank"><img class="img-fluid w-100 accreditation" width="352" height="352" src="/assets/img/accreditations/microsoft_office_specialist_excel_2013.png" alt="Slide Image"></a></div>
|
|
<div class="swiper-slide"><a href="https://www.credly.com/badges/11162aa2-331a-4ec4-a612-665f3bc59cb1/public_url" target="_blank"><img class="img-fluid w-100 accreditation" width="352" height="352" src="/assets/img/accreditations/microsoft_office_specialist_powerpoint_2013.png" alt="Slide Image"></a></div>
|
|
<div class="swiper-slide"><a href="https://www.credly.com/badges/cd328b1d-27b6-4410-be70-0792a99b72ea/public_url" target="_blank"><img class="img-fluid w-100 accreditation" width="352" height="352" src="/assets/img/accreditations/microsoft_office_specialist_onenote_2013.png" alt="Slide Image"></a></div>
|
|
<div class="swiper-slide"><a href="https://www.credly.com/badges/da3b3b4c-cec4-4537-bb5b-486ce9ee6ee7/public_url" target="_blank"><img class="img-fluid w-100 accreditation" width="352" height="352" src="/assets/img/accreditations/mta_security_fundamentals_certified_2016.png" alt="Slide Image"></a></div>
|
|
<div class="swiper-slide"><a href="https://www.credly.com/badges/23194bfe-30e4-4f8e-b9ec-338d060136dd/public_url" target="_blank"><img class="img-fluid w-100 accreditation" width="352" height="352" src="/assets/img/accreditations/mta_networking_fundamentals_certified_2016.png" alt="Slide Image"></a></div>
|
|
<div class="swiper-slide"><a href="https://www.credly.com/badges/f0f27d87-424b-49e8-a444-95086d640e66/public_url" target="_blank"><img class="img-fluid w-100 accreditation" width="352" height="352" src="/assets/img/accreditations/mta_windows_operating_system_fundamentals_certified_2016.png" alt="Slide Image"></a></div>
|
|
</div>
|
|
</div>
|
|
<div class="swiper-nav-standalone d-flex justify-content-center" data-bss-swiper-target="#light-swiper" style="margin-top: 0.5em;">
|
|
<div class="swiper-button-prev"><button class="btn btn-primary btn-sm" type="button"><svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" fill="currentColor" viewBox="0 0 16 16" class="bi bi-arrow-left">
|
|
<path fill-rule="evenodd" d="M15 8a.5.5 0 0 0-.5-.5H2.707l3.147-3.146a.5.5 0 1 0-.708-.708l-4 4a.5.5 0 0 0 0 .708l4 4a.5.5 0 0 0 .708-.708L2.707 8.5H14.5A.5.5 0 0 0 15 8"></path>
|
|
</svg></button></div>
|
|
<div class="swiper-button-next"><button class="btn btn-primary btn-sm" type="button"><svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" fill="currentColor" viewBox="0 0 16 16" class="bi bi-arrow-right">
|
|
<path fill-rule="evenodd" d="M1 8a.5.5 0 0 1 .5-.5h11.793l-3.147-3.146a.5.5 0 0 1 .708-.708l4 4a.5.5 0 0 1 0 .708l-4 4a.5.5 0 0 1-.708-.708L13.293 8.5H1.5A.5.5 0 0 1 1 8"></path>
|
|
</svg></button></div>
|
|
</div>
|
|
</div>
|
|
<div class="col-sm-4 col-md-3 text-center text-lg-start d-flex flex-column"></div>
|
|
<div class="col-sm-4 col-md-3 text-center text-lg-start d-flex flex-column"></div>
|
|
<div class="col-lg-3 text-center text-lg-start d-flex flex-column align-items-center order-first align-items-lg-start order-lg-last">
|
|
<div class="fw-bold d-flex align-items-center mb-2"><img src="/assets/img/brand/ADCM%20Logo%202025.png" style="width: 100px;height: 100px;" width="50" height="50" class="footer-logo-white"><span>Mr A Davis</span></div>
|
|
<p>IT professional and Head of Computing in the West Midlands</p>
|
|
</div>
|
|
</div>
|
|
<hr>
|
|
<div class="d-flex justify-content-between align-items-center pt-3">
|
|
<p class="mb-0" style="margin-left: 2em;">Copyright © 2025 ADCM Networks</p>
|
|
<ul class="list-inline mb-0">
|
|
<li class="list-inline-item"><a href="https://mstdn.social/@MrDavisCSIT"><svg xmlns="http://www.w3.org/2000/svg" viewBox="-32 0 512 512" width="1em" height="1em" fill="currentColor" class="text-body">
|
|
<!--! Font Awesome Free 6.4.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc. -->
|
|
<path d="M433 179.11c0-97.2-63.71-125.7-63.71-125.7-62.52-28.7-228.56-28.4-290.48 0 0 0-63.72 28.5-63.72 125.7 0 115.7-6.6 259.4 105.63 289.1 40.51 10.7 75.32 13 103.33 11.4 50.81-2.8 79.32-18.1 79.32-18.1l-1.7-36.9s-36.31 11.4-77.12 10.1c-40.41-1.4-83-4.4-89.63-54a102.54 102.54 0 0 1-.9-13.9c85.63 20.9 158.65 9.1 178.75 6.7 56.12-6.7 105-41.3 111.23-72.9 9.8-49.8 9-121.5 9-121.5zm-75.12 125.2h-46.63v-114.2c0-49.7-64-51.6-64 6.9v62.5h-46.33V197c0-58.5-64-56.6-64-6.9v114.2H90.19c0-122.1-5.2-147.9 18.41-175 25.9-28.9 79.82-30.8 103.83 6.1l11.6 19.5 11.6-19.5c24.11-37.1 78.12-34.8 103.83-6.1 23.71 27.3 18.4 53 18.4 175z"></path>
|
|
</svg></a></li>
|
|
<li class="list-inline-item"><a href="https://bsky.app/profile/mrdaviscsit.bsky.social"><i class="fa-brands fa-square-bluesky"></i></a></li>
|
|
<li class="list-inline-item"><a href="https://www.linkedin.com/in/mrdaviscsit/"><svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" fill="currentColor" viewBox="0 0 16 16" class="bi bi-linkedin text-body">
|
|
<path d="M0 1.146C0 .513.526 0 1.175 0h13.65C15.474 0 16 .513 16 1.146v13.708c0 .633-.526 1.146-1.175 1.146H1.175C.526 16 0 15.487 0 14.854V1.146zm4.943 12.248V6.169H2.542v7.225h2.401m-1.2-8.212c.837 0 1.358-.554 1.358-1.248-.015-.709-.52-1.248-1.342-1.248-.822 0-1.359.54-1.359 1.248 0 .694.521 1.248 1.327 1.248h.016zm4.908 8.212V9.359c0-.216.016-.432.08-.586.173-.431.568-.878 1.232-.878.869 0 1.216.662 1.216 1.634v3.865h2.401V9.25c0-2.22-1.184-3.252-2.764-3.252-1.274 0-1.845.7-2.165 1.193v.025h-.016a5.54 5.54 0 0 1 .016-.025V6.169h-2.4c.03.678 0 7.225 0 7.225h2.4"></path>
|
|
</svg></a></li>
|
|
<li class="list-inline-item"><a href="https://github.com/MrDavisCSIT"><svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" fill="currentColor" viewBox="0 0 16 16" class="bi bi-github text-body">
|
|
<path d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.012 8.012 0 0 0 16 8c0-4.42-3.58-8-8-8"></path>
|
|
</svg></a></li>
|
|
<li class="list-inline-item"><a href="https://www.reddit.com/user/AlexanderEDavis95/"><svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" fill="currentColor" viewBox="0 0 16 16" class="bi bi-reddit text-body">
|
|
<path d="M6.167 8a.831.831 0 0 0-.83.83c0 .459.372.84.83.831a.831.831 0 0 0 0-1.661m1.843 3.647c.315 0 1.403-.038 1.976-.611a.232.232 0 0 0 0-.306.213.213 0 0 0-.306 0c-.353.363-1.126.487-1.67.487-.545 0-1.308-.124-1.671-.487a.213.213 0 0 0-.306 0 .213.213 0 0 0 0 .306c.564.563 1.652.61 1.977.61zm.992-2.807c0 .458.373.83.831.83.458 0 .83-.381.83-.83a.831.831 0 0 0-1.66 0z"></path>
|
|
<path d="M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0m-3.828-1.165c-.315 0-.602.124-.812.325-.801-.573-1.9-.945-3.121-.993l.534-2.501 1.738.372a.83.83 0 1 0 .83-.869.83.83 0 0 0-.744.468l-1.938-.41a.203.203 0 0 0-.153.028.186.186 0 0 0-.086.134l-.592 2.788c-1.24.038-2.358.41-3.17.992-.21-.2-.496-.324-.81-.324a1.163 1.163 0 0 0-.478 2.224c-.02.115-.029.23-.029.353 0 1.795 2.091 3.256 4.669 3.256 2.577 0 4.668-1.451 4.668-3.256 0-.114-.01-.238-.029-.353.401-.181.688-.592.688-1.069 0-.65-.525-1.165-1.165-1.165z"></path>
|
|
</svg></a></li>
|
|
<li class="list-inline-item"><a href="https://www.youtube.com/channel/UCgDhiQMLbTemv2varDiW2rA"><svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" fill="currentColor" viewBox="0 0 16 16" class="bi bi-youtube text-body">
|
|
<path d="M8.051 1.999h.089c.822.003 4.987.033 6.11.335a2.01 2.01 0 0 1 1.415 1.42c.101.38.172.883.22 1.402l.01.104.022.26.008.104c.065.914.073 1.77.074 1.957v.075c-.001.194-.01 1.108-.082 2.06l-.008.105-.009.104c-.05.572-.124 1.14-.235 1.558a2.007 2.007 0 0 1-1.415 1.42c-1.16.312-5.569.334-6.18.335h-.142c-.309 0-1.587-.006-2.927-.052l-.17-.006-.087-.004-.171-.007-.171-.007c-1.11-.049-2.167-.128-2.654-.26a2.007 2.007 0 0 1-1.415-1.419c-.111-.417-.185-.986-.235-1.558L.09 9.82l-.008-.104A31.4 31.4 0 0 1 0 7.68v-.123c.002-.215.01-.958.064-1.778l.007-.103.003-.052.008-.104.022-.26.01-.104c.048-.519.119-1.023.22-1.402a2.007 2.007 0 0 1 1.415-1.42c.487-.13 1.544-.21 2.654-.26l.17-.007.172-.006.086-.003.171-.007A99.788 99.788 0 0 1 7.858 2h.193zM6.4 5.209v4.818l4.157-2.408z"></path>
|
|
</svg></a></li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</footer>
|
|
<footer class="text-body bg-body" id="Dark-Footer" data-bs-theme="dark">
|
|
<div class="container py-4 py-lg-5 center-everything">
|
|
<div class="row justify-content-center">
|
|
<div class="col-sm-4 col-md-3 text-center text-lg-start d-flex flex-column">
|
|
<h3 class="fs-6 text-center text-body">Accreditations</h3>
|
|
<div class="swiper w-100" id="dark-swiper" data-bss-swiper="{"direction":"horizontal","loop":true,"autoplay":{"pauseOnMouseEnter":true},"autoHeight":true,"effect":"fade"}">
|
|
<div class="swiper-wrapper">
|
|
<div class="swiper-slide"><a href="https://www.credly.com/badges/9c9dd6cd-2703-4539-adc9-366069cbc3a9/public_url" target="_blank"><img class="img-fluid w-100 accreditation" width="352" height="352" src="/assets/img/accreditations/mce_microsoft_certified_educator.png" alt="Slide Image"></a></div>
|
|
<div class="swiper-slide"><a href="https://www.credly.com/badges/b5ac17a1-0914-496f-9d85-9608966259ee/public_url" target="_blank"><img class="img-fluid w-100 accreditation" width="600" height="600" src="/assets/img/accreditations/microsoft_innovative_educator_expert_2023_2024.png" alt="Slide Image"></a></div>
|
|
<div class="swiper-slide"><a href="https://www.credly.com/badges/ad92a7cb-3e4f-46e2-8e73-99dffd0eb69e/public_url" target="_blank"><img class="img-fluid w-100 accreditation" width="600" height="600" src="/assets/img/accreditations/microsoft_innovative_educator_expert_2024_2025.png" alt="Slide Image"></a></div>
|
|
<div class="swiper-slide"><a href="https://www.credly.com/badges/44756f05-e727-41c8-a352-a656c033c9f0/public_url" target="_blank"><img class="img-fluid w-100 accreditation" width="800" height="800" src="/assets/img/accreditations/pearson_onscreen%20assessment%20expert.png" alt="Slide Image"></a></div>
|
|
<div class="swiper-slide"><a href="https://www.credly.com/badges/52121ef6-0760-4870-91cc-1cb20001238b/public_url" target="_blank"><img class="img-fluid w-100 accreditation" width="1200" height="1200" src="/assets/img/accreditations/establishing_a_stem_club_from_creation_to_careers_2021_2022.png" alt="Slide Image"></a></div>
|
|
<div class="swiper-slide"><a href="https://www.credly.com/badges/60d50339-2dda-4991-90b5-7ff087975746/public_url" target="_blank"><img class="img-fluid w-100 accreditation" width="1200" height="1200" src="/assets/img/accreditations/secondary_computer_science_professional_development_2021_2022.png" alt="Slide Image"></a></div>
|
|
<div class="swiper-slide"><a href="https://www.credly.com/badges/e74f9011-4006-4570-824a-f483fdcb5b26/public_url" target="_blank"><img class="img-fluid w-100 accreditation" width="600" height="600" src="/assets/img/accreditations/secondary_computing_professional_development_2023_2.png" alt="Slide Image"></a></div>
|
|
<div class="swiper-slide"><a href="https://www.credly.com/badges/c73720d2-8208-4e2b-a1e5-c473961834d9/public_url" target="_blank"><img class="img-fluid w-100 accreditation" width="1200" height="1200" src="/assets/img/accreditations/gcse_computer_science_professional_development_2019_2020.png" alt="Slide Image"></a></div>
|
|
<div class="swiper-slide"><a href="https://www.credly.com/badges/c486279a-8e97-4779-90c1-56f09622e782/public_url" target="_blank"><img class="img-fluid w-100 accreditation" width="2000" height="2000" src="/assets/img/accreditations/gcse_computer_science_professional_development_2022_2023.png" alt="Slide Image"></a></div>
|
|
<div class="swiper-slide"><a href="https://www.credly.com/badges/e76ed57f-2270-47f5-8e7e-4136baa261f3/public_url" target="_blank"><img class="img-fluid w-100 accreditation" width="600" height="600" src="/assets/img/accreditations/gcse_computer_science_professional_development_2023.png" alt="Slide Image"></a></div>
|
|
<div class="swiper-slide"><a href="https://www.credly.com/badges/0e46d6b8-1a1b-4d16-a5d5-3b95661fb290/public_url" target="_blank"><img class="img-fluid w-100 accreditation" width="352" height="352" src="/assets/img/accreditations/microsoft_office_specialist_master_2013.png" alt="Slide Image"></a></div>
|
|
<div class="swiper-slide"><a href="https://www.credly.com/badges/287d0ca4-bea1-4e18-b9e7-21f6a5d5d571/public_url" target="_blank"><img class="img-fluid w-100 accreditation" width="352" height="352" src="/assets/img/accreditations/microsoft_office_specialist_word_2013_expert.png" alt="Slide Image"></a></div>
|
|
<div class="swiper-slide"><a href="https://www.credly.com/badges/f1831f0e-776b-49aa-8a8d-05817d4b1410/public_url" target="_blank"><img class="img-fluid w-100 accreditation" width="352" height="352" src="/assets/img/accreditations/microsoft_office_specialist_word_2013.png" alt="Slide Image"></a></div>
|
|
<div class="swiper-slide"><a href="https://www.credly.com/badges/2ab55353-3267-46cc-b3f4-3099af54d869/public_url" target="_blank"><img class="img-fluid w-100 accreditation" width="352" height="352" src="/assets/img/accreditations/microsoft_office_specialist_excel_2013.png" alt="Slide Image"></a></div>
|
|
<div class="swiper-slide"><a href="https://www.credly.com/badges/11162aa2-331a-4ec4-a612-665f3bc59cb1/public_url" target="_blank"><img class="img-fluid w-100 accreditation" width="352" height="352" src="/assets/img/accreditations/microsoft_office_specialist_powerpoint_2013.png" alt="Slide Image"></a></div>
|
|
<div class="swiper-slide"><a href="https://www.credly.com/badges/cd328b1d-27b6-4410-be70-0792a99b72ea/public_url" target="_blank"><img class="img-fluid w-100 accreditation" width="352" height="352" src="/assets/img/accreditations/microsoft_office_specialist_onenote_2013.png" alt="Slide Image"></a></div>
|
|
<div class="swiper-slide"><a href="https://www.credly.com/badges/da3b3b4c-cec4-4537-bb5b-486ce9ee6ee7/public_url" target="_blank"><img class="img-fluid w-100 accreditation" width="352" height="352" src="/assets/img/accreditations/mta_security_fundamentals_certified_2016.png" alt="Slide Image"></a></div>
|
|
<div class="swiper-slide"><a href="https://www.credly.com/badges/23194bfe-30e4-4f8e-b9ec-338d060136dd/public_url" target="_blank"><img class="img-fluid w-100 accreditation" width="352" height="352" src="/assets/img/accreditations/mta_networking_fundamentals_certified_2016.png" alt="Slide Image"></a></div>
|
|
<div class="swiper-slide"><a href="https://www.credly.com/badges/f0f27d87-424b-49e8-a444-95086d640e66/public_url" target="_blank"><img class="img-fluid w-100 accreditation" width="352" height="352" src="/assets/img/accreditations/mta_windows_operating_system_fundamentals_certified_2016.png" alt="Slide Image"></a></div>
|
|
</div>
|
|
</div>
|
|
<div class="swiper-nav-standalone d-flex justify-content-center" data-bss-swiper-target="#dark-swiper" style="margin-top: 0.5em;">
|
|
<div class="swiper-button-prev"><button class="btn btn-primary btn-sm" type="button"><svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" fill="currentColor" viewBox="0 0 16 16" class="bi bi-arrow-left">
|
|
<path fill-rule="evenodd" d="M15 8a.5.5 0 0 0-.5-.5H2.707l3.147-3.146a.5.5 0 1 0-.708-.708l-4 4a.5.5 0 0 0 0 .708l4 4a.5.5 0 0 0 .708-.708L2.707 8.5H14.5A.5.5 0 0 0 15 8"></path>
|
|
</svg></button></div>
|
|
<div class="swiper-button-next"><button class="btn btn-primary btn-sm" type="button"><svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" fill="currentColor" viewBox="0 0 16 16" class="bi bi-arrow-right">
|
|
<path fill-rule="evenodd" d="M1 8a.5.5 0 0 1 .5-.5h11.793l-3.147-3.146a.5.5 0 0 1 .708-.708l4 4a.5.5 0 0 1 0 .708l-4 4a.5.5 0 0 1-.708-.708L13.293 8.5H1.5A.5.5 0 0 1 1 8"></path>
|
|
</svg></button></div>
|
|
</div>
|
|
<ul class="list-unstyled"></ul>
|
|
</div>
|
|
<div class="col-sm-4 col-md-3 text-center text-lg-start d-flex flex-column"></div>
|
|
<div class="col-sm-4 col-md-3 text-center text-lg-start d-flex flex-column"></div>
|
|
<div class="col-lg-3 text-center text-lg-start d-flex flex-column align-items-center order-first align-items-lg-start order-lg-last">
|
|
<div class="fw-bold d-flex align-items-center mb-2"><img src="/assets/img/brand/logo-white.png" style="width: 100px;height: 100px;" width="50" height="50" class="footer-logo-white"><span>Mr A Davis</span></div>
|
|
<p>IT professional and Head of Computing in the West Midlands</p>
|
|
</div>
|
|
</div>
|
|
<hr>
|
|
<div class="d-flex justify-content-between align-items-center pt-3">
|
|
<p class="mb-0" style="margin-left: 2em;">Copyright © 2025 ADCM Networks</p>
|
|
<ul class="list-inline mb-0">
|
|
<li class="list-inline-item"><a href="https://mstdn.social/@MrDavisCSIT"><svg xmlns="http://www.w3.org/2000/svg" viewBox="-32 0 512 512" width="1em" height="1em" fill="currentColor" class="text-body">
|
|
<!--! Font Awesome Free 6.4.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc. -->
|
|
<path d="M433 179.11c0-97.2-63.71-125.7-63.71-125.7-62.52-28.7-228.56-28.4-290.48 0 0 0-63.72 28.5-63.72 125.7 0 115.7-6.6 259.4 105.63 289.1 40.51 10.7 75.32 13 103.33 11.4 50.81-2.8 79.32-18.1 79.32-18.1l-1.7-36.9s-36.31 11.4-77.12 10.1c-40.41-1.4-83-4.4-89.63-54a102.54 102.54 0 0 1-.9-13.9c85.63 20.9 158.65 9.1 178.75 6.7 56.12-6.7 105-41.3 111.23-72.9 9.8-49.8 9-121.5 9-121.5zm-75.12 125.2h-46.63v-114.2c0-49.7-64-51.6-64 6.9v62.5h-46.33V197c0-58.5-64-56.6-64-6.9v114.2H90.19c0-122.1-5.2-147.9 18.41-175 25.9-28.9 79.82-30.8 103.83 6.1l11.6 19.5 11.6-19.5c24.11-37.1 78.12-34.8 103.83-6.1 23.71 27.3 18.4 53 18.4 175z"></path>
|
|
</svg></a></li>
|
|
<li class="list-inline-item"><a href="https://bsky.app/profile/mrdaviscsit.bsky.social"><i class="fa-brands fa-square-bluesky"></i></a></li>
|
|
<li class="list-inline-item"><a href="https://www.linkedin.com/in/mrdaviscsit/"><svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" fill="currentColor" viewBox="0 0 16 16" class="bi bi-linkedin text-body">
|
|
<path d="M0 1.146C0 .513.526 0 1.175 0h13.65C15.474 0 16 .513 16 1.146v13.708c0 .633-.526 1.146-1.175 1.146H1.175C.526 16 0 15.487 0 14.854V1.146zm4.943 12.248V6.169H2.542v7.225h2.401m-1.2-8.212c.837 0 1.358-.554 1.358-1.248-.015-.709-.52-1.248-1.342-1.248-.822 0-1.359.54-1.359 1.248 0 .694.521 1.248 1.327 1.248h.016zm4.908 8.212V9.359c0-.216.016-.432.08-.586.173-.431.568-.878 1.232-.878.869 0 1.216.662 1.216 1.634v3.865h2.401V9.25c0-2.22-1.184-3.252-2.764-3.252-1.274 0-1.845.7-2.165 1.193v.025h-.016a5.54 5.54 0 0 1 .016-.025V6.169h-2.4c.03.678 0 7.225 0 7.225h2.4"></path>
|
|
</svg></a></li>
|
|
<li class="list-inline-item"><a href="https://github.com/MrDavisCSIT"><svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" fill="currentColor" viewBox="0 0 16 16" class="bi bi-github text-body">
|
|
<path d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.012 8.012 0 0 0 16 8c0-4.42-3.58-8-8-8"></path>
|
|
</svg></a></li>
|
|
<li class="list-inline-item"><a href="https://www.reddit.com/user/AlexanderEDavis95/"><svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" fill="currentColor" viewBox="0 0 16 16" class="bi bi-reddit text-body">
|
|
<path d="M6.167 8a.831.831 0 0 0-.83.83c0 .459.372.84.83.831a.831.831 0 0 0 0-1.661m1.843 3.647c.315 0 1.403-.038 1.976-.611a.232.232 0 0 0 0-.306.213.213 0 0 0-.306 0c-.353.363-1.126.487-1.67.487-.545 0-1.308-.124-1.671-.487a.213.213 0 0 0-.306 0 .213.213 0 0 0 0 .306c.564.563 1.652.61 1.977.61zm.992-2.807c0 .458.373.83.831.83.458 0 .83-.381.83-.83a.831.831 0 0 0-1.66 0z"></path>
|
|
<path d="M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0m-3.828-1.165c-.315 0-.602.124-.812.325-.801-.573-1.9-.945-3.121-.993l.534-2.501 1.738.372a.83.83 0 1 0 .83-.869.83.83 0 0 0-.744.468l-1.938-.41a.203.203 0 0 0-.153.028.186.186 0 0 0-.086.134l-.592 2.788c-1.24.038-2.358.41-3.17.992-.21-.2-.496-.324-.81-.324a1.163 1.163 0 0 0-.478 2.224c-.02.115-.029.23-.029.353 0 1.795 2.091 3.256 4.669 3.256 2.577 0 4.668-1.451 4.668-3.256 0-.114-.01-.238-.029-.353.401-.181.688-.592.688-1.069 0-.65-.525-1.165-1.165-1.165z"></path>
|
|
</svg></a></li>
|
|
<li class="list-inline-item"><a href="https://www.youtube.com/channel/UCgDhiQMLbTemv2varDiW2rA"><svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" fill="currentColor" viewBox="0 0 16 16" class="bi bi-youtube text-body">
|
|
<path d="M8.051 1.999h.089c.822.003 4.987.033 6.11.335a2.01 2.01 0 0 1 1.415 1.42c.101.38.172.883.22 1.402l.01.104.022.26.008.104c.065.914.073 1.77.074 1.957v.075c-.001.194-.01 1.108-.082 2.06l-.008.105-.009.104c-.05.572-.124 1.14-.235 1.558a2.007 2.007 0 0 1-1.415 1.42c-1.16.312-5.569.334-6.18.335h-.142c-.309 0-1.587-.006-2.927-.052l-.17-.006-.087-.004-.171-.007-.171-.007c-1.11-.049-2.167-.128-2.654-.26a2.007 2.007 0 0 1-1.415-1.419c-.111-.417-.185-.986-.235-1.558L.09 9.82l-.008-.104A31.4 31.4 0 0 1 0 7.68v-.123c.002-.215.01-.958.064-1.778l.007-.103.003-.052.008-.104.022-.26.01-.104c.048-.519.119-1.023.22-1.402a2.007 2.007 0 0 1 1.415-1.42c.487-.13 1.544-.21 2.654-.26l.17-.007.172-.006.086-.003.171-.007A99.788 99.788 0 0 1 7.858 2h.193zM6.4 5.209v4.818l4.157-2.408z"></path>
|
|
</svg></a></li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</footer>
|
|
<script>
|
|
(function() {
|
|
let collections = document.querySelectorAll('[data-bss-type="blog-loop"]');
|
|
let tagNavs = document.querySelectorAll('[data-bss-type="tag-nav"]');
|
|
let tagLoops = document.querySelectorAll('[data-bss-type="tag-loop"]');
|
|
let authorLoops = document.querySelectorAll('[data-bss-type="author-loop"]');
|
|
let authorNavs = document.querySelectorAll('[data-bss-type="author-nav"]');
|
|
|
|
window.addEventListener("popstate", (e) => {
|
|
for (let collection of collections) {
|
|
updateCollection(collection);
|
|
}
|
|
|
|
for (let tagNav of tagNavs) {
|
|
updateTagNav(tagNav);
|
|
}
|
|
|
|
for (let authorNav of authorNavs) {
|
|
updateAuthorNav(authorNav);
|
|
}
|
|
});
|
|
|
|
for (let collection of collections) {
|
|
|
|
updateCollection(collection);
|
|
|
|
if (!canPaginateCollection(collection)) continue;
|
|
|
|
let pagination = collection.querySelector('[data-bss-type="blog-loop-pagination"]');
|
|
|
|
pagination.addEventListener('click', function(e) {
|
|
let paginationItem = e.target.closest('.page-item');
|
|
if (!paginationItem) return;
|
|
|
|
e.preventDefault();
|
|
|
|
if (paginationItem.classList.contains('disabled') || paginationItem.classList.contains('active')) return;
|
|
|
|
let collection = paginationItem.closest('[data-bss-type="blog-loop"]');
|
|
if (!collection) return;
|
|
|
|
let page = parseInt(paginationItem.dataset.page);
|
|
if (!page) return;
|
|
|
|
let pageParam = getPageParameter(collection);
|
|
|
|
if (pageParam) {
|
|
const url = new URL(window.location);
|
|
url.searchParams.set(pageParam, page);
|
|
history.pushState({
|
|
[pageParam]: page
|
|
}, document.title, url);
|
|
|
|
for (let c of collections) {
|
|
let param = getPageParameter(c);
|
|
if (param !== pageParam) continue;
|
|
updateCollection(c);
|
|
}
|
|
} else {
|
|
updateCollection(collection, page);
|
|
}
|
|
});
|
|
}
|
|
|
|
for (let tagNav of tagNavs) {
|
|
updateTagNav(tagNav);
|
|
tagNav.addEventListener('click', onTagClick);
|
|
}
|
|
|
|
for (let tagLoop of tagLoops) {
|
|
tagLoop.addEventListener('click', onTagClick);
|
|
}
|
|
|
|
for (let authorLoop of authorLoops) {
|
|
authorLoop.addEventListener('click', onAuthorClick);
|
|
}
|
|
|
|
for (let authorNav of authorNavs) {
|
|
updateAuthorNav(authorNav);
|
|
}
|
|
|
|
function onTagClick(e) {
|
|
onBlogFilterClick(e);
|
|
|
|
for (let nav of tagNavs) {
|
|
updateTagNav(nav);
|
|
}
|
|
}
|
|
|
|
function onAuthorClick(e) {
|
|
onBlogFilterClick(e);
|
|
|
|
for (let authorNav of authorNavs) {
|
|
updateAuthorNav(authorNav);
|
|
}
|
|
}
|
|
|
|
function onBlogFilterClick(e) {
|
|
const item = e.target.closest('[data-bss-filter="blog"]');
|
|
if (!item || !item.dataset.hasOwnProperty('bssHref') || !item.dataset.hasOwnProperty('bssFilterParam')) return;
|
|
|
|
const stateNode = item.dataset.hasOwnProperty('bssStateNode') ? item : item.querySelector('[data-bss-state-node]');
|
|
|
|
if (stateNode && (stateNode.classList.contains('disabled') || stateNode.classList.contains('active'))) {
|
|
e.preventDefault();
|
|
return;
|
|
}
|
|
|
|
const link = item.dataset.bssHref;
|
|
if (!linksToCurrentPage(link)) return;
|
|
|
|
e.preventDefault();
|
|
|
|
const url = new URL(window.location);
|
|
const filterParam = item.dataset.bssFilterParam;
|
|
const filterValue = item.dataset.bssFilterValue || '';
|
|
|
|
const collectionsToUpdate = [];
|
|
const newQueryParams = {
|
|
[filterParam]: filterValue
|
|
};
|
|
|
|
for (let c of collections) {
|
|
if (!canFilterCollection(c)) continue;
|
|
collectionsToUpdate.push(c);
|
|
|
|
let pageParam = getPageParameter(c);
|
|
let page = url.searchParams.get(pageParam);
|
|
if (page === null || page == 1) continue;
|
|
|
|
newQueryParams[pageParam] = 1;
|
|
}
|
|
|
|
for (let param in newQueryParams) {
|
|
if (newQueryParams[param]) {
|
|
url.searchParams.set(param, newQueryParams[param]);
|
|
} else {
|
|
url.searchParams.delete(param);
|
|
}
|
|
}
|
|
|
|
history.pushState(newQueryParams, document.title, url);
|
|
|
|
for (let c of collectionsToUpdate) {
|
|
updateCollection(c);
|
|
}
|
|
}
|
|
|
|
function getCollectionFilters(collection) {
|
|
let filters = [];
|
|
|
|
try {
|
|
const parsed = JSON.parse(collection.dataset.bssFilters);
|
|
|
|
if (Array.isArray(parsed)) {
|
|
filters = parsed;
|
|
}
|
|
} catch (e) {}
|
|
|
|
return filters;
|
|
}
|
|
|
|
function getCollectionEmptyFilterAction(collection, filter = '') {
|
|
let emptyFilterActions = [];
|
|
|
|
try {
|
|
const parsed = JSON.parse(collection.dataset.bssEmptyFilterActions);
|
|
|
|
if (Array.isArray(parsed)) {
|
|
emptyFilterActions = parsed;
|
|
}
|
|
} catch (e) {}
|
|
|
|
const action = emptyFilterActions.find(action => action.filter === filter);
|
|
|
|
return action ? action.value : '';
|
|
}
|
|
|
|
function canFilterCollection(collection) {
|
|
return !!getCollectionFilters(collection).length;
|
|
}
|
|
|
|
function canFilterCollectionByTag(collection) {
|
|
return getCollectionFilters(collection).includes('tag');
|
|
}
|
|
|
|
function canFilterCollectionByAuthor(collection) {
|
|
return getCollectionFilters(collection).includes('author');
|
|
}
|
|
|
|
function shouldShowAllItemsForEmptyFilter(collection, filter = '') {
|
|
return getCollectionEmptyFilterAction(collection, filter) === 'show-all';
|
|
}
|
|
|
|
function canPaginateCollection(collection) {
|
|
return !!getCollectionPagination(collection);
|
|
}
|
|
|
|
function getCollectionPagination(collection) {
|
|
return collection.querySelector('[data-bss-type="blog-loop-pagination"]');
|
|
}
|
|
|
|
function getPageParameter(collection) {
|
|
return collection.dataset.bssPageParam;
|
|
}
|
|
|
|
function linksToCurrentPage(path = '') {
|
|
let currentURL, url;
|
|
|
|
try {
|
|
currentURL = new URL(window.location);
|
|
url = new URL(path, window.location.href);
|
|
} catch (e) {
|
|
console.error(e);
|
|
}
|
|
|
|
return currentURL.origin === url.origin && currentURL.pathname === url.pathname;
|
|
}
|
|
|
|
function updateCollection(collection, page, activeTag = '', activeAuthor = '') {
|
|
|
|
const url = new URL(window.location.href);
|
|
|
|
if (canPaginateCollection(collection)) {
|
|
if (!page) {
|
|
let pageParam = getPageParameter(collection);
|
|
page = (pageParam ? url.searchParams.get(pageParam) : 1) || 1;
|
|
}
|
|
}
|
|
|
|
if (canFilterCollectionByTag(collection) && !activeTag) {
|
|
let tagParam = 'tag';
|
|
activeTag = url.searchParams.get(tagParam) || '';
|
|
}
|
|
|
|
if (canFilterCollectionByAuthor(collection) && !activeAuthor) {
|
|
let authorParam = 'author';
|
|
activeAuthor = url.searchParams.get(authorParam) || '';
|
|
}
|
|
|
|
renderCollectionPage(collection, page, activeTag, activeAuthor);
|
|
}
|
|
|
|
function renderCollectionPage(collection, page = 1, activeTag = '', activeAuthor = '') {
|
|
|
|
page = Math.max(parseInt(page, 10), 1);
|
|
|
|
collection.style.removeProperty('display');
|
|
|
|
let loopBase = collection.querySelector('[data-bss-type="blog-loop-base"]');
|
|
loopBase && loopBase.style.removeProperty('display');
|
|
|
|
let emptyState = collection.querySelector('[data-bss-type="empty-state"]');
|
|
emptyState && emptyState.style.setProperty('display', 'none', 'important');
|
|
|
|
let listItems = [].slice.call(collection.querySelectorAll('[data-bss-type="blog-loop-item"]'));
|
|
listItems.forEach(item => item.style.setProperty('display', 'none', 'important'));
|
|
|
|
if (canFilterCollectionByTag(collection)) {
|
|
listItems = listItems.filter(item => activeTag ? item.classList.contains('post-tag-' + activeTag) : shouldShowAllItemsForEmptyFilter(collection, 'tag'));
|
|
}
|
|
|
|
if (canFilterCollectionByAuthor(collection)) {
|
|
listItems = listItems.filter(item => activeAuthor ? item.classList.contains('post-author-' + activeAuthor) : shouldShowAllItemsForEmptyFilter(collection, 'author'));
|
|
}
|
|
|
|
let perPage = collection.dataset.bssPerpage || listItems.length;
|
|
let visibleListItems = listItems.slice((page - 1) * perPage, page * perPage);
|
|
visibleListItems.forEach(item => item.style.removeProperty('display'));
|
|
|
|
let isEmpty = !visibleListItems.length;
|
|
|
|
if (isEmpty) {
|
|
loopBase && loopBase.style.setProperty('display', 'none', 'important');
|
|
emptyState && emptyState.style.removeProperty('display');
|
|
}
|
|
|
|
let itemCount = listItems.length;
|
|
let pageCount = Math.max(Math.ceil(itemCount / perPage), 1);
|
|
|
|
updateCollectionPagination(collection, page, pageCount, isEmpty);
|
|
|
|
if (collection.dataset.bssScrollOnChange) {
|
|
scrollToCollectionTop(collection);
|
|
}
|
|
}
|
|
|
|
function updateCollectionPagination(collection, page, pageCount, isEmpty) {
|
|
let pagination = getCollectionPagination(collection);
|
|
if (!pagination) return;
|
|
|
|
let paginationItems = [].slice.call(pagination.querySelectorAll('.page-item'));
|
|
|
|
if (pageCount === 1 || isEmpty) {
|
|
pagination.style.setProperty('display', 'none', 'important');
|
|
} else {
|
|
pagination.style.removeProperty('display');
|
|
}
|
|
|
|
let previousBtnDisabled = page - 1 <= 0;
|
|
let previousPage = previousBtnDisabled ? 1 : page - 1;
|
|
|
|
let nextBtnDisabled = page + 1 > pageCount;
|
|
let nextPage = nextBtnDisabled ? pageCount : page + 1;
|
|
|
|
for (let i = 0; i < paginationItems.length; i++) {
|
|
let paginationItem = paginationItems[i];
|
|
|
|
paginationItem.classList.remove('active', 'disabled');
|
|
|
|
if (paginationItem.dataset.type === 'prev') {
|
|
paginationItem.dataset.page = previousPage;
|
|
|
|
if (previousBtnDisabled) {
|
|
paginationItem.classList.add('disabled');
|
|
}
|
|
} else if (paginationItem.dataset.type === 'next') {
|
|
paginationItem.dataset.page = nextPage;
|
|
|
|
if (nextBtnDisabled) {
|
|
paginationItem.classList.add('disabled');
|
|
}
|
|
} else {
|
|
if (paginationItem.dataset.page > pageCount) {
|
|
paginationItem.style.setProperty('display', 'none', 'important');
|
|
} else {
|
|
paginationItem.style.removeProperty('display');
|
|
}
|
|
|
|
if (paginationItem.dataset.page == page) {
|
|
paginationItem.classList.add('active');
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
function scrollToCollectionTop(collection) {
|
|
const rect = collection.getBoundingClientRect();
|
|
const viewHeight = Math.max(document.documentElement.clientHeight, window.innerHeight);
|
|
const threshold = 100;
|
|
|
|
if (rect.top >= 0 && viewHeight - rect.top > threshold) return;
|
|
|
|
setTimeout(() => {
|
|
collection.scrollIntoView({
|
|
behavior: "smooth",
|
|
block: "start",
|
|
inline: "start"
|
|
});
|
|
}, 0);
|
|
}
|
|
|
|
function updateTagNav(tagNav) {
|
|
const url = new URL(window.location.href);
|
|
|
|
let tagParam = 'tag';
|
|
let tag = url.searchParams.get(tagParam) || '';
|
|
|
|
renderTagNav(tagNav, tag);
|
|
}
|
|
|
|
function renderTagNav(tagNav, activeTag = '') {
|
|
if (!tagNav.dataset.bssSyncUrl) return;
|
|
|
|
let navItems = [].slice.call(tagNav.querySelectorAll('[data-bss-type="tag-loop-item"]'));
|
|
|
|
navItems.forEach(item => {
|
|
const activeClassNode = item.dataset.hasOwnProperty('bssStateNode') ? item : item.querySelector('[data-bss-state-node]');
|
|
if (!activeClassNode) return;
|
|
|
|
activeClassNode.classList.remove('active');
|
|
|
|
const link = item.dataset.bssHref;
|
|
if (!linksToCurrentPage(link) || activeClassNode.classList.contains('disabled')) return;
|
|
|
|
if (item.dataset.bssTag === activeTag) {
|
|
activeClassNode.classList.add('active');
|
|
}
|
|
});
|
|
}
|
|
|
|
function updateAuthorNav(authorNav) {
|
|
const url = new URL(window.location.href);
|
|
|
|
let authorParam = 'author';
|
|
let author = url.searchParams.get(authorParam) || '';
|
|
|
|
renderAuthorNav(authorNav, author);
|
|
}
|
|
|
|
function renderAuthorNav(authorNav, activeAuthor = '') {
|
|
if (!canFilterCollectionByAuthor(authorNav)) return;
|
|
|
|
authorNav.style.removeProperty('display');
|
|
|
|
let items = [].slice.call(authorNav.querySelectorAll('[data-bss-type="author-loop-item"]'));
|
|
items.forEach(item => item.classList.contains('author-' + activeAuthor) ? item.style.removeProperty('display') : item.style.setProperty('display', 'none', 'important'));
|
|
}
|
|
})();
|
|
</script>
|
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.0/jquery.min.js"></script>
|
|
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.6/dist/js/bootstrap.bundle.min.js"></script>
|
|
<script src="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.js"></script>
|
|
<script src="/assets/js/bs-init.js"></script>
|
|
<script src="/assets/js/Carousel---Slider-With-Animation-slider_with_animation.js"></script>
|
|
<script src="/assets/js/CookieConsentComponent-cookieconsent.js"></script>
|
|
<script src="https://kit.fontawesome.com/8970d94f9b.js"></script>
|
|
<script src="/assets/js/pikaday.min.js"></script>
|
|
<script src="/assets/js/text-carousel.js"></script>
|
|
<script src="/assets/js/theme.js"></script>
|
|
</body>
|
|
|
|
</html> |