# macOS
brew install go-task/tap/go-task
# Linux
sh -c "$(curl --location https://taskfile.dev/install.sh)" -- -d -b /usr/local/bin
# Windows (PowerShell)
choco install go-task# macOS
brew install bufbuild/buf/buf
# Linux
curl -sSL "https://github.com/bufbuild/buf/releases/latest/download/buf-$(uname -s)-$(uname -m)" -o /usr/local/bin/buf
chmod +x /usr/local/bin/buf
# Windows (PowerShell)
choco install buf
# Ou via Go (toutes plateformes)
go install github.com/bufbuild/buf/cmd/buf@latestTéléchargez depuis https://www.docker.com/get-started
# Cloner le projet
git clone <votre-repo>
cd offly
# Installer toutes les dépendances et configurer le projet
task setupCette commande va :
- Installer les dépendances Go
- Installer les dépendances npm
- Générer le code protobuf
- Formater le code
# Lancer l'application (backend + frontend)
# SQLite par défaut : aucun service externe à démarrer
task devL'application sera accessible sur :
- Frontend: http://localhost:3000
- API REST: http://localhost:8080
- gRPC: localhost:50051
Pour développer sur MongoDB à la place :
task mongo:startpuisSTORAGE_TYPE=mongodb task dev(MongoDB écoute alors sur localhost:27017).
task dev # Lancer l'app en mode dev
task format # Formater le code
task lint # Vérifier le code
task test # Lancer les teststask proto # Générer le code depuis .proto
task proto:lint # Vérifier la syntaxe protobuftask mongo:start # Démarrer MongoDB
task mongo:stop # Arrêter MongoDB
task mongo:logs # Voir les logstask pre-commit # Format + Lint + Testoffly/
├── backend/ # API Go + gRPC
│ ├── cmd/server/ # Point d'entrée
│ ├── internal/
│ │ ├── auth/ # OIDC, JWT, RBAC
│ │ ├── mcp/ # Serveur MCP (optionnel)
│ │ ├── service/ # Logique métier
│ │ └── storage/ # SQLite · MongoDB · mémoire
│ └── proto/ # Définitions protobuf
├── frontend/ # React + TypeScript
│ └── src/
│ ├── components/offly/ # Les 4 écrans + rail
│ ├── design/offly.css # Tokens du design system
│ ├── lib/ # Modèle demi-journée, CSV, profils
│ └── api.ts # Client API
├── design.md # Design system
└── Taskfile.yml # Automatisation
✅ Saisie d'absence directement dans la grille — journée, matin ou après-midi
✅ Couverture d'équipe par demi-journée, avec alerte sous le seuil
✅ Jours fériés par pays de la personne
✅ Filtres par équipe et par profil métier
✅ Export CSV des absences, import/export CSV des jours fériés
✅ API REST et gRPC, serveur MCP optionnel
✅ SQLite par défaut, MongoDB en option
task mongo:stop
docker ps -a | grep mongo # Vérifier l'état
task mongo:startgo install github.com/bufbuild/buf/cmd/buf@latest
# Assurez-vous que $GOPATH/bin est dans votre PATH
export PATH=$PATH:$(go env GOPATH)/bincd backend
go mod tidy
task protocd frontend
rm -rf node_modules package-lock.json
npm installSi vous préférez utiliser Docker pour tout :
# Lancer toute l'application
docker-compose up -d
# Voir les logs
docker-compose logs -f
# Arrêter
docker-compose down- Créez des utilisateurs via l'onglet "Utilisateurs"
- Créez des départements et équipes via "Organisation"
- Assignez les utilisateurs aux départements/équipes
- Déclarez des absences via la grille calendaire
Bon développement ! 🚀