fullstack-form-app-sinclqir
v1.0.0
Published
Application de gestion des utilisateurs avec authentification JWT - Frontend React + Backend Python FastAPI
Maintainers
Readme
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
npm install full-stack-form🛠️ Développement local
Prérequis
- Node.js >= 18
- Python >= 3.8
- MySQL
Frontend
# 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:runBackend
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
VITE_API_URL=https://full-stack-form-server.vercel.appBackend
MYSQL_HOST=localhost
MYSQL_DATABASE=fullstackform_db
MYSQL_USER=root
MYSQL_PASSWORD=your_password
[email protected]
ADMIN_PASSWORD=admin_password
JWT_SECRET_KEY=your_secret_key🧪 Tests
# Tests unitaires
npm test
# Tests E2E
npm run cypress:run
# Couverture de code
npm run test:coverage📚 API Endpoints
POST /register- Inscription utilisateurPOST /login- Connexion utilisateurGET /users- Liste des utilisateurs (admin)GET /public-users- Liste publique des utilisateursDELETE /users/{id}- Supprimer un utilisateur (admin)
🤝 Contribution
- Fork le projet
- Créer une branche feature (
git checkout -b feature/AmazingFeature) - Commit les changements (
git commit -m 'Add some AmazingFeature') - Push vers la branche (
git push origin feature/AmazingFeature) - Ouvrir une Pull Request
📄 Licence
Ce projet est sous licence MIT. Voir le fichier LICENSE pour plus de détails.
👨💻 Auteur
sinclqir
- GitHub: @sinclqir
