{"id":20288855,"url":"https://github.com/juliemturner/public-samples","last_synced_at":"2025-07-31T11:37:37.628Z","repository":{"id":48127791,"uuid":"77962236","full_name":"juliemturner/Public-Samples","owner":"juliemturner","description":"Public samples from speaking engagements and blog posts","archived":false,"fork":false,"pushed_at":"2024-11-14T23:23:41.000Z","size":20188,"stargazers_count":37,"open_issues_count":1,"forks_count":17,"subscribers_count":7,"default_branch":"main","last_synced_at":"2024-12-08T17:36:17.350Z","etag":null,"topics":["adal","javascript","sharepoint","sharepoint-online"],"latest_commit_sha":null,"homepage":"http://julieturner.net","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/juliemturner.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-01-03T23:30:55.000Z","updated_at":"2024-11-14T23:23:44.000Z","dependencies_parsed_at":"2023-01-18T20:02:06.841Z","dependency_job_id":"8017bb31-8d81-4bc2-93d6-6b6ae7f8dd24","html_url":"https://github.com/juliemturner/Public-Samples","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/juliemturner%2FPublic-Samples","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/juliemturner%2FPublic-Samples/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/juliemturner%2FPublic-Samples/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/juliemturner%2FPublic-Samples/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/juliemturner","download_url":"https://codeload.github.com/juliemturner/Public-Samples/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":230487843,"owners_count":18233865,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["adal","javascript","sharepoint","sharepoint-online"],"created_at":"2024-11-14T14:49:21.958Z","updated_at":"2025-07-31T11:37:37.561Z","avatar_url":"https://github.com/juliemturner.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Public Samples\n\nThis repo is for any public published samples from presentations or blog articles.\n\nPlease feel free to utilize the code at will.  As such there are no guarantees that any code provided in this repo will function properly in all cases, and is meant for educational use only.\n\nUSE INSTRUCTIONS: All examples that are not written using the SharePoint framework are intended for classic SharePoint and, unless otherwise stipulated, are intended to be run inside the context of a SharePoint site collection. Where a 3rd party library was used I make an effort to point to a public CDN where available. Many of these examples have references to custom files that would be stored in a library in a site collection in my own tenant.  Please make sure you review the locations of all reference libraries and make sure to adjust accordingly to your own needs.\n\n## Conference Sessions - Most recent sessions at the top\n\n### Azure Functions: Real world scenarios and NodeJS implementation overview\n\nSample: [`AzureFunctionsIntro`](./AzureFunctionsIntro)\n\n#### Presentation\n\n[Introduction to Azure Functions](./Presentations/AzureFunctionsIntro.pdf)\n\n### Level up workflow with Webhooks (Change Events)\n\nNodeJS - Event Grid: [`Webhooks NodeJs`](./WebhooksEventGrid)\n.NET C# - HTTP Tigger: [`Webhooks C#`](./Webhooks)\n\n#### Presentation\n\n[Level Up Workflow with Webhoooks](./Presentations/LevelUpWorkflowWebhooks.pdf)\n\n### Build Solutions for Microsoft 365 with a Fluent API Library\n\n[PnPjs Documentation](https://pnp.github.io/pnpjs/)\n\n#### Presentation\n\n[Build Solutions for Microsoft 365 with a Fluent API Library](./Presentations//Build%20Solutions%20for%20Microsoft%20365%20with%20a%20Fluent%20API%20Library.pdf)\n\n### Extending Microsoft 365: Exploring the Art of the Possible\n\n[Links](./M365ExtLinks.md)\n\n#### Presentation\n[Extending Microsoft 365: Exploring the Art of the Possible](./Presentations/M365Extensibility.pdf)\n\n### Building reusable code libraries for extending Microsoft 365\n\nSample: [`NPM Libraries for SPFx`](./NPMLibraries)\n\n#### Presentation\n\n[](./Presentations/Building reusable code libraries.pdf)\n\n### Managing Multiple tenants in Microsoft 365\n\n#### Presentation\n\n[Managing Multiple tenants in Microsoft 365](./Presentations/Managing%20Multiple%20tenants%20in%20Microsoft%20365.pdf)\n\n### From Low Code to Pro Code Workshop\n\n[Links](./LowCodeProCode.md)\n\n### Microsoft 365 \n\n#### Presentation\n[Microsoft 365 Development: Atomic Component Design](./Presentations/M365%20Dev%20-%20Atomic%20React%20Component%20Design.pdf)\n\n### Level up workflow with Webhooks\n\nSample: [`Webhooks`](./Webhooks)\n\n### PnPjs and the SharePoint Framework: Version 3 What's New\n\nSample [`PnPjsV3`](./PnPjsV3/)\n\n### An Introduction to Atomic React Component Design\n\nSample: [`Atomic Design`](./AtomicDesign)\n\n### PnPjs and Async/Await - A Powerful Combination to Make your SharePoint Framework code Sing\n\nSample: [`PnPjs and Async/Await`](./PnPjsAsyncAwait)\n\n### Strategies for Modernizing Your Development Skills\n\nDemo: [`Development Toolchain`](./DevelopmentToolchain)\n\n### BI for the Cobbler's Children - Client Side Charting and Graphing\n\nDemo: C3 Chart -\u003e [`C3 Chart`](./SP%20Client%20Charting/C3%20Chart)\n\nDemo: C3 Dashboard -\u003e [`C3 Dashboard`](./SP%20Client%20Charting/Dashboard)\n\nDemo: Canvas Gauge -\u003e [`Canvas Gauge`](./SP%20Client%20Charting/Gauge)\n\n### Excel automation scenarios with SharePoint client-side development\n\nDemo: Microsoft Graph Excel -\u003e [`MSGraph Excel`](./MSGraph%20Excel)\n\n### Develop and deploy Outlook Actionable Messages for optimize user productivity\n\nDemo: Actionable Message Azure Functions -\u003e [`AMFunctions`](./AMFunctions)\n\n### Leveraging Microsoft Graph API through Client Side Web Parts\n\nDemo: Use adal.js library without a framework -\u003e [`SPADALNoFramework`](./MSGraph%20ADAL%20Intro/SPADALNoFramework)\n\nDemo: Use adal.js \u0026 adal-angular.js in AngularJS 1.x application -\u003e [`SPADALAngular`](./MSGraph%20ADAL%20Intro/SPADALAngular)\n\nDemo: Create Excel Spreadsheet from Client Side Widget -\u003e [`SPADALMSGraphAPI`](./MSGraph%20ADAL%20Intro/SPADALMSGraphAPI)\n\n### Getting Started with JavaScript Development Workshop\n\nAll Demos in the subfolder: [`SP Intro Client Dev`](./SP%20Intro%20Client%20Dev)\n\n### Build a Complete Business Solution using Microsoft Graph API through Client Side Web Parts\n\nDemo: Get Manager/Peers/Direct Reports -\u003e [`GetManagerPeerDR.ts`](./MSGraph%20Application)\n\nDemo: File from SharePoint to OneDrive -\u003e [`FileSPtoOD.ts`](./MSGraph%20Application)\n\n## Blog Posts - Most recent posts at the top\n\n\u003eBlog posts are linked here, with a link to the corresponding code to the right of the -\u003e\n\n[SPFx Command Set Dialogs without DOM Manipulation using hTWOo React](https://julieturner.net/post/htwoo-dialogs-command/) -\u003e [`hTWOoDialogCommand`](./hTWOoDialogCommand)\n\n[Using CSS Variables to Morph Your SPFx Design at Run Time](https://wp.me/p7UKup-ew) -\u003e [`CSSVariables`](./CSSVariables)\n\n[Curate the News: Social Following Sites on behalf of a user](https://julieturner.net/?p=838\u0026preview=true) -\u003e [`FollowSite`](./FollowSite)\n\n[Resolve to Log](https://julieturner.net/2018/12/resolve-to-log/) -\u003e [`PnPLogger`](./PnPLogger)\n\n[Conquer your dev toolchain in classic SharePoint](http://julieturner.net/series/conquer-your-dev-toolchain-in-classic-sharepoint/) -\u003e [`DevelopmentToolchain`](./DevelopmentToolchain)\n\n[Creating a property pane for editing items in your SPFx web parts](http://wp.me/p7UKup-6D) -\u003e [`SPFXItemProperty`](./SPFXItemProperty)\n\n[Utilizing ngOfficeUIFabric People Picker in SharePoint](http://wp.me/p7UKup-5v) -\u003e [`NGFabricUIPeoplePicker`](./NGFabricUIPeoplePicker)\n\n[SharePoint time, is not your time, is not their time.](http://wp.me/p7UKup-5a) -\u003e [`SPDateTime`](./SPDateTime)\n\n[Extending SharePoint with ADAL and the Microsoft Graph API](http://wp.me/p7UKup-28) -\u003e [`MSGraph ADAL Intro`](./MSGraph%20ADAL%20Intro)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjuliemturner%2Fpublic-samples","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjuliemturner%2Fpublic-samples","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjuliemturner%2Fpublic-samples/lists"}