/angular2-O365-desktop-app

Desktop application using Electron, Angular 2 and Office 365.

Primary LanguageTypeScriptMIT LicenseMIT

angular2-O365-desktop-app

Desktop application using Electron, Angular 2, Material Design Lite and Office 365 (Microsoft Graph API).

Application Demo

Getting started

Install dependencies

npm install

Compile typescript files

npm run tsc

Run application

npm run electron

Azure AD application Registration

Register this application in the Azure Active Directory service for your Office 365 tenant. Easy to use online tool: Office 365 App Registration Tool

  • App Registration Type: Native Application
  • Redirect URI: http://localhost:8000
  • Select all read items for Users, Groups, Mail, Calendar, Contacts and Files.
  • Register the app and remember to copy your client ID provided to you.
  • Update the svcConstant.ts file with your values.

Application Registration

Once your app is registered you need to download the app manifest file from Azure Portal Set "oauth2AllowImplicitFlow": true in application manifest file and upload the manifest file again.

Azure AD Application Permission requirements

You need to make sure the application permission is set correctly to have access to the Microsoft Graph resource. This can be done in the Azure Portal.

Required Permissions

  • Read all notebooks that the user can access
  • Access user's data anytime
  • Read items in all site collections
  • Read files that the user selects
  • Read user files and files shared with user
  • Read user contacts
  • Read user calendars
  • Read user mail
  • Read directory data
  • Read all groups
  • Read all users' full profiles
  • Read all users' basic profiles
  • Sign in and read user profile
  • Read user notebooks
  • Read users' relevant people list

Go to Microsoft Graph API if you want to know more.

Application Build & Deployment

Follow Electron documentation for build for Windows, Linux and OSX.

To package files for deployment:

  • npm install -g asar
  • asar pack angular2-O365-desktop-app app.asar

** More details to follow **

Resources

TODO

  • Set Electron top menu options.
  • Improve error handling.
  • Implement better design for each section.
  • Manual refresh button for user.
  • Add content paging.
  • Add D3.js for dashboard components
  • Setup production build task.
  • Create unit tests.

If you have any issues or suggestion please submit on GitHub Issues.