WolfConnect est une plateforme de communication professionnelle entre les employés, clients et la direction d’une entreprise.
Planifiez des créneaux, contactez la direction, déléguez aux bonnes personnes en cas d’indisponibilité. Sécurisé, extensible, documenté et prêt pour la production ou le cloud.
- 📅 Gestion des créneaux de disponibilité
- 💬 Messagerie interne dirigée (CEO / secrétaire / autre)
- 🛡️ Authentification sécurisée avec option d’anonymisation
- 📚 API REST documentée avec OpenAPI
- 🔍 Traçabilité et audit intégrés
- ⚙️ Stack reproductible (Devcontainer, Docker)
| Composant | Stack |
|---|---|
| Backend | Ktor 3.2.1 (Kotlin 2.2.0) |
| Base de données | PostgreSQL via R2DBC |
| CI/CD | GitHub Actions, Codecov |
| Documentation API | Dockka, OpenAPI, Swagger UI |
- JDK 21
- Docker & Docker Compose
- PostgreSQL (local ou conteneurisé)
- Fichier
.envà la racine du projet
➡️ Toutes les variables requises sont listées et expliquées dans ./.env.example.
| Variable | Rôle | Exemple |
|---|---|---|
| DB_HOST | Host Postgres (dans Docker) | postgres |
| DB_PORT | Port Postgres (dans Docker) | 5432 |
| DB_NAME | Nom de la base principale | wolfconnect-dev |
| DB_NAME_TEST | Nom de la base de test | wolfconnect-test |
| DB_POSTGRES_PASSWORD | Mot de passe superadmin Postgres | postgres |
| DB_MASTER_USERNAME | Utilisateur DB "maître" | master |
| DB_MASTER_PASSWORD | Mot de passe utilisateur maître | master |
| DB_APP_USERNAME | Utilisateur applicatif | app |
| DB_APP_PASSWORD | Mot de passe utilisateur app | app |
| Variable | Rôle | Exemple |
|---|---|---|
| DB_HOST_EXT | Host Postgres vu depuis le host/local/CI | localhost |
| DB_PORT_EXT | Port Postgres exposé localement/CI | 5443 |
| APP_PORT_EXT | Port appli exposé localement/forwards | 8081 |
| Variable | Rôle | Exemple |
|---|---|---|
| APP_PORT | Port HTTP interne à l’application (Docker) | 8080 |
| Variable | Rôle | Exemple |
|---|---|---|
| JWT_SECRET | Clé secrète JWT | changeme |
Pensez à adapter les valeurs *_EXT si vos ports sont déjà utilisés sur votre machine. Ne commitez jamais de secrets “réels” dans ce fichier !
- Installez Docker Desktop
- Ouvrez le projet avec :
- VS Code + extension Dev Containers
- ou JetBrains Gateway
- Cliquez sur “Ouvrir dans Dev Container”
Cela configure automatiquement :
.envdans.devcontainer/- Dépendances Node
- Hooks Git (Husky)
- Base PostgreSQL et config Kotlin/Gradle
- Copier
.env.example→.envà la racine - Compléter les valeurs manquantes
- Démarrer via :
docker-compose -f docker-compose.prod.yml up -d.devcontainer/docker-compose.dev.yml→ utilisé automatiquement en Devcontainerdocker-compose.prod.yml→ utilisé pour des démos, des tests ou un déploiement
- Tests unitaires / intégration :
./gradlew test- Lint / Analyse statique :
./gradlew ktlintCheck detekt- Migration BDD :
./gradlew flywayMigrate- Génération de couverture et documentation :
./gradlew koverXmlReport dokkaHtmlLe rapport de couverture Kover est dans build/reports/kover/.
La documentation HTML générée par Dokka est dans build/dokka/html/.
| Branche | Usage |
|---|---|
main |
Production |
develop |
Intégration / Préproduction |
feature/* |
Nouvelles fonctionnalités |
hotfix/* |
Correctifs urgents |
release/* |
Préparation de version stable |
- 📄 Documentation HTML (Dokka) : artefact CI
- 📘 Spécification OpenAPI : artefact CI (
build/api-spec/openapi.yaml) - 🔗 Swagger UI (local) : http://localhost:8080/docs
Consultez CONTRIBUTING.md pour connaître les bonnes pratiques de contribution.
Ce projet est distribué sous licence EUPL v1.2.
Voir aussi NOTICE.md pour les obligations spécifiques.