phase 1 backend

This commit is contained in:
el 2025-05-24 01:01:01 +02:00
parent a0897c2d38
commit 9653e55453
26 changed files with 3225 additions and 0 deletions

130
README.md Normal file
View file

@ -0,0 +1,130 @@
# JobIA - Votre plateforme de recherche d'emploi intelligente
[![License](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
![Node.js](https://img.shields.io/badge/node.js-18.x%20%7C%2020.x-green)
![Next.js](https://img.shields.io/badge/Next.js-14.x-blue)
![Zustand](https://img.shields.io/badge/Zustand-4.x-purple)
![PostgreSQL](https://img.shields.io/badge/PostgreSQL-14+-orange)
![Tailwind CSS](https://img.shields.io/badge/Tailwind_CSS-3.x-teal)
**JobIA** est une plateforme de recherche d'emploi innovante qui vous aide à trouver les opportunités parfaites en exploitant la puissance de l'intelligence artificielle. En intégrant les offres de France Travail et des outils d'IA avancés, JobIA simplifie votre recherche d'emploi et vous accompagne dans la création de candidatures percutantes.
## Fonctionnalités principales (MVP)
* **Recherche et filtrage avancés :** Trouvez facilement des offres grâce à une recherche intuitive et des filtres précis (localisation, type de contrat, secteur, etc.).
* **Gestion des utilisateurs :** Créez un compte, connectez-vous et gérez votre profil.
* **Sauvegarde des offres favorites :** Conservez les offres qui vous intéressent pour ne pas les perdre.
* **Alertes email personnalisées :** Soyez informé des nouvelles offres correspondant à vos critères de recherche.
* **Note de compatibilité IA :** Évaluez la pertinence d'une offre par rapport à votre profil grâce à une analyse intelligente basée sur Gemini ou Mistral.
* **Espace personnel :** Gérez vos offres favorites et vos alertes en un seul endroit.
* **Aide à la rédaction de lettre de motivation IA :** Générez des lettres de motivation personnalisées et efficaces en quelques clics grâce à l'IA.
## Technologies utilisées
* **Frontend (`frontend` dossier) :** [Next.js](https://nextjs.org/) (framework React pour le rendu côté serveur et les applications web), [TypeScript](https://www.typescriptlang.org/) (sur-ensemble typé de JavaScript), [Tailwind CSS](https://tailwindcss.com/) (framework CSS utilitaire), [Zustand](https://zustand.pmnd.rs/) (bibliothèque de gestion d'état simple et rapide).
* **Backend (`backend` dossier) :** [Node.js](https://nodejs.org/en/) (environnement d'exécution JavaScript côté serveur), [Express](https://expressjs.com/) ou (frameworks Node.js pour la création d'API), [TypeScript](https://www.typescriptlang.org/).
* **Base de données :** [PostgreSQL](https://www.postgresql.org/).
* **ORM (Optionnel) :** [Prisma](https://www.prisma.io/)(pour faciliter l'interaction avec la base de données).
* **Intégration API :**
* [API France Travail](https://www.francetravail.fr/emploi/offres/) (pour la récupération des offres d'emploi).
* [API Gemini](https://ai.google.dev/products/gemini) ou [API Mistral](https://mistral.ai/) (pour les fonctionnalités d'IA).
## Installation (pour le développement local)
1. **Cloner le repository :**
```bash
git clone <URL_DU_REPOSITORY>
cd jobia
```
2. **Installer les dépendances du backend :**
```bash
cd backend
npm install
# ou
yarn install
# ou
pnpm install
cd ..
```
3. **Installer les dépendances du frontend :**
```bash
cd frontend
npm install
# ou
yarn install
# ou
pnpm install
cd ..
```
4. **Configurer les variables d'environnement :**
Créez un fichier `.env.local` dans chaque dossier (`backend` et `frontend`) et configurez les variables d'environnement nécessaires.
**`backend/.env.local` :**
```env
DATABASE_URL=votre_url_postgresql
FRANCE_TRAVAIL_CLIENT_ID=votre_client_id_france_travail
FRANCE_TRAVAIL_CLIENT_SECRET=votre_client_secret_france_travail
GEMINI_API_KEY=votre_cle_api_gemini # ou MISTRAL_API_KEY=votre_cle_api_mistral
# ... autres variables backend
```
**`frontend/.env.local` :**
```env
NEXT_PUBLIC_BACKEND_URL=http://localhost:8000/api # L'URL de votre backend
NEXTAUTH_SECRET=un_secret_aleatoire_pour_nextauth
NEXTAUTH_URL=http://localhost:3000 # ou l'URL de votre environnement frontend
# ... autres variables frontend
```
**Important :** Assurez-vous de sécuriser vos clés API et autres informations sensibles.
5. **Lancer les serveurs de développement :**
**Backend :**
```bash
cd backend
npm run dev # ou yarn dev ou pnpm dev (la commande peut varier selon votre configuration backend)
cd ..
```
(Assurez-vous que votre serveur backend s'exécute sur le port spécifié dans `NEXT_PUBLIC_BACKEND_URL` ou ajustez la variable en conséquence).
**Frontend :**
```bash
cd frontend
npm run dev
# ou
yarn dev
# ou
pnpm dev
cd ..
```
Ouvrez votre navigateur sur `http://localhost:3000` pour voir l'application frontend.
## Déploiement
Les instructions de déploiement dépendront de la plateforme que vous choisissez pour le frontend (Vercel, Netlify, etc.) et le backend (Heroku, AWS, etc.). Consultez la documentation de chaque plateforme pour plus d'informations. Assurez-vous de configurer correctement les variables d'environnement dans vos environnements de production respectifs.
## Contribution
Les contributions sont les bienvenues ! Si vous souhaitez contribuer au projet, veuillez suivre les étapes suivantes :
1. Fork le repository.
2. Créez une branche pour votre fonctionnalité (`git checkout -b feature/nouvelle-fonctionnalite`).
3. Commitez vos changements (`git commit -m 'Ajout de la nouvelle fonctionnalité'`).
4. Pushez la branche (`git push origin feature/nouvelle-fonctionnalite`).
5. Ouvrez une pull request.
## Licence
Ce projet est sous licence [MIT](https://opensource.org/licenses/MIT).
## Contact
Pour toute question ou suggestion, n'hésitez pas à ouvrir une issue sur ce repository.
---
**JobIA - Trouvez l'emploi qui vous correspond, intelligemment.**