Skip to content

relwen/voxbox

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

VoXY Backend API

Backend Laravel pour l'application VoXY - Gestion des chorales et partitions musicales.

🚀 Installation

  1. Cloner le projet
git clone <repository-url>
cd voxbox-backend
  1. Installer les dépendances
composer install
  1. Configurer l'environnement
cp .env.example .env
php artisan key:generate
  1. Configurer la base de données
# Modifier le fichier .env avec vos paramètres de base de données
php artisan migrate
php artisan db:seed
  1. Créer le lien de stockage
php artisan storage:link
  1. Démarrer le serveur
php artisan serve

📋 Fonctionnalités

🔐 Authentification

  • Inscription : Création de compte utilisateur avec validation par administrateur
  • Connexion : Authentification avec tokens Sanctum
  • Gestion des rôles : Utilisateur normal et administrateur

👥 Gestion des Utilisateurs

  • Inscription : Nom, email, mot de passe, chorale, pupitre, téléphone
  • Validation : Approbation/rejet par l'administrateur
  • Pupitres : SOPRANE, TENOR, MEZOSOPRANE, ALTO, BASSE, BARITON

🎵 Gestion des Partitions

  • Upload d'images : Photos de partitions (max 10MB)
  • Génération PDF : Conversion automatique des images en PDF
  • Partitions écrites : Texte des partitions
  • Partitions musicales : Notation musicale
  • Synchronisation : Fonctionnement hors ligne avec sync

🎤 Gestion des Voix

  • Partitions par pupitre : Partition spécifique à chaque voix
  • Partitions musique : Partition musicale par voix
  • Fichiers audio : Upload d'audio pour chaque voix
  • Mise en commun : Voix pour la pratique collective

⛪ Gestion des Chorales

  • Création : Nom, description, localisation, contact
  • Membres : Gestion des utilisateurs par chorale
  • Statistiques : Nombre de membres, partitions, etc.

🔌 API Endpoints

Authentification

POST /api/register          # Inscription utilisateur
POST /api/login             # Connexion
POST /api/logout            # Déconnexion
GET  /api/me                # Profil utilisateur
GET  /api/chorales          # Liste des chorales (public)

Administration (Admin uniquement)

GET  /api/admin/pending-users     # Utilisateurs en attente
POST /api/admin/approve-user/{id} # Approuver utilisateur
POST /api/admin/reject-user/{id}  # Rejeter utilisateur
GET  /api/admin/users             # Tous les utilisateurs
GET  /api/admin/stats             # Statistiques dashboard
POST /api/admin/make-admin/{id}   # Promouvoir admin
POST /api/admin/remove-admin/{id} # Retirer admin

Chorales

GET    /api/chorales              # Liste des chorales
POST   /api/chorales              # Créer une chorale
GET    /api/chorales/{id}         # Détails d'une chorale
PUT    /api/chorales/{id}         # Modifier une chorale
DELETE /api/chorales/{id}         # Supprimer une chorale
GET    /api/chorales/{id}/stats   # Statistiques chorale
GET    /api/chorales/{id}/users   # Utilisateurs de la chorale
GET    /api/chorales/{id}/partitions # Partitions de la chorale

Partitions

GET    /api/partitions                    # Partitions de la chorale
POST   /api/partitions                    # Créer une partition
GET    /api/partitions/{id}               # Détails d'une partition
PUT    /api/partitions/{id}               # Modifier une partition
DELETE /api/partitions/{id}               # Supprimer une partition
GET    /api/partitions/{id}/download-pdf  # Télécharger PDF
GET    /api/partitions/sync               # Synchronisation hors ligne

Voix

GET    /api/voice-parts                   # Voix de la chorale
POST   /api/voice-parts                   # Créer une voix
GET    /api/voice-parts/{id}              # Détails d'une voix
PUT    /api/voice-parts/{id}              # Modifier une voix
DELETE /api/voice-parts/{id}              # Supprimer une voix
PUT    /api/voice-parts/{id}/partition-voix    # Partition voix
PUT    /api/voice-parts/{id}/partition-musique # Partition musique
POST   /api/voice-parts/{id}/upload-audio      # Upload audio

📊 Structure de la Base de Données

Tables principales

  • users : Utilisateurs avec chorale_id, pupitre, is_approved, is_admin
  • chorales : Chorales avec nom, description, localisation
  • partitions : Partitions avec image_path, pdf_path, partition_ecrite, partition_musicale
  • voice_parts : Voix par partition avec pupitre, partition_voix, partition_musique, audio_path

🔧 Configuration

Variables d'environnement importantes

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=voxy_backend
DB_USERNAME=root
DB_PASSWORD=

FILESYSTEM_DISK=public

Stockage

  • Images : storage/app/public/partitions/images/
  • PDFs : storage/app/public/partitions/pdfs/
  • Audio : storage/app/public/voice-parts/audio/

🧪 Tests

Compte administrateur par défaut

Email: admin@voxy.com
Mot de passe: admin123

Exemple d'inscription utilisateur

{
  "name": "Jean Dupont",
  "email": "jean.dupont@example.com",
  "password": "motdepasse123",
  "password_confirmation": "motdepasse123",
  "chorale_id": 1,
  "pupitre": "BASSE",
  "telephone": "+33 1 23 45 67 89"
}

🔒 Sécurité

  • Authentification : Laravel Sanctum
  • Validation : Règles de validation strictes
  • Autorisation : Middleware admin pour les routes protégées
  • Fichiers : Validation des types et tailles de fichiers
  • CORS : Configuration pour l'application mobile

📱 Synchronisation Hors Ligne

L'API supporte la synchronisation pour permettre l'utilisation hors ligne :

  • Sync timestamp : Suivi des modifications
  • Dernière sync : Paramètre pour récupérer les nouvelles données
  • Stockage local : L'application mobile stocke les données localement

🚀 Déploiement

  1. Production : Configurer les variables d'environnement
  2. Base de données : Migrations et seeders
  3. Stockage : Lien symbolique pour les fichiers publics
  4. Permissions : Droits d'écriture pour le stockage

📞 Support

Pour toute question ou problème, contactez l'équipe de développement VoXY.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •