A social car-tracking app — log cars you've driven and spotted, follow friends, earn badges.
SocialTypeScript · JavaScriptGitHub @UUeirdOnlineOwner 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
The Dyno monorepo
Translation pending
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
A social car-tracking app — think Untappd, but for the cars you've driven and spotted.Read the full README ↗A social car-tracking app — think Untappd, but for the cars you've driven and spotted.
The core loop:
{manufacturer, model} has its own page with a community rating aggregated from all logged experiencesThe star rating UI is a custom-built clock-fill star icon that draws a bright stroke along the star's outline proportional to the rating, and expands into a row of mini-stars on hover/tap.
| Layer | Technology |
|---|---|
| Frontend | React 18, TypeScript, Vite, react-router-dom, Axios |
| Backend | Node.js, Express 5, Multer + Cloudinary (photo uploads) |
| Database | MongoDB (Mongoose 8) |
| Auth | Clerk (magic-link email) |
| E2E testing | Playwright (isolated carsDB_test, fixture seeding) |
| Dev tooling | Nodemon |
dyno/
└── dyno-react-app/
├── src/ # React frontend
│ ├── components/ # StarIcon, BadgeShelf, ReactionBar, etc.
│ ├── views/ # Feed, Profile, Cars, CarModel, admin, sign-in
│ └── lib/ # Small helpers (api, auth, modelSlug, etc.)
├── backend/ # Express API server
├── tests/ # Playwright E2E specs + setup
└── playwright.config.ts
27017)dyno-react-app/.env.local and Clerk + Cloudinary keys in dyno-react-app/backend/.env — see "Env vars" in CLAUDE.mdcd dyno-react-app/backend
npm install
npm run dev # starts the API server on port 5000
The backend seeds default badge series automatically on startup. To fill the local database with dummy users, cars, and activity, run node seedDev.js (node seedDev.js --clear removes it again). It only touches carsDB on localhost and leaves data you created through the app alone.
cd dyno-react-app
npm install
npm start # starts the Vite dev server on port 3000
Open http://localhost:3000 in your browser.
cd dyno-react-app
npm run test:e2e # headless run
npm run test:e2e:ui # Playwright UI runner
The test harness kills the dev backend, starts an isolated backend against carsDB_test, seeds fixtures via POST /api/test/seed, runs the suite, then restarts the dev backend pointed back at carsDB. Tests run serially because they share a database.
See docs/api.md for the full endpoint reference. The main resources:
manufacturers, cars, humans, ownerships, photosexperiences (with notes, ratings, attached reactions)reactions, followsusers/:id/profile, users/:id/badges, users/:id/wishlistmodels/:mfr/:model — model page aggregate/api/test/seed, /api/test/reset-badges) that are only registered when MONGO_DB=carsDB_test