|
| 1 | +# Plan Tracker |
| 2 | + |
| 3 | +## Summary |
| 4 | + |
| 5 | +**Plan Tracker** is a SharePoint Framework (SPFx) Adaptive Card Extension (ACE) that provides a visually engaging and interactive dashboard for Microsoft Planner. It allows users to view buckets, tasks, project members, and personal assignments in an organized and customizable interface. Tasks can be sorted by priority or due date, and include visual status indicators, inline navigation, and plan-level insights. |
| 6 | + |
| 7 | + |
| 8 | + |
| 9 | + |
| 10 | + |
| 11 | + |
| 12 | +## Used SharePoint Framework Version |
| 13 | + |
| 14 | + |
| 15 | + |
| 16 | +## Applies to |
| 17 | + |
| 18 | +- [SharePoint Framework](https://aka.ms/spfx) |
| 19 | +- [Microsoft 365 tenant](https://docs.microsoft.com/en-us/sharepoint/dev/spfx/set-up-your-developer-tenant) |
| 20 | + |
| 21 | +> Get your own free development tenant by subscribing to [Microsoft 365 developer program](http://aka.ms/o365devprogram) |
| 22 | +
|
| 23 | +## Prerequisites |
| 24 | + |
| 25 | +- A valid Microsoft 365 tenant |
| 26 | +- Microsoft Planner license |
| 27 | +- Microsoft Graph API permissions for Planner and Users |
| 28 | +- SPFx development environment set up |
| 29 | + |
| 30 | +## Required Microsoft Graph API Permissions |
| 31 | + |
| 32 | +To ensure proper functionality, the following Graph API permissions must be **approved in the SharePoint Admin Center** under **API Access** after deployment: |
| 33 | + |
| 34 | +The **Plan Tracker** ACE requires the following **delegated Microsoft Graph API permissions**. These must be approved by a tenant administrator in the [Microsoft 365 Admin Center](https://admin.microsoft.com). |
| 35 | + |
| 36 | +| Permission Type | Permission Scope | Description | |
| 37 | +|------------------|--------------------------|-----------------------------------------------------| |
| 38 | +| Delegated | `Planner.Read` | Read tasks, buckets, and plans in Planner | |
| 39 | +| Delegated | `Group.Read.All` | Access Planner plan group membership | |
| 40 | +| Delegated | `User.ReadBasic.All` | Read user basic profiles (for task assignees) | |
| 41 | +| Delegated | `Organization.Read.All` | Read tenant ID (used for Planner URL generation) | |
| 42 | + |
| 43 | +> **Note:** This solution uses read-only permissions to ensure safe, non-destructive access to Planner data. |
| 44 | +
|
| 45 | + |
| 46 | +> These are declared in `package-solution.json` under `webApiPermissionRequests`. |
| 47 | +
|
| 48 | + |
| 49 | +## Solution |
| 50 | + |
| 51 | +| Solution | Author(s) | |
| 52 | +| ----------- | ------------------------------------------------------- | |
| 53 | +| plan-tracker | Ahmad Jad Alhak, [ahmad-jad-alhak](https://github.com/ahmad-jad-alhak) | |
| 54 | + |
| 55 | +## Version history |
| 56 | + |
| 57 | +| Version | Date | Comments | |
| 58 | +| ------- | ------------- | -------------------------- | |
| 59 | +| 1.0 | July 10, 2025 | Initial release | |
| 60 | + |
| 61 | +## Disclaimer |
| 62 | + |
| 63 | +**THIS CODE IS PROVIDED _AS IS_ WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.** |
| 64 | + |
| 65 | +--- |
| 66 | + |
| 67 | +## Minimal Path to Awesome |
| 68 | + |
| 69 | +- Clone this repository |
| 70 | +- Navigate to the solution folder: |
| 71 | + ```bash |
| 72 | + cd plan-tracker |
| 73 | + ``` |
| 74 | +- Install dependencies and start the local server: |
| 75 | + ```bash |
| 76 | + npm install |
| 77 | + gulp serve |
| 78 | + ``` |
| 79 | + |
| 80 | +## Features |
| 81 | + |
| 82 | +This extension offers the following features: |
| 83 | + |
| 84 | +- View Planner buckets and task summaries in card-based layouts |
| 85 | +- Filter and sort tasks by due date and priority |
| 86 | +- View only “My Tasks” assigned to the current user |
| 87 | +- Display project members from the Planner plan |
| 88 | +- Navigate directly to Microsoft Planner for any task |
| 89 | +- Customize card title and icon via property pane |
| 90 | + |
| 91 | +> Designed with usability, performance, and modern UI alignment in mind. |
| 92 | +
|
| 93 | +## References |
| 94 | + |
| 95 | +- [Getting started with SharePoint Framework](https://docs.microsoft.com/en-us/sharepoint/dev/spfx/set-up-your-developer-tenant) |
| 96 | +- [Building for Microsoft Teams](https://docs.microsoft.com/en-us/sharepoint/dev/spfx/build-for-teams-overview) |
| 97 | +- [Use Microsoft Graph in your solution](https://docs.microsoft.com/en-us/sharepoint/dev/spfx/web-parts/get-started/using-microsoft-graph-apis) |
| 98 | +- [Publish SPFx apps to the Marketplace](https://docs.microsoft.com/en-us/sharepoint/dev/spfx/publish-to-marketplace-overview) |
| 99 | +- [Microsoft 365 Patterns and Practices](https://aka.ms/m365pnp) |
| 100 | + |
| 101 | + |
| 102 | +## Quick Navigation & Views |
| 103 | + |
| 104 | +Plan Tracker includes three main views for navigating and interacting with your Planner data: |
| 105 | + |
| 106 | +### 1. Planner Buckets View |
| 107 | +- Displays all Planner buckets in a clean card layout. |
| 108 | +- Allows drill-down into specific buckets. |
| 109 | +- Tasks are shown with color-coded status and icons. |
| 110 | +- Sorting options: **Priority** and **Due Date**. |
| 111 | + |
| 112 | +### 2. My Tasks View |
| 113 | +- Shows only tasks assigned to the current user. |
| 114 | +- Same task layout as Planner view, with sorting support. |
| 115 | +- Great for quickly reviewing individual work items. |
| 116 | + |
| 117 | +### 3. Project Members View |
| 118 | +- Displays members associated with the Planner plan. |
| 119 | +- Useful for understanding team composition and responsibilities. |
| 120 | + |
| 121 | +All views support consistent styling, vertical alignment, and adaptive layouts. |
| 122 | + |
| 123 | +## Mapping Task Status to Short Names and Colors |
| 124 | + |
| 125 | +Plan Tracker supports a customizable mapping between Planner task status and their visual representation. |
| 126 | + |
| 127 | +| Status | Short Name | Color | |
| 128 | +|---------------|------------|-----------| |
| 129 | +| Not Started | NS | `#E0E0E0` | |
| 130 | +| In Progress | WIP | `#ffb900` | |
| 131 | +| Completed | COM | `#4CAF50` | |
| 132 | + |
| 133 | +> These mappings are editable through the **Property Pane** using a collection data control. "Name" is locked, but users can change `shortName` and `color`. |
0 commit comments