UNPKG

fullstack-form-app-sinclqir

Version:

Application de gestion des utilisateurs avec authentification JWT - Frontend React + Backend Python FastAPI

139 lines (103 loc) 3.37 kB
# Full Stack Form Application complète de gestion des utilisateurs avec authentification JWT, construite avec React (frontend) et Python FastAPI (backend). ## 🌟 Fonctionnalités - **Authentification JWT** : Connexion/inscription sécurisée - **Gestion des utilisateurs** : CRUD complet avec rôles (admin/utilisateur) - **Interface moderne** : Design responsive avec Lucide React - **Tests complets** : Jest + Cypress E2E - **Déploiement automatique** : Backend sur Vercel, Frontend sur GitHub Pages ## 🚀 Déploiement - **Frontend** : https://sinclqir.github.io/full-stack-form - **Backend** : https://full-stack-form-server.vercel.app ## 📦 Installation ```bash npm install full-stack-form ``` ## 🛠️ Développement local ### Prérequis - Node.js >= 18 - Python >= 3.8 - MySQL ### Frontend ```bash # Installer les dépendances npm install # Démarrer en mode développement npm run dev # Build pour production npm run build # Tests npm test npm run cypress:run ``` ### Backend ```bash cd server # Installer les dépendances Python pip install -r requirements.txt # Démarrer le serveur python main.py ``` ## 🏗️ Architecture ``` full-stack-form/ ├── src/ # Frontend React │ ├── pages/ # Pages de l'application │ ├── config/ # Configuration API │ └── assets/ # Ressources statiques ├── server/ # Backend Python FastAPI │ ├── main.py # Point d'entrée API │ ├── auth.py # Authentification JWT │ ├── models.py # Modèles de données │ └── database.py # Configuration base de données ├── cypress/ # Tests E2E └── .github/workflows/ # CI/CD GitHub Actions ``` ## 🔧 Configuration ### Variables d'environnement #### Frontend ```env VITE_API_URL=https://full-stack-form-server.vercel.app ``` #### Backend ```env MYSQL_HOST=localhost MYSQL_DATABASE=fullstackform_db MYSQL_USER=root MYSQL_PASSWORD=your_password ADMIN_EMAIL=admin@example.com ADMIN_PASSWORD=admin_password JWT_SECRET_KEY=your_secret_key ``` ## 🧪 Tests ```bash # Tests unitaires npm test # Tests E2E npm run cypress:run # Couverture de code npm run test:coverage ``` ## 📚 API Endpoints - `POST /register` - Inscription utilisateur - `POST /login` - Connexion utilisateur - `GET /users` - Liste des utilisateurs (admin) - `GET /public-users` - Liste publique des utilisateurs - `DELETE /users/{id}` - Supprimer un utilisateur (admin) ## 🤝 Contribution 1. Fork le projet 2. Créer une branche feature (`git checkout -b feature/AmazingFeature`) 3. Commit les changements (`git commit -m 'Add some AmazingFeature'`) 4. Push vers la branche (`git push origin feature/AmazingFeature`) 5. Ouvrir une Pull Request ## 📄 Licence Ce projet est sous licence MIT. Voir le fichier `LICENSE` pour plus de détails. ## 👨‍💻 Auteur **sinclqir** - GitHub: [@sinclqir](https://github.com/sinclqir) ## 🙏 Remerciements - [React](https://reactjs.org/) - [FastAPI](https://fastapi.tiangolo.com/) - [Vite](https://vitejs.dev/) - [Cypress](https://www.cypress.io/) - [Lucide React](https://lucide.dev/)