Fujimod
Try your camera firmware in the browser and build Fujimod SD boot files.
Plan efficient sightseeing trips around real landmarks and earn points as you explore.
LifestyleJavaScript · CSSGitHub @landymontiel25OnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Loading the full README. The saved excerpt is shown below.
A mobile-friendly trip planner for real landmarks in Miami, Milan/Monza, and Villanova/Main Line/Philadelphia — with GPS check-ins, a shared points leaderboard, and an AI trip-planning assistant. Also wrapped in Capacitor as a real iOS app (see ios/).
Trip planning (starting location, region, interests, landmark selection, itinerary) and browsing the explore map work immediately with no setup — trip state is stored in your browser's localStorage.Read the full README ↗A mobile-friendly trip planner for real landmarks in Miami, Milan/Monza, and Villanova/Main Line/Philadelphia — with GPS check-ins, a shared points leaderboard, and an AI trip-planning assistant. Also wrapped in Capacitor as a real iOS app (see ios/).
npm install
npm run dev
Trip planning (starting location, region, interests, landmark selection, itinerary) and browsing the explore map work immediately with no setup — trip state is stored in your browser's localStorage.
Accounts, check-ins, the leaderboard, friends, reviews, and landmark submissions are all shared across users, so they need a real backend. The app uses Firebase's free Spark tier (Auth + Firestore + Storage). Until you configure it, those features show a "not configured" message — trip planning and the explore map still work.
Create a free project at console.firebase.google.com.
In Build → Authentication → Sign-in method, enable Email/Password. (Google sign-in isn't used — email/password only.)
In Build → Firestore Database, click Create database (start in production mode).
In Build → Storage, click Get started (needed for check-in/review/landmark photos).
In Project settings → General, scroll to "Your apps," add a Web app, and copy the config values.
Copy .env.example to .env and fill in the values:
cp .env.example .env
Restart npm run dev.
Deploy firestore.rules and storage.rules from this repo as-is (Firestore Database → Rules, and Storage → Rules) — they're the real, current rules the app depends on, not a snippet to hand-copy. Cover check-ins (immutable once claimed), the leaderboard, user profiles/usernames, friends and blocks, reviews (with report-based hiding), landmark submissions (with the same reporting, plus admin approval), and Storage photo uploads.
The in-app AI assistant (the "✨ Ask AI" widget, the Mapr trip-planning chat, custom-interest matching on Setup, and landmark-submission verification) is powered by the Anthropic API via serverless functions in api/. Add ANTHROPIC_API_KEY to .env (see .env.example) to enable it locally, and as a Vercel environment variable in production. Without it, those features show a "not set up yet" message — everything else works fine.
Server routes read these from Vercel: GOOGLE_PLACES_API_KEY (Places API (New) only), GOOGLE_ROUTES_API_KEY (Routes API only), ANTHROPIC_API_KEY, FIREBASE_SERVICE_ACCOUNT and CRON_SECRET. The Google keys are separate on purpose, each restricted to its own API. Daily caps, the monthly budget and the current setup are written down in docs/photos.md (Owner setup).
Each check-in increments per-period aggregate documents (leaderboard_entries) keyed by ISO week / calendar month / calendar year. When a new period starts, its key is new, so the leaderboard naturally shows zero for that period — no scheduled job required.
npm run ios:sync # builds the web app and copies it into ios/App
npm run ios:open # opens the Xcode project
From Xcode, pick a simulator or device and run. No CocoaPods needed — this uses Capacitor's Swift Package Manager integration.
@capacitor/core, @capacitor/ios) plus @capacitor/geolocation and @capacitor/camera for native location/camera access, with web fallbacks for the browser buildapi/) for the AI assistant, trip planning, and interest/landmark verification — rate-limited per endpointlocalStorage