Application web complète type Fiverr local pour publier et trouver des services de proximité : plomberie, électricité, ménage, coiffure, réparation, transport, jardinage et autres.
- Frontend : React, TypeScript, Tailwind CSS, Vite
- Backend : Node.js, Express.js, TypeScript
- Base de données : SQLite avec seed automatique
- API : REST JSON
- Auth : bcrypt pour le hash des mots de passe, JWT pour les sessions API
local-services-app/
backend/
src/
db.ts
server.ts
validation.ts
types.ts
frontend/
src/
components/
pages/
lib/
types/
Depuis le dossier local-services-app :
npm run install:allOu séparément :
cd backend
npm install
cd ../frontend
npm installTerminal 1 :
cd backend
npm run devTerminal 2 :
cd frontend
npm run devURLs locales :
- Frontend : http://localhost:5173
- Backend API : http://localhost:4000
- Healthcheck : http://localhost:4000/api/health
Copier backend/.env.example vers backend/.env si vous voulez personnaliser les ports ou chemins :
PORT=4000
DATABASE_FILE=./data/local-services.sqlite
FRONTEND_ORIGIN=http://localhost:5173
UPLOAD_DIR=./uploadsSans fichier .env, les valeurs ci-dessus sont utilisées par défaut.
GET /api/servicesGET /api/services/:idGET /api/categoriesGET /api/categories/:category/servicesPOST /api/servicesPUT /api/services/:idDELETE /api/services/:idPOST /api/uploadPOST /api/auth/registerPOST /api/auth/loginGET /api/auth/meGET /api/me/services
La base SQLite est créée au lancement du backend. Si elle est vide, les catégories et services de test sont insérés automatiquement.
Compte démo prestataire :
- Email :
demo@qrib.local - Mot de passe :
demo12345
Les routes POST /api/services, PUT /api/services/:id, DELETE /api/services/:id, POST /api/upload et GET /api/me/services nécessitent un header Authorization: Bearer <token>.
Seul le propriétaire d’un service peut le modifier ou le supprimer.
npm run build --prefix backend
npm run build --prefix frontend