{"id":29617094,"url":"https://github.com/alanverbner/challenge-landing","last_synced_at":"2025-07-21T01:33:12.980Z","repository":{"id":305223897,"uuid":"1020418101","full_name":"AlanVerbner/challenge-landing","owner":"AlanVerbner","description":null,"archived":false,"fork":false,"pushed_at":"2025-07-18T20:02:21.000Z","size":92,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-07-19T01:08:08.289Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Nunjucks","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AlanVerbner.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-07-15T20:52:50.000Z","updated_at":"2025-07-18T20:02:25.000Z","dependencies_parsed_at":"2025-07-19T01:22:58.213Z","dependency_job_id":null,"html_url":"https://github.com/AlanVerbner/challenge-landing","commit_stats":null,"previous_names":["alanverbner/challenge-landing"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/AlanVerbner/challenge-landing","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlanVerbner%2Fchallenge-landing","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlanVerbner%2Fchallenge-landing/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlanVerbner%2Fchallenge-landing/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlanVerbner%2Fchallenge-landing/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AlanVerbner","download_url":"https://codeload.github.com/AlanVerbner/challenge-landing/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlanVerbner%2Fchallenge-landing/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266226341,"owners_count":23895690,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-07-21T01:33:12.258Z","updated_at":"2025-07-21T01:33:12.970Z","avatar_url":"https://github.com/AlanVerbner.png","language":"Nunjucks","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CODE: OVERRIDE - MiniTel-Lite Emergency Protocol\n\nA retro 1980s terminal-style static website for the \"CODE: OVERRIDE\" challenge. This project simulates a NORAD emergency protocol scenario where participants must connect to a TCP server, authenticate, and retrieve override codes to prevent nuclear war.\n\n## 🎯 Project Overview\n\nThis is a static website built with [Eleventy (11ty)](https://www.11ty.dev/) that recreates the aesthetic of early 1980s monochrome terminals. The site serves as the landing page for a coding challenge where participants must:\n\n1. Develop an application to connect to a MiniTel-Lite TCP server\n2. Authenticate using a specific protocol\n3. Extract override codes from the server\n4. Submit their solution through the website\n\n## 🚀 Quick Start\n\n### Prerequisites\n- Node.js (version 14 or higher)\n- npm\n\n### Installation\n1. Clone the repository\n2. Install dependencies:\n   ```bash\n   npm install\n   ```\n\n3. Start the development server:\n   ```bash\n   npm start\n   ```\n\n4. Open your browser to `http://localhost:8080`\n\n### Build for Production\n```bash\nnpm run build\n```\n\nThe built site will be in the `dist/` directory.\n\n## 📁 Project Structure\n\n```\nlanding/\n├── src/\n│   ├── _data/\n│   │   └── site.json          # Global configuration (⚠️ NEEDS COMPLETION)\n│   ├── _includes/\n│   │   ├── layouts/\n│   │   │   └── base.njk      # Base template\n│   │   └── partials/\n│   │       ├── header.njk     # Navigation header\n│   │       └── footer.njk     # Footer\n│   ├── assets/\n│   │   ├── css/\n│   │   │   └── tuicss.min.css # Terminal UI styles\n│   │   └── js/\n│   │       └── terminal.jsx   # Interactive terminal effects\n│   └── pages/\n│       ├── index.md           # Main landing page\n│       ├── instructions.md    # Challenge instructions\n│       └── faq.md            # Frequently asked questions\n├── docs/\n│   ├── PRD.md                # Product Requirements Document\n│   └── IMPLEMENTATION_PLAN.md # Technical implementation plan\n├── package.json\n└── README.md\n```\n\n## ⚙️ Configuration\n\n### Required Configuration in `src/_data/site.json`\n\nThe `site.json` file contains global configuration that **NEEDS TO BE COMPLETED** before deployment:\n\n```json\n{\n  \"title\": \"CODE: OVERRIDE - MiniTel-Lite Emergency Protocol\",\n  \"description\": \"MiniTel-Lite Emergency Protocol\",\n  \"form_endpoint\": \"https://forms.google.com/XXX\",  // ⚠️ REPLACE WITH ACTUAL FORM URL\n  \"server_host\": \"demo.minitel-lite.xyz\",           // ✅ Already configured\n  \"server_port\": 7321,                              // ✅ Already configured\n  \"url\": \"https://yourusername.github.io/code-override\", // ⚠️ REPLACE WITH ACTUAL DEPLOYMENT URL\n  \"author\": \"NORAD\",                                // ✅ Already configured\n  \"winner_amount\": 3,                               // ✅ Number of winners\n  \"budget\": 50,                                     // ✅ Development budget\n  \"judges\": \"Juan, Luis, Gustavo\"                   // ✅ Judge names\n}\n```\n\n### ⚠️ What You Need to Complete:\n\n1. **`form_endpoint`**: Replace `\"https://forms.google.com/XXX\"` with your actual Google Forms endpoint URL where participants will submit their solutions.\n\n2. **`url`**: Replace `\"https://yourusername.github.io/code-override\"` with your actual deployment URL (e.g., GitHub Pages, Netlify, etc.).\n\n### Optional Configuration:\n- **`winner_amount`**: Number of winners (currently set to 3)\n- **`budget`**: Development budget in dollars (currently $50)\n- **`judges`**: Names of the judges evaluating submissions\n- **`server_host`** and **`server_port`**: TCP server connection details (already configured)\n\n## 🎨 Design Features\n\n- **Retro Terminal Aesthetic**: Green-on-black monochrome styling\n- **CRT Effects**: Scanline animations and text flickering\n- **Typewriter Animation**: Progressive text reveal\n- **Responsive Design**: Optimized for desktop with mobile fallback\n- **Accessibility**: WCAG 2.1 AA compliant with reduced motion support\n\n## 📝 Content Structure\n\n### Main Sections:\n1. **Main (/)**: Landing page with mission briefing and lore\n2. **Instructions (/instructions/)**: Step-by-step challenge guide\n3. **FAQ (/faq/)**: Frequently asked questions\n\n### Key Features:\n- Mission narrative set in 1983 NORAD scenario\n- Clear instructions for TCP server connection\n- Embedded form for solution submission\n- Comprehensive FAQ section\n\n## 🚀 Deployment\n\n### GitHub Pages (Recommended)\n1. Complete the `site.json` configuration\n2. Build the project: `npm run build`\n3. Deploy the `dist/` folder to GitHub Pages\n4. Update the `url` field in `site.json` with your GitHub Pages URL\n\n### Other Static Hosts\nThe site is compatible with:\n- Netlify\n- Vercel\n- AWS S3\n- Any static hosting service\n\n## 📊 Performance Targets\n\n- **Bundle Size**: \u003c 200KB total (gzip)\n- **First Contentful Paint**: \u003c 2s on 3G\n- **Browser Support**: Chrome 90+, Firefox 88+, Safari 14+, Edge 90+\n- **Accessibility**: WCAG 2.1 AA compliant\n\n## 🔧 Development\n\n### Available Scripts\n- `npm start` - Start development server with live reload\n- `npm run build` - Build for production\n- `npm run build:prod` - Build with production optimizations\n\n### Technology Stack\n- **Static Site Generator**: Eleventy (11ty)\n- **Styling**: TuiCSS (Terminal UI CSS framework)\n- **JavaScript**: Vanilla JS for terminal effects\n- **Template Engine**: Nunjucks (.njk files)\n\n## 🎯 Challenge Flow\n\n1. **Landing**: Users read the mission briefing\n2. **Instructions**: Participants learn how to connect to the TCP server\n3. **Development**: Users create applications using specified tools\n4. **Submission**: Solutions are submitted through the embedded form\n5. **Evaluation**: Judges assess code quality and best practices\n\n## 📚 Documentation\n\n- **PRD.md**: Complete product requirements document\n- **IMPLEMENTATION_PLAN.md**: Technical implementation guide\n- **FAQ**: User-facing frequently asked questions\n\n## 🏆 Challenge Rules\n\n- Participants must use specified development tools\n- First 3 valid submissions win\n- Code quality and best practices are evaluated\n- Public GitHub repository required for source code\n\n## 📞 Support\n\nFor questions about the challenge, refer to the FAQ section or contact the organizing team.\n\n---\n\n**Note**: This is a simulation exercise. Do not use real personal information or commit sensitive credentials to your repositories. ","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falanverbner%2Fchallenge-landing","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falanverbner%2Fchallenge-landing","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falanverbner%2Fchallenge-landing/lists"}