aboutsummaryrefslogtreecommitdiff
path: root/uag/records
diff options
context:
space:
mode:
authorAlex Pooley (@zuedev) <zuedev@gmail.com>2026-06-05 14:20:53 +0100
committerAlex Pooley (@zuedev) <zuedev@gmail.com>2026-06-05 14:20:53 +0100
commitbc570c8d5c94004909a8b558eeece0d7a5632c7a (patch)
tree59a2f8c4b465e3b0a181cc72b53bdb44d78fe6e4 /uag/records
parentfbef52c9b523e41042517a2203f99e4ec1ddcda5 (diff)
downloadunnamed-group-bc570c8d5c94004909a8b558eeece0d7a5632c7a.tar
unnamed-group-bc570c8d5c94004909a8b558eeece0d7a5632c7a.tar.gz
unnamed-group-bc570c8d5c94004909a8b558eeece0d7a5632c7a.tar.bz2
unnamed-group-bc570c8d5c94004909a8b558eeece0d7a5632c7a.tar.xz
unnamed-group-bc570c8d5c94004909a8b558eeece0d7a5632c7a.zip
add legacy projectsHEADmaster
Diffstat (limited to 'uag/records')
-rw-r--r--uag/records/LICENSE10
-rw-r--r--uag/records/README.md72
-rw-r--r--uag/records/docs/attendance.md131
-rw-r--r--uag/records/docs/git.md142
-rw-r--r--uag/records/records/attendance/_schema.json17
-rw-r--r--uag/records/records/attendance/_template.json10
-rw-r--r--uag/records/records/reserves/328938588127625216_260125-260228.json9
-rw-r--r--uag/records/records/reserves/450105016473092097_260127-260727.json9
-rw-r--r--uag/records/records/reserves/_schema.json31
-rw-r--r--uag/records/records/reserves/_template.json9
10 files changed, 440 insertions, 0 deletions
diff --git a/uag/records/LICENSE b/uag/records/LICENSE
new file mode 100644
index 0000000..cde4ac6
--- /dev/null
+++ b/uag/records/LICENSE
@@ -0,0 +1,10 @@
+This is free and unencumbered software released into the public domain.
+
+Anyone is free to copy, modify, publish, use, compile, sell, or distribute this software, either in source code form or as a compiled binary, for any purpose, commercial or non-commercial, and by any means.
+
+In jurisdictions that recognize copyright laws, the author or authors of this software dedicate any and all copyright interest in the software to the public domain. We make this dedication for the benefit of the public at large and to the detriment of our heirs and
+successors. We intend this dedication to be an overt act of relinquishment in perpetuity of all present and future rights to this software under copyright law.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+For more information, please refer to <http://unlicense.org/>
diff --git a/uag/records/README.md b/uag/records/README.md
new file mode 100644
index 0000000..4d2db4b
--- /dev/null
+++ b/uag/records/README.md
@@ -0,0 +1,72 @@
+# records
+
+> Publicly-auditable records of multiple types.
+
+## Overview
+
+This repository contains a collection of publicly-auditable records of various types. The records are organized in a structured format to facilitate easy access and verification. All records are maintained in a transparent manner to ensure their integrity and authenticity.
+
+## Record Types
+
+Each type of record is stored in its own directory along with relevant metadata files.
+
+The following record types are included:
+
+### [Attendance](records/attendance/)
+
+Records of attendance for official UAG sessions.
+
+Each record includes:
+
+- Unique identifier for the session
+- Array of attendees' Discord IDs
+
+An example record for a session taking place on the 1st of February 2025 looks like this:
+
+**250201.json**
+
+```json
+{
+ "session": "250201",
+ "members": ["76561198000000001", "76561198000000002", "76561198000000003"]
+}
+```
+
+Another example record for a session taking place on the 15th of February 2025 and it's the second session of the day looks like this:
+
+**250215-2.json**
+
+```json
+{
+ "session": "250215-2",
+ "members": ["76561198000000001", "76561198000000004"]
+}
+```
+
+### [Reserves](records/reserves/)
+
+Records of users who have volunteered to join the reserves for a specific period of time.
+
+Each record includes:
+
+- Discord ID of the member going into reserves
+- Start date of the reserve period (YYMMDD)
+- End date of the reserve period (YYMMDD)
+- Reason for going into reserves
+- Date a staff member was notified
+- Discord ID of the staff member who approved the reserve request
+
+An example record for a member going into reserves from the 1st of March 2025 to the 31st of March 2025 looks like this:
+
+**76561198000000001_250301-250331.json**
+
+```json
+{
+ "member": "76561198000000001",
+ "start_date": "250301",
+ "end_date": "250331",
+ "reason": "Personal reasons.",
+ "notified_on": "250225",
+ "approved_by": "76561198000000099"
+}
+```
diff --git a/uag/records/docs/attendance.md b/uag/records/docs/attendance.md
new file mode 100644
index 0000000..fb009d5
--- /dev/null
+++ b/uag/records/docs/attendance.md
@@ -0,0 +1,131 @@
+# How to Take Attendance
+
+This guide explains how to record attendance for UAG sessions.
+
+## Prerequisites
+
+Before you begin, make sure you have:
+
+- [ ] Git installed and configured on your computer (see [git.md](git.md) for setup instructions)
+- [ ] A cloned copy of the records repository
+- [ ] A text editor (VS Code recommended)
+
+## Understanding Attendance Records
+
+Each attendance record is a JSON file stored in the `records/attendance/` folder. The file contains:
+
+- **session**: A unique identifier in the format `YYMMDD` (or `YYMMDD-#` if there are multiple sessions on the same day)
+- **members**: A list of Discord user IDs for everyone who attended
+
+## Step-by-Step Guide
+
+### Step 1: Get the Latest Records
+
+Open a terminal in your repository folder and run:
+
+```bash
+git pull
+```
+
+This ensures you have the most up-to-date version of the records.
+
+### Step 2: Create a New Attendance File
+
+1. Navigate to the `records/attendance/` folder
+2. Create a new file named with the session date in `YYMMDD.json` format
+
+**Example:** For a session on January 31st, 2026, create a file named `260131.json`
+
+> **Note:** If there are multiple sessions on the same day, add a number suffix: `260131-2.json`, `260131-3.json`, etc.
+
+### Step 3: Add the Attendance Data
+
+Copy this template into your new file:
+
+```json
+{
+ "$schema": "./_schema.json",
+ "session": "YYMMDD",
+ "members": ["discord_id_1", "discord_id_2", "discord_id_3"]
+}
+```
+
+Then fill in the details:
+
+1. Replace `YYMMDD` with the actual session date (e.g., `260131`)
+2. Replace the example Discord IDs with the actual IDs of members who attended
+
+### Step 4: Get Discord User IDs
+
+To find someone's Discord user ID:
+
+1. Open Discord
+2. Go to **User Settings** → **Advanced** → Enable **Developer Mode**
+3. Right-click on a user's name
+4. Click **Copy User ID**
+
+### Step 5: Save and Verify
+
+1. Save your file
+2. Make sure the JSON is valid:
+ - All strings are in double quotes `"like this"`
+ - Items in the array are separated by commas
+ - No trailing comma after the last item
+
+**Example of a completed attendance file (`260131.json`):**
+
+```json
+{
+ "$schema": "./_schema.json",
+ "session": "260131",
+ "members": ["328938588127625216", "723361818940276736", "123456789012345678"]
+}
+```
+
+### Step 6: Commit and Push Your Changes
+
+Open a terminal in the repository folder and run these commands:
+
+```bash
+git add records/attendance/260131.json
+git commit -m "Add attendance for session 260131"
+git push
+```
+
+Replace `260131` with your actual session date.
+
+## Quick Reference
+
+| Field | Format | Example |
+| ---------- | -------------------------------- | ------------------------------ |
+| Filename | `YYMMDD.json` or `YYMMDD-#.json` | `260131.json`, `260131-2.json` |
+| Session ID | `YYMMDD` or `YYMMDD-#` | `260131`, `260131-2` |
+| Discord ID | 17-19 digit number as string | `"328938588127625216"` |
+
+## Troubleshooting
+
+### "Invalid JSON" Error
+
+Common JSON mistakes:
+
+- Missing quotes around strings
+- Missing comma between array items
+- Extra comma after the last item in the array
+- Using single quotes instead of double quotes
+
+### Git Push Fails
+
+1. Make sure you've pulled the latest changes first: `git pull`
+2. Check that you're authenticated properly
+3. See [git.md](git.md) for more Git troubleshooting
+
+### Multiple Sessions on Same Day
+
+If you're recording a second (or third, etc.) session on the same day:
+
+1. Name the file with a suffix: `260131-2.json`
+2. Update the session field to match: `"session": "260131-2"`
+
+## Questions?
+
+If you're unsure about anything, ask a team member before submitting. It's better to ask than to submit incorrect records!
diff --git a/uag/records/docs/git.md b/uag/records/docs/git.md
new file mode 100644
index 0000000..0172697
--- /dev/null
+++ b/uag/records/docs/git.md
@@ -0,0 +1,142 @@
+# Git Setup Guide
+
+This guide will help you install and configure Git so you can contribute to the records repository.
+
+## What is Git?
+
+Git is a version control system that tracks changes to files. It allows multiple people to work on the same project without overwriting each other's work, and keeps a complete history of all changes.
+
+## Installing Git
+
+### Windows
+
+1. Download the Git installer from [git-scm.com](https://git-scm.com/download/win)
+2. Run the downloaded `.exe` file
+3. Follow the installation wizard:
+ - Accept the license agreement
+ - Use the default installation location (or choose your own)
+ - **Important settings to note:**
+ - Select "Git from the command line and also from 3rd-party software"
+ - Select "Use Visual Studio Code as Git's default editor" (if you have VS Code)
+ - Select "Override the default branch name" and set it to `main`
+ - Keep other settings as default
+4. Click **Install** and wait for it to complete
+5. Click **Finish**
+
+### Verify Installation
+
+Open a terminal (Command Prompt, PowerShell, or VS Code terminal) and run:
+
+```bash
+git --version
+```
+
+You should see something like `git version 2.x.x`.
+
+## First-Time Git Configuration
+
+Before you can use Git, you need to tell it who you are. Run these commands in your terminal (replace with your actual information):
+
+```bash
+git config --global user.name "Your Name"
+git config --global user.email "your.email@example.com"
+```
+
+## Cloning the Repository
+
+"Cloning" means downloading a copy of the repository to your computer.
+
+1. Open a terminal
+2. Navigate to where you want to store the project:
+ ```bash
+ cd C:\Users\YourName\Documents
+ ```
+3. Clone the repository:
+ ```bash
+ git clone <repository-url>
+ ```
+4. Enter the project folder:
+ ```bash
+ cd records
+ ```
+
+## Basic Git Workflow
+
+Here's the typical workflow when making changes:
+
+### 1. Check Your Status
+
+See what files have changed:
+
+```bash
+git status
+```
+
+### 2. Pull Latest Changes
+
+Before making changes, always get the latest version:
+
+```bash
+git pull
+```
+
+### 3. Make Your Changes
+
+Edit or create files as needed (see [attendance.md](attendance.md) for attendance-specific instructions).
+
+### 4. Stage Your Changes
+
+Tell Git which files you want to include in your commit:
+
+```bash
+# Add a specific file
+git add records/attendance/260131.json
+
+# Or add all changed files
+git add .
+```
+
+### 5. Commit Your Changes
+
+Save your changes with a descriptive message:
+
+```bash
+git commit -m "Add attendance for session 260131"
+```
+
+### 6. Push Your Changes
+
+Upload your changes to the remote repository:
+
+```bash
+git push
+```
+
+## Common Issues
+
+### "Permission denied" or Authentication Errors
+
+You may need to set up authentication. The easiest way is:
+
+1. When prompted, enter your username
+2. For the password, you'll likely need a **Personal Access Token** instead of your actual password
+ - Check your Git hosting platform's documentation for creating tokens
+
+### "Please tell me who you are"
+
+Run the configuration commands from the [First-Time Git Configuration](#first-time-git-configuration) section.
+
+### Merge Conflicts
+
+If someone else changed the same file you did:
+
+1. Git will tell you there's a conflict
+2. Open the conflicting file and look for markers like `<<<<<<< HEAD`
+3. Edit the file to resolve the conflict
+4. Save, then `git add` and `git commit` the resolved file
+
+## Need More Help?
+
+- [Official Git Documentation](https://git-scm.com/doc)
+- [GitHub's Git Guides](https://github.com/git-guides)
+- Ask a team member for assistance
diff --git a/uag/records/records/attendance/_schema.json b/uag/records/records/attendance/_schema.json
new file mode 100644
index 0000000..1493ab7
--- /dev/null
+++ b/uag/records/records/attendance/_schema.json
@@ -0,0 +1,17 @@
+{
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
+ "$comment": "This schema defines the structure for UAG attendance records.",
+ "session": {
+ "type": "string",
+ "format": "string",
+ "description": "The unique identifier for the session made up of date and optional uid in the format YYMMDD[-uid]."
+ },
+ "members": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ "format": "string"
+ },
+ "description": "An array of members who attended the session identified by their Discord user IDs."
+ }
+}
diff --git a/uag/records/records/attendance/_template.json b/uag/records/records/attendance/_template.json
new file mode 100644
index 0000000..0996a7f
--- /dev/null
+++ b/uag/records/records/attendance/_template.json
@@ -0,0 +1,10 @@
+{
+ "$schema": "./_schema.json",
+ "session": "YYMMDD",
+ "members": [
+ "member1_discord_id",
+ "member2_discord_id",
+ "member3_discord_id",
+ "member4_discord_id"
+ ]
+}
diff --git a/uag/records/records/reserves/328938588127625216_260125-260228.json b/uag/records/records/reserves/328938588127625216_260125-260228.json
new file mode 100644
index 0000000..d11ee13
--- /dev/null
+++ b/uag/records/records/reserves/328938588127625216_260125-260228.json
@@ -0,0 +1,9 @@
+{
+ "$schema": "./_schema.json",
+ "member": "328938588127625216",
+ "start_date": "260125",
+ "end_date": "260228",
+ "reason": "Going away.",
+ "notified_on": "260125",
+ "approved_by": "723361818940276736"
+}
diff --git a/uag/records/records/reserves/450105016473092097_260127-260727.json b/uag/records/records/reserves/450105016473092097_260127-260727.json
new file mode 100644
index 0000000..4785efd
--- /dev/null
+++ b/uag/records/records/reserves/450105016473092097_260127-260727.json
@@ -0,0 +1,9 @@
+{
+ "$schema": "./_schema.json",
+ "member": "450105016473092097",
+ "start_date": "260127",
+ "end_date": "260727",
+ "reason": "Moved out, don't have access to pc",
+ "notified_on": "260127",
+ "approved_by": "723361818940276736"
+} \ No newline at end of file
diff --git a/uag/records/records/reserves/_schema.json b/uag/records/records/reserves/_schema.json
new file mode 100644
index 0000000..5b4a234
--- /dev/null
+++ b/uag/records/records/reserves/_schema.json
@@ -0,0 +1,31 @@
+{
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
+ "$comment": "This schema defines the structure for UAG reserves data.",
+ "discord_id": {
+ "type": "string",
+ "description": "The Discord ID of the member joining the reserves."
+ },
+ "start_date": {
+ "type": "string",
+ "format": "date",
+ "description": "The start date of the reserve period in YYMMDD format."
+ },
+ "end_date": {
+ "type": "string",
+ "format": "date",
+ "description": "The end date of the reserve period in YYMMDD format."
+ },
+ "reason": {
+ "type": "string",
+ "description": "The reason for going into reserves."
+ },
+ "notified_on": {
+ "type": "string",
+ "format": "date",
+ "description": "The date a staff member was notified about the reserve."
+ },
+ "approved_by": {
+ "type": "string",
+ "description": "The Discord ID of the staff member who approved the reserve request."
+ }
+}
diff --git a/uag/records/records/reserves/_template.json b/uag/records/records/reserves/_template.json
new file mode 100644
index 0000000..007665b
--- /dev/null
+++ b/uag/records/records/reserves/_template.json
@@ -0,0 +1,9 @@
+{
+ "$schema": "./_schema.json",
+ "discord_id": "member_discord_id",
+ "start_date": "YYMMDD",
+ "end_date": "YYMMDD",
+ "reason": "reason_for_reserves",
+ "notified_on": "YYMMDD",
+ "approved_by": "approving_staff_discord_id"
+}