This Is (Not) Fine est une plateforme web dédiée à la mise en relation et à la gestion des profils étudiants, spécifiquement conçue pour les étudiants en France. Elle permet aux étudiants de signaler leur statut de recherche (Stage, Alternance) et aux administrateurs de gérer les établissements.
- Authentification Sécurisée : Inscription et connexion avec hachage des mots de passe (Bcrypt).
- Vérification Étudiante : Restriction stricte des inscriptions aux adresses email avec un domaine d'une école publique ou privé avec vérification par code email (SMTP).
- Gestion de Profils : Les étudiants peuvent mettre à jour leur statut (En recherche, Trouvé), leurs liens (LinkedIn, GitHub, Portfolio), leur domaine d'études, et uploader leur CV.
- Géolocalisation des Écoles : Création d'établissements avec autocomplétion et récupération automatique des coordonnées GPS.
- Recherche : Carte interactive (Leaflet) et annuaire des étudiants par établissement.
- Administration : Interface dédiée pour créer des établissements (protégée par un rôle admin).
- Runtime : Bun
- Backend : Express.js (TypeScript)
- Frontend : React 19, TypeScript, Vite
- Base de Données : PostgreSQL
- ORM : Prisma
- Map : Leaflet / React-Leaflet
- Mailing : Nodemailer
- Bun installé sur votre machine.
- Une base de données PostgreSQL.
- Un serveur SMTP pour l'envoi de mails.
-
Cloner le dépôt
git clone https://github.com/votre-pseudo/ThisIsNotFine.git cd ThisIsNotFine -
Installer les dépendances
bun install cd frontend && bun install && cd ..
-
Configurer les variables d'environnement Créez un fichier
.envà la racine :DATABASE_URL="postgresql://user:password@host:port/database" SESSION_SECRET="votre_secret" SMTP_HOST="smtp.example.com" SMTP_PORT=587 SMTP_USER="user" SMTP_PASSWORD="password"
-
Initialiser la base de données
bunx prisma db push # Optionnel : Seeder la BDD bun run prisma/seed_schools.ts -
Lancer le projet
-
Mode Développement (Recommandé) :
- Terminal 1 (Backend) :
bun run dev(Port 3000) - Terminal 2 (Frontend) :
cd frontend && bun dev(Port 5173 - avec HMR)
- Terminal 1 (Backend) :
-
Mode Production (avec PM2) :
- Construire le frontend :
cd frontend && bun run build - Lancer avec PM2 :
pm2 start ecosystem.config.cjs - Sauvegarder pour le redémarrage :
pm2 save&&pm2 startup
- Construire le frontend :
-
src/: Backend API (Express, Prisma).frontend/: Application React (Pages, Components, Context).prisma/: Schéma de base de données.public/uploads/: Stockage des CVs uploadés.
- Mots de passe hachés (Bcrypt).
- Protection CSRF/XSS via Helmet et ségrégation Frontend/Backend.
- Validation des emails universitaires.
Ce projet est sous licence MIT.