Aller à l'article
Aniq-UI

NorthstackProjets, tableaux et tâches

Projets, tableaux et tâches

Ce que contient un projet, la liste des projets et ses filtres, le tableau de tâches avec glisser-déposer et déplacements au clavier, ce que contient une tâche, les fichiers du projet, et l'archivage et la restauration.

Pour le pack Full Stack

Ce que contient un projet

PartieValeurs
Nom et description, en anglais et en arabeLe nom anglais est obligatoire (jusqu'à 120 caractères) ; le nom arabe et les deux descriptions sont facultatifs. Une page en arabe affiche le texte arabe quand il y en a un, l'anglais sinon.
PropriétaireUn membre de l'espace de travail. Le panneau propose chaque membre sauf Billing ; le responsable d'un nouveau projet est son créateur, sauf si un autre est choisi.
ÉchéanceFacultative. La vue d'ensemble liste les projets ouverts dont l'échéance tombe dans sa période sous Projects needing attention.
StatutIn progress (par défaut), Review, Blocked ou Completed. In progress, Review et Blocked comptent comme actifs.
ProgrèsDe 0 à 100, réglée à la main dans Project settings ; passer le statut à Completed la fixe à 100.
TableauSes tâches, en quatre colonnes : Backlog, In progress, Review et Done.
FichiersDes fichiers téléversés de 10 Mo au maximum chacun.

L'espace de travail du seed, Forma Studio, a 12 projets (6 en cours, 1 en revue, 1 bloqué et 4 terminés) avec leurs tableaux, et un projet archivé, Pilot dashboard, pour que l'archive ait quelque chose à restaurer.

La liste des projets

/en/dashboard/projects liste les projets de l'espace de travail, sept par page, le plus récemment mis à jour d'abord, pour les membres qui détiennent projects.read.

  • Trois onglets avec leurs totaux : All projects, Active et Completed.
  • Filtres : une recherche dans les noms et les descriptions, Status, Owner (les membres qui possèdent un projet) et Due date (échéance au plus tard le jour choisi). Reset les efface. L'onglet, les filtres et la page sont gardés dans l'adresse.
  • Colonnes : Project, Status, Owner, Progress, Due date, et un menu d'actions avec Open, Edit et Archive.
  • New project ouvre le panneau de projet. Archived ouvre les projets archivés.

Créer et modifier un projet

New project, sur la liste des projets et sur la vue d'ensemble, ouvre un panneau avec le nom et la description (un onglet anglais et un onglet arabe chacun), le responsable, l'échéance et le statut ; Create project l'enregistre et ouvre sa page. Sur la page d'un projet, Project settings ouvre le même panneau avec en plus Progress (%). Fermer le panneau avec des modifications non enregistrées demande d'abord confirmation.

  • Créer, modifier, archiver et restaurer demandent projects.write (propriétaires, admins et membres dans le seed).
  • Une fois épuisé le délai de grâce d'un espace de travail en retard de paiement (BILLING_GRACE_DAYS, 7 jours dans .env.example), ou une fois son abonnement annulé, un nouveau projet est refusé avec « The plan's limits are reached. Change the plan to add projects. » Les projets existants continuent de fonctionner.
  • Chaque changement est écrit dans le journal d'activité : project.created, project.updated (avec le statut d'origine et le nouveau), project.archived et project.restored.

Le tableau de tâches

La page d'un projet (/en/dashboard/projects/all/<id>) affiche son statut, son responsable, son échéance et sa progression, puis trois onglets : Board, Activity et Files.

  • Le tableau a quatre colonnes, Backlog, In progress, Review et Done, chacune avec son total. Une carte affiche le titre de la tâche, sa priorité, la personne assignée et l'échéance.
  • Faites glisser une carte vers une autre colonne ou un autre emplacement de sa colonne. Au clavier, appuyez sur Space pour prendre une tâche, sur les touches fléchées pour la déplacer, sur Space pour la déposer et sur Escape pour annuler. Le menu de chaque carte propose aussi Edit, Move to et Archive. Un déplacement que l'API refuse remet la carte où elle était.
  • View bascule entre Board et List, un tableau avec la tâche, le statut, la priorité, la personne assignée et l'échéance.
  • Filtres : Search tasks, Assignee et Priority.
  • New task ouvre le panneau de tâche. Les membres sans projects.write voient le tableau et les tâches en lecture seule.

Ce que contient une tâche

ChampValeurs
Titre et description, en anglais et en arabeLe titre anglais est obligatoire ; chaque titre accepte jusqu'à 160 caractères (« Keep the title to 160 characters. »), et le titre arabe et les deux descriptions sont facultatifs.
Personne assignéeUn membre de l'espace de travail (le panneau propose chaque membre sauf Billing), ou Unassigned.
ÉchéanceFacultative.
PrioritéHigh, Medium (normal) ou Low.
StatutBacklog, In progress, Review ou Done : la colonne du tableau.

Archive sur une carte retire la tâche du tableau après confirmation ; son historique reste dans l'activité. Les tâches archivées n'ont pas d'écran de restauration. Chaque changement de tâche est un événement d'activité (task.created, task.moved, task.updated, task.archived), et le graphique hebdomadaire de la vue d'ensemble les compte.

Fichiers du projet

  • L'onglet Files liste les fichiers d'un projet du plus récent au plus ancien, avec qui les a téléversés, leur taille et la date. Upload file accepte tout type de fichier jusqu'à 10 Mo (projects.write) ; Download demande projects.read.
  • Chaque fichier téléversé s'ajoute au stockage de l'espace de travail, que Billing mesure par rapport à la formule.
  • Un fichier est stocké sous un nom aléatoire dans le bucket Cloudflare R2 quand les cinq variables R2_* sont définies, sinon dans le MEDIA_UPLOAD_DIR de l'API (le volume de données avec Docker), et il est servi depuis cette adresse. Quiconque détient l'adresse d'un fichier peut l'ouvrir : partagez donc les liens avec soin.
  • Depuis le disque de l'API lui-même, un fichier qui n'est ni une image, ni un PDF, ni du texte brut, ni de l'audio ou de la vidéo, comme un fichier HTML ou SVG, est envoyé en téléchargement plutôt qu'ouvert dans le navigateur : une page téléversée ne s'exécute donc jamais à l'adresse de l'API. Un bucket sert chaque fichier avec le type qu'il avait au téléversement.

Archivage et restauration

Archive sur un projet le retire des listes, de la vue d'ensemble et de la recherche ; son tableau, ses tâches et ses fichiers restent tels quels. Archived (/en/dashboard/projects/deleted) liste les projets archivés, et Restore en remet un dans la liste avec ses tâches et ses fichiers. Les fichiers d'un projet archivé peuvent toujours être listés et téléchargés.

Les routes derrière ces pages

RoutePermission
GET /api/workspaces/:workspaceId/projects (status, state, search, ownerId, dueBefore, sort, order, page, limit jusqu'à 100)projects.read
GET .../projects/archived, GET .../projects/owners, GET .../projects/:projectId, GET .../projects/:projectId/activityprojects.read
POST .../projects, PATCH .../projects/:projectId, DELETE .../projects/:projectId (archive), POST .../projects/:projectId/restoreprojects.write
GET .../projects/:projectId/files, GET .../files/:fileId/downloadprojects.read
POST .../projects/:projectId/files (multipart, champ file)projects.write
GET .../projects/:projectId/tasks (assigneeId, priority, search)projects.read
POST .../projects/:projectId/tasks, PATCH .../tasks/:taskId, POST .../tasks/:taskId/move, DELETE .../tasks/:taskId (archive)projects.write

.../tasks/:taskId/move prend la colonne comme status et, pour placer la carte, l'identifiant de la carte devant laquelle elle se trouve désormais comme beforeId. Vos propres systèmes peuvent lire, créer et modifier des projets et ajouter des tâches avec une clé d'API sur /api/v1 à la place.

Bloqué sur une étape ?

Trouvez une solution avant de tout recommencer.

Dépannage

Préférences des Cookies

Nous utilisons des cookies pour améliorer votre expérience de navigation, analyser le trafic du site et personnaliser le contenu. En cliquant sur "Accepter Tout", vous consentez à notre utilisation des cookies pour l'analyse et la publicité personnalisée.