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
Markdown
# 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/)