Journal des modifications
Toutes les modifications notables de Moorly sont documentées ici.
Version actuelle : v1.9.0[1.9.0] — 2026-04-07
Ajouté
- Système de signalements d'incidents (`/incidents`)
- Les clients peuvent rapporter bris, problèmes de sécurité, dommages environnementaux depuis leur espace client
- Formulaire avec catégorie, titre, description, localisation, photo
- Interface admin avec DataTable, filtres par statut/catégorie, gestion complète (priorité, notes admin, résolution)
- 6 catégories : général, bris/dommage, sécurité, environnement, infrastructure, autre
- 4 niveaux de priorité : faible, normal, élevé, urgent
- Suivi du cycle de vie : ouvert → en cours → résolu → fermé
- Section dans le sidebar admin sous Opérations
- Aide mise à jour — 4 nouvelles pages bilingues (signaler un incident, gérer les signalements)
- Marketing — ajout de la fonctionnalité Signalement d'incidents
[1.8.0] — 2026-04-07
Ajouté
- Suivi de conformité documentaire (`/compliance`)
- Dashboard avec 4 onglets : assurances expirées, expire bientôt (30 jours), manquantes, alertes actives
- Envoi d'alertes individuelles et en masse aux clients concernés
- Résolution des alertes par l'admin
- Notification dans l'espace client : bannière rouge listant les documents à mettre à jour
- Détection automatique via cron quotidien : génère des alertes pour assurances expirant dans 30 jours
- Marketing mis à jour avec 4 nouvelles fonctionnalités :
- Signature électronique (e-Sign) des ententes
- Renouvellement automatique et termes de paiement
- Conformité et suivi documentaire
- Réservation en ligne
- Centre d'aide enrichi — 14 nouvelles pages bilingues (FR/EN) :
- Admin : signature électronique, renouvellements auto, versements, réservation en ligne, demandes de réservation, widget intégrable, suivi des assurances, alertes de conformité
- Client : signer une entente, renouveler mon entente, mes versements, mes documents Ă jour
[1.5.0] — 2026-04-07
Ajouté
- Système de renouvellement récurrent des ententes
- Toggle « Renouvellement automatique » dans le formulaire d'entente
- Page admin `/renouvellements` avec génération, approbation, override de tarif, relances
- Calcul automatique du tarif selon la grille tarifaire de l'année suivante (TarifCalculator)
- Flow client self-service : réviser → mettre à jour infos → choisir paiement → confirmer
- Notification dans le dashboard client pour les renouvellements en attente
- Versements et plans de paiement
- 6 options : paiement unique, 2-3-4-6 versements mensuels, dépôt + solde
- Chaque versement crée automatiquement une facture avec taxes
- Admin peut marquer les versements payés (comptant, chèque, Interac)
- Cascade : quand un versement Stripe est payé, le système met à jour l'installment
- 5 méthodes de paiement configurables par tenant
- Carte de crédit (Stripe), Transfert Interac, Comptant, Chèque, Compte client
- Configuration dans Paramètres → Renouvellements et paiements
- Cron quotidien (`cron/renewals.php`) : génération automatique des renouvellements X jours avant la saison + marquage des versements en retard
- Section « Renouvellements et paiements » dans la page Configuration du tenant
Ajouté (suite)
- Système de réservation en ligne depuis le site public du tenant
- Card de réservation style hôtel avec 2 modes : Court séjour (transient) et Saisonnier
- Formulaire complet : port, dates, navire (dimensions), services, coordonnées
- Calcul automatique du prix en temps réel (tarifs amarrage + services + taxes)
- Acceptation des conditions d'utilisation, politique d'annulation et vie privée
- Mention « la réservation n'est pas confirmée tant que le port ne l'a pas acceptée »
- Page admin « Demandes » : approuver/refuser avec notes, stats par statut
- Table `booking_requests` dans la DB tenant
- API publique sans auth pour estimate et soumission
- Widget de réservation multi-étapes intégré dans le hero de la page d'accueil du tenant
- 4 étapes : Type & dates → Navire → Services + estimation → Coordonnées + soumission
- Bouton « Nouvelle réservation » dans le dashboard client (ouvre le site public)
Corrigé
- Centre d'aide filtré pour les clients : seules les sections pertinentes sont affichées (Démarrage, Bateaux, Ententes, Facturation) au lieu du guide admin complet
- Signature électronique des ententes
- Pad de signature tactile (signature_pad.js) — fonctionne au doigt (mobile) et à la souris
- Signature sauvegardée en PNG base64 avec horodatage, IP et user-agent
- Intégrée au flow de renouvellement client (étape 6, obligatoire avant confirmation)
- Bouton « Signer » dans le tableau ententes du dashboard client pour les ententes non signées
- Signature affichée sur l'entente imprimée (PDF) avec mention légale et horodatage
- Statut de signature visible dans le modal admin (signé avec aperçu ou « Non signé »)
- Partial réutilisable `views/partials/signature_pad.php`
- Conforme Ă la Loi concernant le cadre juridique des technologies de l'information (L.R.Q., c. C-1.1)
Modifié
- Page Configuration restructurée en 8 onglets (Organisation, Tarification, Taxes, Renouvellements, Système, Réseau, IA, Stripe) avec navigation par tabs horizontales et support du hash URL
[1.4.0] — 2026-04-07
Ajouté
- Système POS (Point de vente) pour les plans Pro, Entreprise et AP
- Caisse enregistreuse avec grille d'articles par catégorie, panier, calcul TPS/TVQ automatique
- Catalogue avec 8 catégories pré-établies et ~25 articles par défaut (rampe, grue, entreposage, hivernage, carburant, eau/électricité, dépanneur, appâts)
- 4 méthodes de paiement : comptant, débit, crédit, compte client
- Impression de reçu format thermique
- Rapports quotidiens avec ventilation par méthode de paiement
- Historique des transactions avec annulation et restauration du stock
- Recherche de clients existants ou vente Ă un client de passage
- Suivi optionnel de l'inventaire avec alertes de stock bas
- Schéma DB prêt pour Stripe Terminal (futur)
[1.3.0] — 2026-04-07
Ajouté
- Inscription client depuis moorly.ca/inscription avec sélection du port/marina
[1.2.0] — 2026-04-06
Ajouté
- Données de démonstration réalistes : 25 clients (Côte-Nord), 25 bateaux, 4 quais, 36 emplacements, 25 ententes, 25 factures
- Application mobile réservée aux plans Pro, Entreprise et AP (gardiens de quai, opérateurs machinerie)
- Lien « App mobile » dans le sidebar pour les tenants Pro+
- Page d'upgrade pour les rĂ´les terrain sur plan Gratuit
- Feature « Application mobile » dans la page marketing (fonctionnalités + pricing cards)
- Page d'aide bilingue « Application mobile » (FR/EN) dans le centre d'aide
Modifié
- Pricing restructuré en cascade : Gratuit liste tout, Pro = « Tout du Gratuit + », Entreprise = « Tout du Pro + »
- Plus de features dupliquées entre les colonnes de prix (marketing + page licence)
- Inscription client depuis moorly.ca/inscription avec sélection du port/marina (dropdown des tenants actifs)
- Section « Pour les plaisanciers et pêcheurs » sur la page marketing avec CTA vers l'inscription
- CTA final avec deux boutons : « Je gère un port » + « Je suis un usager »
- Lien « Usagers » dans le navbar du marketing
Corrigé
- Amarrage épaule : les bateaux ne chevauchent plus les quais dans les coins et virages
- Détection des vertices (coins >10°) de la polyline du quai — les bateaux sautent par-dessus au lieu de s'y superposer
- Forme des bateaux inchangée (coque réaliste)
[1.1.1] — 2026-04-06
Modifié
- Mode démo interactif : les utilisateurs peuvent créer des clients, bateaux, ententes, factures, quais, etc.
- Seules les opérations sensibles restent bloquées (configuration, paiements Stripe, suppression de ports/administrations)
- Bannière démo mise à jour pour refléter l'interactivité
Corrigé
- Colonnes manquantes dans la BD demo (emplacements: lat/lng/rotation/map_width_m/map_length_m, cms_pages: 14 colonnes bilingues)
- Erreur 500 sur la page des quais en mode démo
[1.1.0] — 2026-04-06
Ajouté
- Système de versioning avec numéro de version visible sur toutes les pages (sidebar, footers)
- Page `/changelog` bilingue accessible depuis tous les contextes (marketing, tenant, admin)
- Helper `appVersion()` pour lire le fichier VERSION
- Lien cliquable vers le changelog depuis chaque layout
[1.0.0] — 2026-04-06
Fonctionnalités principales
Infrastructure
- Gestion multi-ports avec carte interactive (Leaflet)
- Quais avec tracé de lignes sur la carte et sélection du côté d'eau
- Emplacements désignés (spots) avec rotation, redimensionnement et dimensions en pieds
- Placement automatique des bateaux le long des quais avec détection de collisions
- Fournisseur de carte configurable (Google Maps satellite, OpenStreetMap, ESRI)
- Gestion des administrations portuaires avec membres du CA
Clients et bateaux
- Base de données clients avec coordonnées, urgence et compagnie
- Création automatique de compte utilisateur avec mot de passe temporaire
- Support multi-tenant : un client peut ĂŞtre inscrit sur plusieurs ports
- Registre des bateaux avec immatriculation, dimensions et assurance
- Recherche réseau inter-tenant (avec double consentement Loi 25)
Ententes et tarification
- Ententes d'amarrage (principal, avant-pêche, après-pêche, transient)
- 6 styles de tarification : pêche saisonnière, saisonnier simple, transient, annuel, commercial, hybride
- Grille tarifaire par catégorie, période et seuil de largeur (fixe, au pied, hybride)
- Services additionnels (rampe, électricité, hivernage, etc.)
- Copie de grille tarifaire d'une année à l'autre
Facturation et paiements
- Génération de factures avec calcul automatique des taxes (TPS/TVQ/TVH)
- Configuration fiscale par province (QC, ON, NB, NS, PE, NL, AB, BC, SK, MB)
- Impression de factures en PDF
- Paiements en ligne par carte de crédit via Stripe
- Commission de 3% sur le plan Gratuit, 0% sur Pro/Entreprise/AP
- Stripe Connect pour les paiements directs aux tenants
Site web public (CMS)
- Site web public bilingue (FR/EN) par sous-domaine (tenant.moorly.ca)
- CMS intégré avec pages, templates et documents PDF
- Génération de contenu par IA (Claude, ChatGPT ou Gemini au choix)
- Mode création et mode édition pour l'IA
- Design system Moorly Maritime (palette logo-derived, typography Montserrat/Source Sans)
- Hero crossfade avec images des ports
- Carte de quais publique, tarifs publics, pages de services et règlements
Dashboard et statistiques
- Dashboard administrateur avec KPIs, occupation par port et transferts
- Dashboard client avec bateaux, ententes, factures et bouton payer
- Statistiques d'occupation avec barres par type d'entente
Conformité et opérations
- Module de conformité (inspections)
- Module d'infractions avec impression PDF
- Gestion de la machinerie
- Permis commerciaux
Plateforme et abonnements
Plans
- Gratuit : 1 port, 50 utilisateurs, commission 3%, IA avec sa propre clé
- Pro (39$/mois ou 390$/an) : 5 ports, 200 utilisateurs, 0% commission, IA incluse
- Entreprise (890$ à vie) : illimité, 0% commission, IA incluse
- AP PPB : gratuit, illimité, pour Ports pour Petits Bateaux (Pêches et Océans Canada)
- Upgrade/downgrade via Stripe Checkout avec webhooks automatiques
- Annulation d'abonnement en self-service
Administration plateforme
- Panneau super-admin (moorly.ca/admin) avec liste des tenants et revenus
- Configuration Stripe plateforme avec synchronisation automatique des produits/prix
- Commission par plan configurable dans le code
Page marketing (moorly.ca)
- Landing page bilingue avec hero, fonctionnalités, pricing et carte du réseau
- Section tarification détaillée avec toggle mensuel/annuel
- Bannière AP PPB (gratuit pour les administrations portuaires)
- Démo en ligne accessible sans inscription (demo.moorly.ca)
- Mode démo avec bannière et blocage des écritures
Sécurité et conformité légale
Loi 25 du Québec et PIPEDA
- Bandeau de consentement cookies sur toutes les pages
- Politique de confidentialité bilingue (moorly.ca/privacy)
- Conditions d'utilisation bilingues (moorly.ca/terms)
- Consentement réseau à deux niveaux (tenant + individu)
- Export de données client : ZIP avec JSON + rapport HTML + factures
- Export de données tenant : ZIP avec dump SQL + JSON + documents uploadés
- Droit de suppression et portabilité des données
Authentification et sécurité
- JWT avec cookies httponly, expiration 24h
- Mots de passe bcrypt (cost 12)
- Contrôle d'accès par rôles (super_admin, license_admin, admin, staff, gardien_quai, operateur_machinerie, client)
- Changement de mot de passe forcé pour les comptes temporaires
- Isolation des données par tenant (base de données séparée)
Centre d'aide
- Documentation intégrée bilingue (FR/EN) avec 26 pages par langue
- Accessible depuis le dashboard (/aide) et publiquement (moorly.ca/aide)
- Recherche dans la documentation
- Navigation par sections avec liens précédent/suivant
Types d'organisation
- Administration portuaire PPB (logo officiel imposé, licence gratuite)
- Marina privée
- Marina municipale
- Club nautique / Yacht club
- Port de plaisance
- Port commercial / industriel