Woppy est une plateforme web qui met en relation des étudiants à la recherche de jobs flexibles avec des particuliers et entreprises ayant besoin d’aide ponctuelle, localement et simplement.
🎯 Objectif MVP :
permettre de créer, candidater, discuter et finaliser des missions réelles, en toute confiance.
- Next.js 16 (App Router)
- React 19
- TypeScript 5
- Tailwind CSS 4
- Framer Motion
- Lucide React
- next-pwa
- Firebase Authentication
- Firestore (temps réel)
- Firebase Storage
- Cloud Functions
- Firebase Security Rules (RBAC strict)
👉 Aucune API REST : Firebase est le backend.
- Inscription et profil public
- Consultation des annonces
- Candidature aux missions
- Messagerie en temps réel
- Avis et notation
- Historique des missions
- Publication d’annonces
- Gestion des candidatures
- Messagerie directe
- Validation des missions
- Avis et notation
- Authentification sécurisée
- Chat temps réel
- Notifications
- Design responsive (mobile-first)
- Support & contact intégrés
- Progressive Web App (PWA)
💡 Les paiements intégrés sont préparés mais non activés (future feature).
src/
├── app/
│ ├── auth/
│ ├── jobs/
│ ├── students/
│ ├── messages/
│ ├── dashboard/
│ ├── notifications/
│ ├── contact/
│ ├── demo/
│ ├── profile/[uid]
│ ├── review/[userId]
│ └── layout.tsx
│
├── components/
│ ├── auth/
│ ├── layout/
│ ├── AnnoncesMap.tsx
│ └── WoppyMap.tsx
│
├── lib/
│ └── useAuthPersistence.ts
│
├── types/
│ └── user.ts
│
├── public/
│ ├── images/
│ ├── manifest.json
│ └── firebase-messaging-sw.js
│
└── functions/
/— Accueil/demo— Démo interactive/jobs— Annonces/jobs/create— Publier une annonce/students— Étudiants/messages— Messagerie/dashboard/*— Activité utilisateur/contact— Support/contact/admin— Gestion support/admin/*— Outils internes
👉 32 routes actives, aucune inutile.
- Règles Firestore strictes (audit MVP)
- Séparation claire des rôles :
- user
- collaborator
- admin
- Accès basé sur rôle + ownership
- Storage sécurisé par relation métier
- Aucun accès public sensible
✔️ Sécurité compatible bêta publique MVP.
interface User {
uid: string;
role: 'student' | 'employer' | 'admin' | 'collaborator';
displayName: string;
city: string;
photoURL?: string;
}interface Annonce {
title: string;
description: string;
date: string;
duration: number;
hourlyRate: number;
userId: string;
acceptedUserId?: string;
statut: 'open' | 'in_progress' | 'fini';
}interface Candidature {
annonceId: string;
candidatId: string;
message: string;
}- Mise en relation
- Chat
- Avis
- Support
- Sécurité
- 💳 Paiements Stripe
- 📍 Géolocalisation avancée
- 📆 Calendrier de disponibilités
- 🔔 Notifications push
- 🌍 Multilingue
- Node.js >= 18
npm install
npm run devConfigurer .env.local avec :
- Firebase config
- clés Cloud Functions (si utilisées localement)
- Pas de feature inutile
- Pas de backend fantôme
- Firebase-first
- Sécurité avant scaling
- Produit guidé par l’usage réel
MIT
Email : contact@woppy.be
Site : https://woppy.be
Made with 💜 by the Woppy team