Zelev est une startup en développement dans le domaine de marketplace Tech .
Nous cherchons un(e) stagiaire Developpeur(se) React / TypeScript pour nous aider dans la construction de cette application sur une stack moderne : React 18 / TypeScript / Supabase / Stripe Connect.
Tu travailleras sur des missions concrètes :
Mission 1 — Messagerie temps réel client / prestataire
Stack : React 18 · TypeScript · Supabase Realtime · WebSocket pattern
Vous implémentez le système de messagerie entre clients et prestataires sur une marketplace en production. Chaque réservation confirmée ouvre un canal de chat dédié. Les messages s'affichent en temps réel sans rechargement.
Ce que vous construisez :
- Composant <ChatRoom /> avec canal Supabase Realtime isolé par réservation
- Statuts messages : envoyé → reçu → lu avec timestamps
- Optimistic UI — message affiché immédiatement côté expéditeur
- Historique persistant avec pagination curseur au scroll
- Badge non-lus dans le header et la navigation mobile
- Gestion des cas limites : reconnexion réseau, messages longs, emojis
Profil recherché : Vous avez déjà implémenté du temps réel (WebSocket, Socket.IO, Firebase Realtime, ou Supabase Realtime). Vous comprenez la différence entre polling et pub/sub. TypeScript strict ne vous fait pas peur.
Mission 2 — Module Facturation & Paiements
Stack : React 18 · TypeScript · Stripe Elements · Supabase · pdf-lib
Vous construisez l'ensemble du module paiement côté frontend — du checkout à la génération des factures PDF téléchargeables. Les endpoints backend sont fournis par notre API, vous vous concentrez sur l'expérience utilisateur et la fiabilité.
Ce que vous construisez :
- Formulaire checkout Stripe Elements avec tous les états : loading, success, card_declined, 3DS, erreur réseau
- Page historique des paiements avec statuts en temps réel via Supabase
- Page détail réservation + téléchargement facture PDF
- Dashboard revenus côté prestataire — virements, commissions, historique mensuel
- Génération PDF factures avec pdf-lib — template, stockage Supabase Storage, envoi email
- Tests Jest sur tous les états du checkout
Profil recherché : Vous avez des connaissance Stripe dans un de vos projets. Vous connaissez les webhooks et la gestion des erreurs Stripe. Bonus : expérience avec pdf-lib ou génération de documents.
Mission 3 — Dashboard B2C/B2B — Pages critiques
Stack : React 18 · TypeScript · ShadCN · React Query · Supabase
Vous implémentez les pages principales du dashboard client à partir de prototypes HTML et de specs techniques complètes. Shell, composants et Design System sont déjà en place — vous vous concentrez sur le contenu et la logique métier.
Ce que vous construisez :
- Page Accueil dashboard — expériences recommandées, accès rapide réservations, historique de navigation
- Page Réservations — liste, filtres, detail panel, statuts, timeline
- Page Profil — édition inline, preview temps réel, upload avatar Supabase Storage
- Page Paramètres — sections drill-down mobile, modales, toggles notifications
- Composants transversaux : skeleton loading, états vides, error boundaries
Profil recherché : React Query, ShadCN et TypeScript strict sont dans votre quotidien. Vous avez déjà travaillé sur une codebase existante avec un Design System documenté. Sensibilité mobile et UX.
Mission 4 — Système de notifications in-app
Stack : React 18 · TypeScript · Supabase Realtime · React Query
Vous construisez le système de notifications temps réel complet de l'application — du badge cloche dans le header jusqu'au centre de notifications avec deep links.
Ce que vous construisez :
- Composant <NotificationCenter /> — panneau slide-in depuis la cloche
- Supabase Realtime subscription filtrée par utilisateur connecté
- Types de notifications : réservation confirmée, message non lu, rappel J-1, avis demandé, paiement reçu
- Badge compteur en temps réel — mise à jour sans rechargement
- Navigation mobile : badge sur le bottom nav
- Marquage lu individuel + tout marquer comme lu
- Deep link : clic → navigation vers la page concernée
- Persistance 30 jours avec archivage automatique
Profil recherché : React Query et Supabase Realtime ou équivalent (Firebase, Pusher). Vous avez construit des systèmes de notifications dans d'autres apps.
Ce qu'on vous garantit
- Codebase documentée — Design System V2, specs techniques complètes, CDC par module. Vous ne démarrez jamais dans le vide.
- Binôme lead React — point quotidien, revues de code, déblocage rapide.
- Impact immédiat — votre code est utilisé par de vrais utilisateurs dès la fin du stage.
- Remote total — votre setup, vos horaires, votre efficacité.
- Pas de réunions inutiles — on communique en async, on se retrouve sur les décisions importantes.
Profil recherché
- Etudiant(e) en informatique, developpement web ou ecole d'ingenieur
- Niveau Bac+2 minimum (BTS SIO, BUT Informatique, Licence Pro Dev Web)
- Bac+3 a Bac+5 prefere (Bachelor, Master, ecole d'ingenieur)
Compétences appréciées
- React : composants fonctionnels, hooks (useState, useEffect, useContext, custom hooks)
- TypeScript : typage des props, interfaces, generics de base
- CSS : Tailwind ou equivalent — mise en page responsive, flexbox/grid
- Git : commits propres, branches, merge/rebase basique
- Supabase ou Firebase (realtime DB, auth, storage)
- Stripe.js ou experience avec une API de paiement
- React Query ou SWR (gestion du cache et des requetes async)
- Tests unitaires ou E2E (Jest, Vitest, Playwright ou Cypress)
- Animations CSS ou Framer Motion
Ce que tu vas apprendre
- Construire une application full-stack TypeScript en production
- Travailler sur un produit reel avec impact direct
- Maitriser Supabase, Stripe Connect et les patterns React avances
- Acces direct au fondateur — feedback technique immediat
Conditions
- Stage de 2 mois maximum
- Convention de stage obligatoire
- Télétravail possible / hybride / présentiel selon profil
- Gratification : [à préciser : non gratifié / gratification possible selon profil]
- Horaires flexibles possibles selon organisation
Candidature
Merci d’envoyer :
- CV
- Lien GitHub avec du code React / TypeScript (projet perso, stage ou ecole)
Type d'emploi : Temps plein, Stage
Durée du contrat : 2 mois
Lieu du poste : Télétravail