https://github.com/deadronos/northpole-mail
Santa NorthPoleMail IT Support
https://github.com/deadronos/northpole-mail
Last synced: about 2 months ago
JSON representation
Santa NorthPoleMail IT Support
- Host: GitHub
- URL: https://github.com/deadronos/northpole-mail
- Owner: deadronos
- License: mit
- Created: 2025-12-23T13:57:30.000Z (5 months ago)
- Default Branch: main
- Last Pushed: 2025-12-23T16:54:50.000Z (5 months ago)
- Last Synced: 2025-12-25T03:56:32.720Z (5 months ago)
- Language: TypeScript
- Homepage: https://deadronos.github.io/northpole-mail/
- Size: 1.64 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.MD
Awesome Lists containing this project
README
# NorthPole Mail â Santa's IT Helpdesk đ
đŽ
**A small, local, meme-y browser game where you play Senior Support Engineer Claus and troubleshoot ridiculous North Pole helpdesk tickets.**

---
## đ¯ What is this?
This is a playful single-player browser game built for local entertainment and demos. Tickets from reindeer, elves, and holiday characters arrive in your queue â you read the problem, respond (type or use canned replies), and the game scores you based on relevance and charm.
- The theme is intentionally meme-y: canned jokes like "It's always DNS" and cheeky responses make the experience light and funny.
- The evaluation is local and deterministic (see Developer Notes).
## Quick Start â Run locally â
**Prerequisites:** Node.js
1. Install dependencies:
```bash
npm install
```
2. Start the dev server:
```bash
npm run dev
```
3. Open your browser to: `http://localhost:3000`
> Note: The game runs fully locally. You do **not** need an API key. (There is an optional `GEMINI_API_KEY` placeholder in `vite.config.ts` if you want to experiment with AI integrations later.)
## How to Play â TL;DR đšī¸
1. Click an **Active Ticket** on the left.
2. Read the ticket body and choose a canned response or type your own solution.
3. Click **Send Solution**. The system evaluates your reply and gives a rating and comment.
4. Watch your **Score**, **Satisfaction**, and **Stress** in the header â try to keep satisfaction high and stress low!
**Tip:** Using relevant technical keywords (e.g., `dns`, `reboot`, `database`, `sudo`) usually gets better ratings.
## How it works / Developer Notes đ§
- Stack: **React**, **TypeScript**, **Vite**, and **Tailwind** (via CDN). Minimal and easy to run.
- Where to look:
- `App.tsx` â main UI & state management
- `components/Terminal.tsx` â terminal UI and logs
- `components/StatsHeader.tsx` â score / stats UI
- `services/geminiService.ts` â ticket generation & response evaluation logic
- `constants.ts` â `TICKET_POOL` & `CANNED_RESPONSES` (edit here to add custom tickets or jokes)
- Scoring: `evaluateLocalResponse` matches reply text against ticket keywords and applies rating/satisfaction/stress impacts. Customize behavior in `services/geminiService.ts`.
## Responsive & Accessibility Notes đą
- The layout is mobile-friendly: terminals are shorter on small screens, logs wrap to prevent horizontal scrolling, and footer content stacks.
- If you hit layout issues on very small devices, please open an issue and attach a screenshot.
## Contributing â¨
1. Fork the repo
2. Create a branch with a short, descriptive name
3. Open a PR with a clear summary
Keep changes focused. If you extend game logic, include unit tests for `services/geminiService.ts`.
## License & Credits
MIT â see `LICENSE.MD` for details.
Built with holiday cheer by deadronos. Pull requests, jokes, and cookies welcome. đ