Repository navigation
Expand file tree
/
Copy pathprojects.html
More file actions
147 lines (133 loc) · 5.11 KB
/
Copy pathprojects.html
File metadata and controls
147 lines (133 loc) · 5.11 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
<!DOCTYPE html>
<html lang="en" data-theme="dark">
<head>
<meta charset="UTF-8" />
<title>Projects — Rob Williams</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="description"
content="Rob Williams — projects built in public. A hand-coded portfolio site live now, with a Python network scanner, automation utilities, and an Active Directory lab in the pipeline." />
<link rel="stylesheet" href="style.css" />
<!-- Preconnect: opens the CDN connection while the HTML is still parsing -->
<link rel="preconnect" href="https://cdnjs.cloudflare.com" crossorigin />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/css/all.min.css"
integrity="sha384-PPIZEGYM1v8zp5Py7UjFb79S58UeqCL9pYVnVPURKEqvioPROaVAJKKLzvH2rDnI"
crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
<body>
<a class="skip-link" href="#main">Skip to main content</a>
<header class="site-header">
<a href="index.html" class="logo">
RW <span class="logo-dot"></span>
</a>
<div class="header-controls">
<div class="theme-switcher">
<span class="theme-label">Theme</span>
<button id="theme-toggle" class="theme-toggle" type="button" aria-label="Toggle colour theme">
<span class="theme-icon" aria-hidden="true">🌙</span>
</button>
</div>
<button class="menu-toggle" type="button" aria-label="Toggle navigation" aria-expanded="false"
aria-controls="site-nav">
<span class="menu-toggle-bar"></span>
<span class="menu-toggle-bar"></span>
<span class="menu-toggle-bar"></span>
</button>
<nav class="main-nav" id="site-nav">
<a href="index.html#about">About</a>
<a href="index.html#overview">Overview</a>
<a href="index.html#contact">Contact</a>
</nav>
</div>
</header>
<main id="main">
<section class="page-header">
<p class="eyebrow"><a href="index.html#overview">← Back to Overview</a></p>
<h1>Projects</h1>
</section>
<section class="section">
<p>
Everything here follows one rule carried over from 24 years of
engineering: don't claim what you can't show. One project is live
and public; the rest are queued behind the CPSA exam on 25 July —
study holds priority until then.
</p>
</section>
<section class="section">
<h2>Live</h2>
<ul class="quals-list">
<li>
<strong>This site</strong> — a hand-coded portfolio with a
deliberate constraint: a fresh clone must run from
<code>index.html</code> with zero commands. No framework, no build
step. Vanilla HTML, CSS, and JavaScript; light/dark theming via CSS
custom properties; a Chart.js skills radar with keyboard-accessible
mode switching; WCAG AA contrast in both themes; and
integrity-pinned CDN dependencies — supply-chain hygiene starts at
home. The full working — mistakes, fixes, commit history — is
public on
<a href="https://github.com/Rob-JW/portfolio" target="_blank"
rel="noreferrer">GitHub</a>.
</li>
</ul>
</section>
<section class="section">
<h2>In the pipeline</h2>
<p>
Planned builds, in intended order. Each one lands here with a
write-up — purpose, tooling, and what building it taught me —
once there is real code to show.
</p>
<ul class="quals-list">
<li>
<strong>Network scanner (Python)</strong> — planned. A socket-level
TCP port scanner built from first principles before reaching for
Nmap: understanding what the tool does beats memorising its flags.
</li>
<li>
<strong>Python study utilities</strong> — planned. Small automation
scripts from my daily study workflow — question-bank drills and
revision tooling — cleaned up and published.
</li>
<li>
<strong>Active Directory lab</strong> — planned. A small
domain environment for attack and defence practice, feeding the
write-ups page as labs are completed.
</li>
</ul>
</section>
<section id="contact" class="section">
<h2>Contact</h2>
<ul class="contact-list contact-icons">
<li>
<a href="https://linkedin.com/in/rob-jw" target="_blank" rel="noreferrer" class="contact-icon-link"
aria-label="LinkedIn profile">
<i class="fa-brands fa-linkedin-in" aria-hidden="true"></i>
</a>
</li>
<li>
<a href="https://github.com/Rob-JW" target="_blank" rel="noreferrer" class="contact-icon-link"
aria-label="GitHub profile">
<i class="fa-brands fa-github" aria-hidden="true"></i>
</a>
</li>
<li>
<a href="https://robwilliams.link/" target="_blank" rel="noreferrer" class="contact-icon-link"
aria-label="Personal site">
<i class="fa-solid fa-globe" aria-hidden="true"></i>
</a>
</li>
<li>
<a href="mailto:williams5886@gmail.com" class="contact-icon-link" aria-label="Send email">
<i class="fa-solid fa-envelope" aria-hidden="true"></i>
</a>
</li>
</ul>
</section>
</main>
<footer class="site-footer">
<span>© <span id="year"></span> Rob Williams</span>
<span class="footer-dot">Built with pixels & packets.</span>
</footer>
<script src="script.js"></script>
</body>
</html>