![Tarot Time Preview](https://code.glowers.club/goyimnose/tarot-time/raw/branch/master/asset/img/index.webp) # Tarot Time A web-based esoteric correspondence app for tarot, astrology, calendars, symbols, and related systems. [![Node.js](https://img.shields.io/badge/Node.js-18%2B-5FA04E?logo=node.js&logoColor=white)](https://nodejs.org/) [![Git](https://img.shields.io/badge/VCS-Git-F05032?logo=git&logoColor=white)](https://git-scm.com/) [![Forgejo Repo](https://img.shields.io/badge/Forgejo-tarot--time-0E9384?logo=forgejo&logoColor=white)](https://code.glowers.club/goyimnose/tarot-time) [![Deck Repository](https://img.shields.io/badge/Decks-tarot--deck-1D4ED8)](https://code.glowers.club/goyimnose/tarot-deck) ## Features - Correspondence explorer for multiple occult/esoteric systems. - Tarot deck support via a generated deck registry. - Pluggable deck structure using per-deck `deck.json` manifests. - Fast local static serving with `http-server`. ## Quick Start 1. Install Node.js: https://nodejs.org/en/download 2. Clone this repository. 3. Install dependencies. 4. Start the app. ```powershell git clone https://code.glowers.club/goyimnose/tarot-time.git Set-Location .\tarot-time npm install npm run start ``` The app opens in your browser (typically at `http://127.0.0.1:8080`). ## Deck Repository (Install Ready) Use this companion repository for downloadable decks: - https://code.glowers.club/goyimnose/tarot-deck Typical flow: 1. Clone the deck repository somewhere local. 2. Copy a deck folder into `asset/tarot deck/` (repeat for more decks as needed). 3. Start the app to pick up the deck list. ```powershell git clone https://code.glowers.club/goyimnose/tarot-deck.git # Copy a deck folder into asset/tarot deck/. npm run start ``` Auto-discovery behavior: - Deck ID is automatically inferred from the deck folder path when possible. - Deck name is automatically generated from the ID when no label is provided. - Example: `rider-waite-smith` becomes `Rider Waite Smith`. ## Deck Authoring and Validation Deck discovery is folder-driven and automatic. 1. Copy `asset/tarot deck/_template/` to a new folder under `asset/tarot deck/`. 2. Rename the folder to the deck ID you want (for example `thoth-crowley`). 3. Update `deck.json` and add card image files matching the naming rules in the manifest. 4. `label` in `deck.json` is optional; when omitted, a readable name is auto-generated from the folder-based ID. 5. Run `npm run start` and confirm the deck appears in Settings → Tarot Deck. Rules and behavior: - Folders without `deck.json` are ignored. - Folders beginning with `_` or `.` are ignored (safe for `_template`). - `_template` includes `deck.canonical-map.example.json` for explicit major-card file mapping. - `_template/STRUCTURE.md` documents recommended `majors/` and `minors/` layouts. - Decks can define `cardBack` in `deck.json`; if omitted, `back.webp/png/jpg/jpeg/avif/gif` in the deck root is auto-detected. - Manifests may override labels with `nameOverrides` and `minorNameOverrides`. - Invalid manifests or missing mapped files are skipped with terminal warnings. - If a deck entry does not include an explicit ID, the app derives it from the manifest path/folder. ## NPM Scripts | Command | Description | | --- | --- | | `npm run start` | Serve the app locally and open `index.html`. | | `npm run dev` | Alias of `npm run start`. | ## Project Links - Main app: https://code.glowers.club/goyimnose/tarot-time - Deck repo: https://code.glowers.club/goyimnose/tarot-deck