Fujimod
Try your camera firmware in the browser and build Fujimod SD boot files.
An online platform where campers find and share first-hand experiences about campgrounds
Translation pending
LifestylePython · JavaScriptGitHub @RichardsonsssOnlineOwner 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.
CampCue is a full-stack campground review platform. Search and filter
real U.S. campgrounds pulled live from the National Park Service's
Recreation.gov API, browse each one's real photos and location on Google
Maps, and leave a rating and review. No fake data, no stock photos - the
listings are backed by the same public dataset recreation.gov itself
runs on (currently 65 real campgrounds across CA/WA/NY, each with a real
photo).Read the full README ↗Note: This repository is a rebuilt version of the "Campground Review System" project listed on my resume, re-implemented with current tools and libraries.
CampCue is a full-stack campground review platform. Search and filter real U.S. campgrounds pulled live from the National Park Service's Recreation.gov API, browse each one's real photos and location on Google Maps, and leave a rating and review. No fake data, no stock photos - the listings are backed by the same public dataset recreation.gov itself runs on (currently 65 real campgrounds across CA/WA/NY, each with a real photo).
Live app: https://campcue.web.app
Stack: React (Vite) · Django REST Framework · MongoDB (geospatial
queries via a 2dsphere index) · pandas ETL pipeline · Google Maps
JavaScript API · deployed on Cloud Run + Firebase Hosting + MongoDB Atlas,
entirely on free tiers.
Rebuilt from this resume entry:
Campground Review System Independent Full-Stack Developer
data_pipeline/fetch_ridb_data.py --> real_campgrounds.json --> MongoDB Atlas ("campgrounds" collection)
|
v
backend/ (Django + DRF, pymongo) --- REST API --- frontend/ (React + Vite)
Cloud Run | Firebase Hosting
2dsphere index |
(geospatial "nearby" search) Google Maps JS API
(map view, pins, photos)
data_pipeline/ - two independent pieces:
fetch_ridb_data.py pulls real campground listings (names,
coordinates, activities, photos) from Recreation.gov's public RIDB
API. This is the app's actual data source - currently 65 campgrounds
across CA/WA/NY, each with a real photo.generate_sample_data.py / legacy_manual_merge.py /
clean_and_load.py / benchmark.py are a synthetic demo,
unrelated to the live app's data, that models the messy
multi-facility-spreadsheet problem the pipeline bullet describes and
measures the pandas pipeline's speedup over a naive one (~65% faster,
consistent with the resume's 67% claim). See
data_pipeline/README.md for both.backend/ - Django + Django REST Framework. Reads/writes MongoDB
directly via pymongo (no ORM) so the data layer matches what the
pipeline produces. Endpoints: search/filter, facets (distinct
states/amenities for the UI's filter dropdowns), campground detail,
geospatial nearby search, and review list/create with automatic rating
recomputation.frontend/ - React (Vite). Search/filter UI with pagination
("Load more"), campground cards with photo thumbnails and star ratings
("No reviews yet" instead of a misleading 0★ when unreviewed), a detail
page with a photo gallery, review form, and Google Maps view.deploy/ - the actual commands used for the live deployment
(Cloud Run + MongoDB Atlas + Firebase Hosting) - see
deploy/README.md.| Piece | Where | URL |
|---|---|---|
| Frontend | Firebase Hosting | https://campcue.web.app |
| Backend API | Cloud Run | https://campground-backend-793519184426.us-central1.run.app/api |
All on free tiers - should run at $0/month for light hobby traffic. See
deploy/README.md for the exact commands and the
gotchas hit along the way (Cloud Run's DNS can't resolve mongodb+srv://
SRV records; Docker build-arg injection needs an explicit cloudbuild.yaml
rather than --set-build-env-vars).
run.ps1Starts MongoDB, the Django backend, and the frontend each in their own
window (assumes one-time setup is already done - see "Running services
individually" below for the first-time pip install/npm install):
powershell -ExecutionPolicy Bypass -File run.ps1
docker compose up --build
Then seed the database once with real campground data (see
data_pipeline/README.md for one-time
credential setup):
cd data_pipeline
pip install -r requirements.txt
python fetch_ridb_data.py --load-mongo
MongoDB - any local instance or mongod --dbpath <dir>.
Backend
cd backend
pip install -r requirements.txt
cp .env.example .env # edit MONGO_URI etc. if not using localhost defaults
python manage.py migrate --run-syncdb
python manage.py runserver 8000
Data pipeline (populate MongoDB with real campground data - see
data_pipeline/README.md for credential setup)
cd data_pipeline
pip install -r requirements.txt
cp .env.example .env
python fetch_ridb_data.py --load-mongo
Frontend (see .env.example for optional configuration)
cd frontend
cp .env.example .env
npm install
npm run dev
Map panels show a placeholder rather than failing if not fully configured - search, filtering, ratings, and reviews all work regardless.
cd backend
pip install -r requirements-dev.txt
python manage.py test campgrounds
The suite runs against mongomock
so it needs no live database. It doesn't cover /campgrounds/nearby/,
since mongomock doesn't implement MongoDB's $geoNear aggregation stage -
that endpoint is exercised manually against a real MongoDB instance
instead (see data_pipeline/README.md for how the sample data is loaded).
| Endpoint | Description |
|---|---|
GET /api/campgrounds/ | Search/filter/paginate (q, state, min_rating, amenity, sort, limit, offset) |
GET /api/campgrounds/facets/ | Distinct states and amenities present in the data, for the frontend's filter dropdowns |
GET /api/campgrounds/<id>/ | Campground detail |
GET /api/campgrounds/nearby/ | Geospatial search (lat, lng, radius_km) |
GET /api/campgrounds/<id>/reviews/ | List reviews for a campground |
POST /api/campgrounds/<id>/reviews/ | Add a review (author, rating 1-5, comment); recomputes the campground's average rating |