SCS AWS Kiro Hackathon 2026
This is the application designed for the hackathon hosted by Singapore Computer Society with AWS, showcasing Kiro.
No license.
Mandai WildDex & Ranger Expeditions
A demo-mode, offline-capable iOS PWA. Four tabs — Map, Camera, Quests, Journal — running entirely locally against LocalStorage and mock services. No backend, no auth, and no real AWS calls at any point. The "AI" scan is a local DemoAIAnalyzer behind an AIAnalyzer interface (see src/services/aiDemo.ts); a future AWS-backed implementation would satisfy the same interface but is intentionally not built here.
Requirements
- Node 20.x (see
.nvmrc) —nvm use - npm
Setup
npm install
npm run dev # dev server
npm run build # tsc --noEmit + vite build (emits dist/ + service worker)
npm run preview # serve the production build (needed to exercise the service worker)
PWA & offline
- Service worker generated by
vite-plugin-pwa(generateSW); precaches the app shell, bundled JS/CSS, and static assets (icons, splash, species/map images). - Because the app makes no network calls, precaching the shell + bundled data is sufficient for full offline function — no runtime caching rules are needed.
- iOS meta tags +
manifest.jsonconfigure standalone display, theme color, and the install experience. Icons/splash use the supplied art inpublic/iconsandpublic/splash. - First-run overlay explains iOS "Add to Home Screen"; dismissal is persisted (
hasSeenInstallPrompt).
Accessibility
- Reduced motion honored via a single
useReducedMotion()hook (combines the in-app setting and the OSprefers-reduced-motionquery); consumed by every animation. - ARIA roles/labels on toasts, progress bars, badges, and interactive controls; 44×44px minimum touch targets.
- Sound and reduced-motion are user-toggleable from the settings menu.
Verification status (per Requirement 9.4)
Verified in this environment:
npm run buildandtsc --noEmitcomplete with zero errors.localStorageaccess is confined tosrc/services/storage.ts(no component touches it directly).- No raw camera-frame/base64 data is persisted to state — only species IDs.
- Rank thresholds and XP calibration reviewed against the fixed table (a full playthrough crosses into Master Ranger).
Configured, untested (requires a real browser/device — not verifiable headlessly):
- Live camera
getUserMediafeed and permission prompt on a real device. - Service-worker registration and offline reload behavior in a browser.
- Real iOS Safari "Add to Home Screen" install and standalone rendering.
- Lighthouse/PWA audit scores and real-device animation frame rate.
Log in or sign up for Devpost to join the conversation.