ultisuite-backend/project-plan
R3D347HR4Y 747e0d4bb4 Add CI workflow and unit tests for mail API
- Created a CI workflow in `.github/workflows/ci.yml` to run Go tests and verify database migrations.
- Added unit tests for the mail API in `internal/api/mail/handlers_test.go`, covering message listing, retrieval, sending, and label updating.
- Introduced a service interface for the mail handler in `internal/api/mail/service_iface.go`.
- Updated mail handler initialization to accept a service API in `internal/api/mail/handlers.go`.
- Implemented test authentication middleware for testing purposes in `internal/api/middleware/testauth.go`.
- Added various test cases for IMAP and SMTP functionalities, ensuring robust error handling and validation.
- Enhanced project documentation with checklist updates for testing and CI integration.
2026-05-22 17:02:37 +02:00
..
administration.md Initialize Ulti Backend project with Docker setup, environment configuration, and core services. Added .dockerignore, .env.example, Dockerfile, and docker-compose files for PostgreSQL, KeyDB, RustFS, Authentik, Nextcloud, Jitsi, and Immich. Implemented main application structure in Go with API handlers and environment variable expansion. Included README for project overview and setup instructions. 2026-05-22 16:02:53 +02:00
agenda.md Initialize Ulti Backend project with Docker setup, environment configuration, and core services. Added .dockerignore, .env.example, Dockerfile, and docker-compose files for PostgreSQL, KeyDB, RustFS, Authentik, Nextcloud, Jitsi, and Immich. Implemented main application structure in Go with API handlers and environment variable expansion. Included README for project overview and setup instructions. 2026-05-22 16:02:53 +02:00
checklist-execution.md Add CI workflow and unit tests for mail API 2026-05-22 17:02:37 +02:00
contacts.md Initialize Ulti Backend project with Docker setup, environment configuration, and core services. Added .dockerignore, .env.example, Dockerfile, and docker-compose files for PostgreSQL, KeyDB, RustFS, Authentik, Nextcloud, Jitsi, and Immich. Implemented main application structure in Go with API handlers and environment variable expansion. Included README for project overview and setup instructions. 2026-05-22 16:02:53 +02:00
definition-of-done.md Initialize Ulti Backend project with Docker setup, environment configuration, and core services. Added .dockerignore, .env.example, Dockerfile, and docker-compose files for PostgreSQL, KeyDB, RustFS, Authentik, Nextcloud, Jitsi, and Immich. Implemented main application structure in Go with API handlers and environment variable expansion. Included README for project overview and setup instructions. 2026-05-22 16:02:53 +02:00
README.md Initialize Ulti Backend project with Docker setup, environment configuration, and core services. Added .dockerignore, .env.example, Dockerfile, and docker-compose files for PostgreSQL, KeyDB, RustFS, Authentik, Nextcloud, Jitsi, and Immich. Implemented main application structure in Go with API handlers and environment variable expansion. Included README for project overview and setup instructions. 2026-05-22 16:02:53 +02:00
roadmap-3-phases.md Initialize Ulti Backend project with Docker setup, environment configuration, and core services. Added .dockerignore, .env.example, Dockerfile, and docker-compose files for PostgreSQL, KeyDB, RustFS, Authentik, Nextcloud, Jitsi, and Immich. Implemented main application structure in Go with API handlers and environment variable expansion. Included README for project overview and setup instructions. 2026-05-22 16:02:53 +02:00
ultidrive.md Initialize Ulti Backend project with Docker setup, environment configuration, and core services. Added .dockerignore, .env.example, Dockerfile, and docker-compose files for PostgreSQL, KeyDB, RustFS, Authentik, Nextcloud, Jitsi, and Immich. Implemented main application structure in Go with API handlers and environment variable expansion. Included README for project overview and setup instructions. 2026-05-22 16:02:53 +02:00
ultimail.md Initialize Ulti Backend project with Docker setup, environment configuration, and core services. Added .dockerignore, .env.example, Dockerfile, and docker-compose files for PostgreSQL, KeyDB, RustFS, Authentik, Nextcloud, Jitsi, and Immich. Implemented main application structure in Go with API handlers and environment variable expansion. Included README for project overview and setup instructions. 2026-05-22 16:02:53 +02:00
ultimaps.md Initialize Ulti Backend project with Docker setup, environment configuration, and core services. Added .dockerignore, .env.example, Dockerfile, and docker-compose files for PostgreSQL, KeyDB, RustFS, Authentik, Nextcloud, Jitsi, and Immich. Implemented main application structure in Go with API handlers and environment variable expansion. Included README for project overview and setup instructions. 2026-05-22 16:02:53 +02:00
ultimeet.md Initialize Ulti Backend project with Docker setup, environment configuration, and core services. Added .dockerignore, .env.example, Dockerfile, and docker-compose files for PostgreSQL, KeyDB, RustFS, Authentik, Nextcloud, Jitsi, and Immich. Implemented main application structure in Go with API handlers and environment variable expansion. Included README for project overview and setup instructions. 2026-05-22 16:02:53 +02:00
ultiphotos.md Initialize Ulti Backend project with Docker setup, environment configuration, and core services. Added .dockerignore, .env.example, Dockerfile, and docker-compose files for PostgreSQL, KeyDB, RustFS, Authentik, Nextcloud, Jitsi, and Immich. Implemented main application structure in Go with API handlers and environment variable expansion. Included README for project overview and setup instructions. 2026-05-22 16:02:53 +02:00

Ulti Suite — Plan projet

Alternative souveraine et open-source à Google Suite. Chaque service est conçu pour être aussi fonctionnel et compatible avec les outils Google existants, en s'appuyant sur des technologies open-source éprouvées quand un acteur fiable existe déjà (ex: Nextcloud pour le stockage).

Principes directeurs

  • Parité fonctionnelle avec Google Suite, puis dépassement sur les features avancées (IA, webhooks, automatisations)
  • Compatibilité — import/export natif des formats Google, migration progressive sans friction
  • Souveraineté — hébergeable en propre, données sous contrôle de l'utilisateur
  • UX uniforme — même expérience web, desktop (Tauri) et mobile
  • Interopérabilité interne — tous les services communiquent entre eux nativement
  • Open-source first — s'appuyer sur des briques existantes fiables plutôt que tout réinventer

Services

Service Équivalent Google Fichier plan Statut
Ultimail Gmail ultimail.md Partiel (backend avancé, incomplet)
Contacts Google Contacts contacts.md Partiel (API proxy CardDAV)
Agenda Google Calendar agenda.md Partiel (API proxy CalDAV)
Ultidrive Google Drive ultidrive.md Partiel (API proxy WebDAV/OCS)
Ultimeet Google Meet ultimeet.md Partiel (JWT Jitsi minimal)
Administration Google Admin administration.md Partiel (squelette API)
Ultiphotos Google Photos ultiphotos.md Partiel (proxy Immich minimal)
Ultimaps Google Maps ultimaps.md Non commencé

Architecture commune

┌─────────────────────────────────────────────┐
│  Clients (web / Tauri / mobile)             │
├─────────────────────────────────────────────┤
│  API Gateway / Auth unifiée                 │
├──────┬──────┬──────┬──────┬──────┬──────────┤
│ Mail │Drive │Meet  │Agenda│Photos│ ...      │
│      │      │      │      │      │          │
├──────┴──────┴──────┴──────┴──────┴──────────┤
│  Services partagés                          │
│  ├─ Auth & comptes (SSO, 2FA, OIDC)        │
│  ├─ Contacts (carnet unifié)               │
│  ├─ Notifications (push, mail, webhooks)   │
│  ├─ Recherche transversale                 │
│  └─ Administration & quotas                │
├─────────────────────────────────────────────┤
│  Stockage                                   │
│  ├─ PostgreSQL (métadonnées, config, auth) │
│  ├─ Object storage (fichiers, médias)      │
│  └─ Cache (Redis)                          │
└─────────────────────────────────────────────┘

Exécution