Skip to content

Commit 7e34ed6

Browse files
authored
Merge pull request #11 from GilbN/chore/rename-repo
Rename repo to nsf-timer
2 parents 282e339 + ecb4241 commit 7e34ed6

20 files changed

Lines changed: 94 additions & 90 deletions

.devcontainer/devcontainer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"name": "OPK Timer",
2+
"name": "NSF Timer",
33
"dockerComposeFile": "docker-compose.yml",
44
"service": "app",
55
"workspaceFolder": "/workspace",

CLAUDE.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ No test runner or linter is configured.
2020

2121
## Architecture Overview
2222

23-
OPK Timer is a **Svelte 5 + Vite PWA** for running synchronized NSF 25m shooting competition timers across multiple devices via a WebSocket relay server.
23+
NSF Timer is a **Svelte 5 + Vite PWA** for running synchronized NSF 25m shooting competition timers across multiple devices via a WebSocket relay server.
2424

2525
### Host/Client model
2626

@@ -31,7 +31,7 @@ The app uses a strict host/client topology:
3131
- Room codes avoid ambiguous characters (no O, 0, I, 1, L).
3232
- The relay server (`server/index.js`) is stateless except for an in-memory room registry and a cached last `STATE_SYNC` per room for fast reconnection.
3333

34-
Global singletons `window.__opkHost` (SocketHost), `window.__opkClient` (SocketClient), and `window.__opkScheduler` (TimerScheduler) hold the active connection/scheduler. These are set in `App.svelte` during session creation or restore.
34+
Global singletons `window.__nsfHost` (SocketHost), `window.__nsfClient` (SocketClient), and `window.__nsfScheduler` (TimerScheduler) hold the active connection/scheduler. These are set in `App.svelte` during session creation or restore.
3535

3636
### State flow
3737

@@ -70,11 +70,11 @@ Programs (defined in `registry.js`) have `stages[]` → `exercises[]`. Each exer
7070
- **`rapid`**: hidden phase (`targetHiddenTime`) then visible phase (`timePerSeries`)
7171
- **`duell`**: repeated hidden/visible cycles (`targetHiddenTime`/`targetVisibleTime`) with `shotsPerShowing` shots each cycle
7272

73-
Custom programs are stored in localStorage under key `opk-timer-custom-programs`.
73+
Custom programs are stored in localStorage under key `nsf-timer-custom-programs`.
7474

7575
### Session persistence
7676

77-
On page load, `App.svelte` calls `restoreSession()` which reads `localStorage` for room and timer state and attempts to reconnect or reclaim the host's room code. All localStorage keys are prefixed with `opk-timer-`.
77+
On page load, `App.svelte` calls `restoreSession()` which reads `localStorage` for room and timer state and attempts to reconnect or reclaim the host's room code. All localStorage keys are prefixed with `nsf-timer-`.
7878

7979
### Malfunction (jam) rules
8080

README.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# OPK Timer
1+
# NSF Timer
22

33
Synchronized timer for NSF 25m shooting competitions. Built as a Progressive Web App — install it on any phone, tablet, or computer and run competitions across multiple devices via a WebSocket relay server.
44

@@ -26,7 +26,7 @@ Synchronized timer for NSF 25m shooting competitions. Built as a Progressive Web
2626
The Docker image bundles the Svelte frontend and WebSocket relay server into a single container. Nginx serves the static files and proxies `/ws` to the Node.js relay server internally.
2727

2828
```bash
29-
docker run -d -p 80:80 ghcr.io/gilbn/opk-timer:latest
29+
docker run -d -p 80:80 ghcr.io/gilbn/nsf-timer:latest
3030
```
3131

3232
Access the app at `http://<server-ip>/`.
@@ -36,7 +36,7 @@ For internet-facing deployments, restrict WebSocket origins:
3636
```bash
3737
docker run -d -p 80:80 \
3838
-e WS_ALLOWED_ORIGINS=https://timer.example.com \
39-
ghcr.io/gilbn/opk-timer:latest
39+
ghcr.io/gilbn/nsf-timer:latest
4040
```
4141

4242
For HTTPS, place the container behind a reverse proxy (e.g. Caddy, Traefik, nginx Proxy Manager) that handles TLS termination. The app automatically upgrades to `wss://` when served over HTTPS.
@@ -45,8 +45,8 @@ For HTTPS, place the container behind a reverse proxy (e.g. Caddy, Traefik, ngin
4545

4646
```yaml
4747
services:
48-
opk-timer:
49-
image: ghcr.io/gilbn/opk-timer:latest
48+
nsf-timer:
49+
image: ghcr.io/gilbn/nsf-timer:latest
5050
ports:
5151
- "80:80"
5252
restart: unless-stopped

index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
<link rel="preconnect" href="https://fonts.googleapis.com" />
1212
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
1313
<link href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;700;900&family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet" />
14-
<title>OPK Timer</title>
14+
<title>NSF Timer</title>
1515
</head>
1616
<body>
1717
<div id="app"></div>

package-lock.json

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"name": "opk-timer",
2+
"name": "nsf-timer",
33
"private": true,
44
"version": "1.0.0",
55
"type": "module",

server/fly.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
# fly.toml app configuration file generated for opk-timer on 2026-04-08T18:19:38Z
1+
# fly.toml app configuration file generated for nsf-timer on 2026-04-08T18:19:38Z
22
#
33
# See https://fly.io/docs/reference/configuration/ for information about how to use this file.
44
#
55

6-
app = 'opk-timer'
6+
app = 'nsf-timer'
77
primary_region = 'iad'
88

99
[build]

server/index.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -285,4 +285,4 @@ wss.on('connection', (ws) => {
285285

286286
startHeartbeat(wss)
287287

288-
console.log(`opk-timer relay server listening on ws://localhost:${WS_PORT}`)
288+
console.log(`nsf-timer relay server listening on ws://localhost:${WS_PORT}`)

server/package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

server/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"name": "opk-timer-server",
2+
"name": "nsf-timer-server",
33
"private": true,
44
"type": "module",
55
"scripts": {

0 commit comments

Comments
 (0)