A car dealer marketplace built on the OLX clone stack: React, Firebase Auth, Firestore, and Storage.
| Path | Description |
|---|---|
/ |
Car listings (public) |
/car/:id |
Car detail (public) |
/search |
Search (public) |
/dealer/login |
Dealer login / register |
/dealer/onboarding |
First-time dealer setup |
/dealer/dashboard |
Dealer listings |
/dealer/car/new |
Add listing |
/dealer/car/edit/:id |
Edit listing |
/dealer/profile |
Dealer profile |
.env.example to .env and add your Firebase config.npm installnpm startnpm run deploy:rulesproducts — Car listings (dealerId, title, price, imageUrls, isActive, etc.)users — Dealer profiles (role: "dealer", dealershipName, whatsappNumber, city)Storage path for images: products/{dealerId}/{filename} (optional)
Set in .env:
REACT_APP_SKIP_STORAGE_UPLOAD=true
Dealers can paste public image URLs on the add/edit car form, or publish listings with no photos. Restart npm start after changing .env.
When Storage is ready, set REACT_APP_SKIP_STORAGE_UPLOAD=false and run npm run deploy:rules.
npm run build
Uses NODE_OPTIONS=--openssl-legacy-provider for Node 17+ with Create React App 4.
Live site: https://raviflobo.github.io/olx/
.env.example):REACT_APP_FIREBASE_API_KEY, REACT_APP_FIREBASE_AUTH_DOMAIN, REACT_APP_FIREBASE_PROJECT_ID, REACT_APP_FIREBASE_STORAGE_BUCKET, REACT_APP_FIREBASE_MESSAGING_SENDER_ID, REACT_APP_FIREBASE_APP_ID (and optional REACT_APP_FIREBASE_MEASUREMENT_ID).raviflobo.github.io.main runs .github/workflows/deploy-github-pages.yml..env present, run npm run deploy:gh-pages (publishes the build/ folder to the gh-pages branch).products docs are normalized on read (normalizeCar.js) so old ads show with correct titles, images, and specs.dealerId and legacy userId./privacy page linked from the footer.