You've already forked ProfessionalWebsite
832 lines
67 KiB
HTML
832 lines
67 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>Citation Needed</title>
|
|
<link rel="canonical" href="https://www.mrdaviscsit.uk/my-work/extracurricular-projects/citation-needed.html">
|
|
<meta property="og:url" content="https://www.mrdaviscsit.uk/my-work/extracurricular-projects/citation-needed.html">
|
|
<meta name="twitter:description" content="The website of Mr. A. Davis, featuring a portfolio of work in computing education, digital projects, and curriculum resources. Explore blog posts, classroom tools, and professional insights focused on innovation, inclusion, and effective IT teaching.">
|
|
<meta property="og:type" content="website">
|
|
<meta name="twitter:card" content="summary">
|
|
<meta name="twitter:title" content="Mr Davis CS & IT">
|
|
<meta property="og:image" content="https://www.mrdaviscsit.uk/assets/img/projects/citation_needed/login_screen.png">
|
|
<meta name="description" content="The proper way to cite university references">
|
|
<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">
|
|
<div class="container-fluid"><a class="navbar-brand logo" href="/index.html"><img src="/assets/img/brand/logo-white.png" 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"><a class="nav-link" href="/projects.html">My Work</a></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">
|
|
<div class="container center-everything">
|
|
<div class="align-content-center heading blog-heading citationneeded-web">
|
|
<h2>Citation Needed</h2>
|
|
<p>The proper way to cite university references</p>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
<section class="portfolio-block project">
|
|
<div class="container center-everything">
|
|
<div class="swiper project-carousel" id="swiper-1" data-bss-swiper="{"direction":"horizontal","loop":true,"autoplay":{"pauseOnMouseEnter":true},"autoHeight":true,"keyboard":true,"mousewheel":true,"effect":"creative","creativeEffect":{"prev":{"shadow":true,"translate":["-20%",0,-1]},"next":{"translate":["100%",0,0]}},"pagination":{"el":".swiper-pagination","type":"bullets","clickable":true,"dynamicBullets":true},"navigation":{"nextEl":".swiper-button-next","prevEl":".swiper-button-prev"}}">
|
|
<div class="swiper-wrapper">
|
|
<div class="swiper-slide d-flex justify-content-center center-everything"><img class="img-fluid slider-image-fit" alt="Login Screen" width="2500" height="1125" src="/assets/img/projects/citation_needed/login_screen.png"></div>
|
|
<div class="swiper-slide d-flex justify-content-center center-everything"><img class="img-fluid slider-image-fit" alt="Create Bibliography Screen" width="2500" height="1125" src="/assets/img/projects/citation_needed/create_bibliography.png"></div>
|
|
<div class="swiper-slide d-flex justify-content-center center-everything"><img class="img-fluid slider-image-fit" alt="Main Bibliography Screen" width="2500" height="1125" src="/assets/img/projects/citation_needed/my_bibliography_screen.png"></div>
|
|
<div class="swiper-slide d-flex justify-content-center center-everything"><img class="img-fluid slider-image-fit" alt="Edit Bibliography Screen" width="2500" height="1125" src="/assets/img/projects/citation_needed/edit_bibliography.png"></div>
|
|
<div class="swiper-slide d-flex justify-content-center center-everything"><img class="img-fluid slider-image-fit" alt="Create Reference Screen" width="2500" height="1125" src="/assets/img/projects/citation_needed/create_reference.png"></div>
|
|
<div class="swiper-slide d-flex justify-content-center center-everything"><img class="img-fluid slider-image-fit" alt="Edit Reference Screen" width="2500" height="1125" src="/assets/img/projects/citation_needed/edit_reference.png"></div>
|
|
<div class="swiper-slide d-flex justify-content-center center-everything"><img class="img-fluid slider-image-fit" alt="View Reference Screen" width="2500" height="1125" src="/assets/img/projects/citation_needed/view_reference.png"></div>
|
|
<div class="swiper-slide d-flex justify-content-center center-everything"><img class="img-fluid slider-image-fit" alt="Account Settings Screen" width="2500" height="1125" src="/assets/img/projects/citation_needed/account_settings.png"></div>
|
|
<div class="swiper-slide d-flex justify-content-center center-everything"><img class="img-fluid slider-image-fit" alt="Delete Account Message" width="2500" height="1125" src="/assets/img/projects/citation_needed/delete_account_dialog.png"></div>
|
|
</div>
|
|
<div>
|
|
<div class="swiper-button-prev swiper-control"></div>
|
|
<div class="swiper-button-next swiper-control"></div>
|
|
</div>
|
|
<div class="swiper-pagination swiper-control"></div>
|
|
</div>
|
|
<div class="row">
|
|
<div class="col info">
|
|
<h3>Inspiration</h3>
|
|
<p>RefME got bought out my Cite This For Me and CTFM is terrible as it doesn't have the BCU-customised Harvard Referencing System. Many of the other Referencing Managers aren't that good either. We decided to fix this problem once and for all.</p>
|
|
<h3>What It Does</h3>
|
|
<p>It takes your input and converts the information you provide into a correctly formatted BCU Harvard citation - provided it's a web source.</p>
|
|
<h3>How We Built It</h3>
|
|
<p>A little bit of JS, loads of HTML, loads of CSS, loads of PHP, sprinkles of tears, a ton of swearing and loads of pain.</p>
|
|
<h3>Challenges We Ran Into</h3>
|
|
<p>PHP. Indentation. Semi-colons. Enough said.</p>
|
|
<h3>Accomplishments That We're Proud Of</h3>
|
|
<p>It works a lot better than we could have ever predicted.</p>
|
|
<h3>What We Learned</h3>
|
|
<p>Don't use PHP.</p>
|
|
<h3>What's next for Citation Needed?</h3>
|
|
<p>Extend it to other Referencing Systems and correct some of the design issues that are present. Also, finish actually building it.</p>
|
|
</div>
|
|
<div class="col-auto meta project-details">
|
|
<div class="tags"><span class="meta-heading">Hackathon</span><span>AstonHack 2017</span><span class="meta-heading">Created & Submitted</span><span>11-12 November 2017</span><span class="meta-heading">Products Created</span><span>Web Application</span><a class="btn btn-primary project-buttons" role="button" href="https://devpost.com/software/citation-needed" target="_blank">View Entry on DevPost</a><a class="btn btn-primary project-buttons" role="button" href="https://gitea.adcmnetworks.co.uk/alexander/AstonHack2017-CitationNeeded" target="_blank">View Project on Gitea</a></div>
|
|
</div>
|
|
</div>
|
|
<div class="more-projects">
|
|
<h3 class="text-center more-projects-heading">More Projects</h3>
|
|
<div data-bss-type="blog-loop" data-bss-perpage="3" style="display: none !important;">
|
|
<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 class="post-tag-extracurricular-projects col" data-bss-type="blog-loop-item">
|
|
<div class="card"><a href="/my-work/extracurricular-projects/exam-buff-or-exam-bluff.html"><img class="img-fluid card-img-top rainbow-border" alt="App Logo" width="500" height="500" src="/assets/img/projects/exam_buff%20or%20exam%20bluff/app_logo.png"></a>
|
|
<div class="card-body"><a href="/my-work/extracurricular-projects/exam-buff-or-exam-bluff.html">
|
|
<h4 class="text-body">Exam Buff or Exam Bluff</h4>
|
|
</a>
|
|
<p class="card-text">An quick and easy revision tool for both coding and theory. Only for Computer Science GCSE and above.</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="post-tag-extracurricular-projects col" data-bss-type="blog-loop-item">
|
|
<div class="card"><a href="/my-work/extracurricular-projects/i-am-aware.html"><img class="img-fluid card-img-top rainbow-border" alt="I Am Aware Cover Artwork" width="940" height="500" src="/assets/img/projects/iamaware.webp"></a>
|
|
<div class="card-body"><a href="/my-work/extracurricular-projects/i-am-aware.html">
|
|
<h4 class="text-body">I Am Aware</h4>
|
|
</a>
|
|
<p class="card-text">I Am Aware is a campaign run by BCU Mental Health Awareness that looks into the resources available for those living with mental health issues.</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="post-tag-extracurricular-projects col" data-bss-type="blog-loop-item">
|
|
<div class="card"><a href="/my-work/extracurricular-projects/societyplus.html"><img class="img-fluid card-img-top rainbow-border" alt="Society+ Homepage Preview" width="940" height="500" src="/assets/img/projects/society+/societypluspreview.png"></a>
|
|
<div class="card-body"><a href="/my-work/extracurricular-projects/societyplus.html">
|
|
<h4 class="text-body">Society+</h4>
|
|
</a>
|
|
<p class="card-text">A new way for societies to contact and administer membership.</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="post-tag-extracurricular-projects col" data-bss-type="blog-loop-item" style="display: none !important;">
|
|
<div class="card"><a href="/my-work/extracurricular-projects/sortai.html"><img class="img-fluid card-img-top rainbow-border" width="333" height="222" src="/assets/img/projects/sort.ai/sort.ai_logo.png"></a>
|
|
<div class="card-body"><a href="/my-work/extracurricular-projects/sortai.html">
|
|
<h4 class="text-body">Sort.AI</h4>
|
|
</a>
|
|
<p class="card-text">A Windows service concept that sorts your files automatically using the Google Natural Language API.
|
|
|
|
Awarded 3rd Place</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="post-tag-extracurricular-projects col" data-bss-type="blog-loop-item" style="display: none !important;">
|
|
<div class="card"><a href="/my-work/extracurricular-projects/task-master-web.html"><img class="img-fluid card-img-top rainbow-border" width="940" height="500" src="/assets/img/projects/task_master/taskmasterpreview.jpg"></a>
|
|
<div class="card-body"><a href="/my-work/extracurricular-projects/task-master-web.html">
|
|
<h4 class="text-body">Task Master for Web</h4>
|
|
</a>
|
|
<p class="card-text">A Business Oriented Task and Project Management System.
|
|
|
|
Awarded 3rd Place</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="post-tag-extracurricular-projects col" data-bss-type="blog-loop-item" style="display: none !important;">
|
|
<div class="card"><a href="/my-work/extracurricular-projects/the-computers-identity.html"><img class="img-fluid card-img-top rainbow-border" width="940" height="500" src="/assets/img/projects/the_computers_identity/identitypreview.png"></a>
|
|
<div class="card-body"><a href="/my-work/extracurricular-projects/the-computers-identity.html">
|
|
<h4 class="text-body">The Computer's Identity</h4>
|
|
</a>
|
|
<p class="card-text">An interactive poem entry for the BCU Christian Union "Where Is Identity Found" Art Competition.</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</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" data-type="regular" data-page="2"><a class="page-link" href="#">2</a></li>
|
|
<li class="page-item" data-type="next" data-page="2"><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 accreditations-title">Accreditations</h3>
|
|
<div class="swiper text-body 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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></a></div>
|
|
</div>
|
|
</div>
|
|
<div class="swiper-nav-standalone d-flex justify-content-center accreditations-navigation" data-bss-swiper-target="#light-swiper">
|
|
<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" width="50" height="50" class="footer-logo"><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 footer-copyright">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-title">Accreditations</h3>
|
|
<div class="swiper text-body w-100" id="dark-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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></a></div>
|
|
</div>
|
|
</div>
|
|
<div class="swiper-nav-standalone d-flex justify-content-center accreditations-navigation" data-bss-swiper-target="#dark-swiper">
|
|
<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" width="50" height="50" class="footer-logo"><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 footer-copyright">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> |