-
Notifications
You must be signed in to change notification settings - Fork 1
docs: add repository guidelines and documentation #31
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
e8373d8
3352a26
b8d0a7c
9dcdea4
6a5c0d3
f4cb7bf
1dc17ba
1f0ef93
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -31,3 +31,4 @@ Thumbs.db | |
|
|
||
| # Build / Release | ||
| dist/ | ||
| relay | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,42 @@ | ||
| # AGENTS.md | ||
|
|
||
| Instructions for AI coding agents working in this repository. | ||
|
|
||
| ## Project Overview | ||
|
|
||
| ThruBox Server is a self-hostable relay server acting as a "dumb encrypted mailbox": it stores and forwards opaque encrypted payloads via a REST API. It never sees plaintext — all encryption/decryption happens client-side in the [ThruBox Client SDK](https://github.com/AOSSIE-Org/ThruBox-Client) or other consumers. | ||
|
|
||
| ## Repository Layout | ||
|
|
||
| - `cmd/relay/` — server entrypoint | ||
| - Storage: embedded SQLite (WAL mode) via `mattn/go-sqlite3` | ||
| - `public/` — logo assets referenced by README | ||
| - `brand/` — logo, favicons, and brand guidelines (see `brand/Brand.md`) | ||
|
|
||
| ## Build, Test & Lint | ||
|
|
||
| ```bash | ||
| go mod download | ||
| go build -o relay-server ./cmd/relay | ||
| go vet ./... | ||
| go test ./... | ||
| ./relay-server # run in a separate terminal — this blocks | ||
| ``` | ||
|
coderabbitai[bot] marked this conversation as resolved.
|
||
|
|
||
| Docker: | ||
|
|
||
| ```bash | ||
|
coderabbitai[bot] marked this conversation as resolved.
|
||
| docker compose up -d | ||
| ``` | ||
|
|
||
| **Note:** there are no `_test.go` files in the repository yet. If you add functionality, add tests alongside it — don't rely on this note as an excuse to skip tests. | ||
|
|
||
| ## Hard Constraints | ||
|
|
||
| - Keep runtime dependencies minimal: standard library `net/http` plus `mattn/go-sqlite3`, `google/uuid`, and `yaml.v3` (see `go.mod`) — don't add a web framework, ORM, or other new dependency without discussing it in an issue first. | ||
| - All SQL must be parameterized (no string-concatenated queries) — this is a relay storing arbitrary payloads, so injection surface must stay closed. | ||
| - The server must never decrypt or inspect message payloads; it only stores/forwards opaque blobs. | ||
|
|
||
| ## Conventions | ||
|
|
||
| - Configuration is read from `config.yaml` or environment variables (see the table in `README.md` "Configuration") — don't hardcode values that are already configurable. | ||
Large diffs are not rendered by default.
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,25 @@ | ||
| # Maintainers, Mentors and Ideators | ||
|
|
||
| This document lists the individuals fulfilling the key roles of [Maintainer](https://github.com/AOSSIE-Org/Info/blob/main/Roles/Maintainer.md), [Mentor](https://github.com/AOSSIE-Org/Info/blob/main/Roles/Mentors.md) and [Ideator](https://github.com/AOSSIE-Org/Info/blob/main/Roles/Ideator.md) for this repository, in accordance with [AOSSIE's Role Definitions](https://github.com/AOSSIE-Org/Info/tree/main/Roles). | ||
|
Atharva0506 marked this conversation as resolved.
|
||
|
|
||
| --- | ||
|
|
||
| > **Note:** If multiple contributors are fulfilling a role in a single repository, please include and fill out the extra columns to clarify responsibilities (e.g., `Project / Feature Idea`, `Area / Focus`, and `Proposal / Discussion Link` for Ideators; `Area / Focus` for Mentors and Maintainers). If there is only one person for a role, do not add these columns. | ||
|
|
||
| ## Mentors | ||
|
|
||
| | Name | GitHub Username | Discord Username | | ||
| | ----- | ---------------- | ------------------ | | ||
| | Bruno | @Zahnentferner | @b.wp | | ||
|
|
||
| ## Maintainers | ||
|
|
||
| | Name | GitHub Username | Discord Username | Area / Focus | | ||
| | ------- | ------------------- | ------------------ | ----------------------------------- | | ||
| | Atharva | @Atharva0506 | @atharva0506 | Repository Maintenance & Merging | | ||
| | Karan | @kumawatkaran523 | @karankk9616 | Repository Maintenance & Merging | | ||
| | Aditya | @adityabhattad2021 | @adityabhattad | Repository Maintenance & Merging | | ||
|
Atharva0506 marked this conversation as resolved.
|
||
|
|
||
| ## Ideators | ||
|
|
||
| _No Ideators are currently assigned to this repository._ | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,43 @@ | ||
| # ThruBox Brand Kit | ||
|
|
||
| This folder is the canonical source for ThruBox's visual identity: logos, favicons/icons, and color palette. All assets referenced below live in this `brand/` folder. `README.md` embeds its own copies of the two logo SVGs under `public/` — keep those in sync with the originals here if the brand mark changes. | ||
|
|
||
| ## Logo | ||
|
|
||
| | Asset | File | | ||
| | --- | --- | | ||
| | ThruBox logo (SVG, with wordmark) | [`thrubox-logo.svg`](./thrubox-logo.svg) | | ||
| | AOSSIE org logo (SVG) | [`aossie-logo.svg`](./aossie-logo.svg) | | ||
|
|
||
| The ThruBox mark is a Menger-sponge-style cube made of green tessellated tiles wrapped around a padlock, representing an encrypted "box" relaying data between clients. | ||
|
|
||
| ## Favicons & Icons | ||
|
|
||
| Generated from `thrubox-logo.svg` at the standard sizes used across browsers, bookmarks, and mobile home screens: | ||
|
|
||
| | File | Size | Use | | ||
| | --- | --- | --- | | ||
| | [`favicon.ico`](./favicon.ico) | 16/32/48 (multi-res) | Classic browser favicon | | ||
| | [`favicon-16x16.png`](./favicon-16x16.png) | 16×16 | Browser tab | | ||
| | [`favicon-32x32.png`](./favicon-32x32.png) | 32×32 | Browser tab (HiDPI) | | ||
| | [`favicon-48x48.png`](./favicon-48x48.png) | 48×48 | Windows taskbar | | ||
| | [`apple-touch-icon.png`](./apple-touch-icon.png) | 180×180 | iOS home screen | | ||
| | [`icon-512.png`](./icon-512.png) | 512×512 | PWA manifest / app icon | | ||
|
|
||
| This server itself has no bundled web UI (it's a headless REST API) — the favicons/icons here aren't consumed by any application HTML, only by the repo's own README and any external dashboards, status pages, or documentation sites built around this server. | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win Correct the README consumer statement.
Proposed wording-This server itself has no bundled web UI (it's a headless REST API) — the favicons/icons here aren't consumed by any application HTML, only by the repo's own README and any external dashboards, status pages, or documentation sites built around this server.
+This server itself has no bundled web UI (it's a headless REST API). The synchronized logo copies under `public/` are consumed by the repository README. The favicon and icon assets in this folder are available for external dashboards, status pages, or documentation sites built around this server.🤖 Prompt for AI Agents |
||
|
|
||
| ## Color Palette | ||
|
|
||
| Sourced directly from `thrubox-logo.svg` (shared with [ThruBox-Client](https://github.com/AOSSIE-Org/ThruBox-Client)): | ||
|
|
||
| | Swatch | Name | Hex | Usage in logo | | ||
| | --- | --- | --- | --- | | ||
| | 🟩 | ThruBox Green (light) | `#3eb03e` | Sponge tile — top face | | ||
| | 🟩 | ThruBox Green (mid) | `#228B22` | Sponge tile — front face, wordmark | | ||
| | 🟩 | ThruBox Green (dark) | `#145A14` | Sponge tile — side face | | ||
| | ⬛ | Outline | `#0f420f` | Tile stroke | | ||
| | 🟨 | Lock Gold | `#FFC517` | Padlock accent, sourced from `thrubox-logo.svg` | | ||
|
|
||
| ## Typography | ||
|
|
||
| This is a non-UI project (headless Go relay server) — there is no application typography to document. The wordmark in `thrubox-logo.svg` uses `'Arial Black', system-ui, sans-serif` at weight 900 as a logotype only. | ||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
📐 Maintainability & Code Quality | 🟠 Major | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
Repository: AOSSIE-Org/ThruBox-Server
Length of output: 193
🏁 Script executed:
Repository: AOSSIE-Org/ThruBox-Server
Length of output: 11804
Anchor the
relayignore rule to the repository root.The current rule ignores
cmd/relayand its files. Change it to/relayif it targets a root-level build artifact.Proposed fix
📝 Committable suggestion
🤖 Prompt for AI Agents