I wanted to do a landscape assessment of whether users/orgnaisations are willing to use third-party Microsoft Teams apps and what would be the buying patterns (per user vs. per organisations). Also whether users will be reluctant to consent to permission requested by third-party app vendor specially write access.

What it does

staffdirectory app enables you to have an organisational wide view of the people you interact with including your colleagues and external contacts. staffdirectory app offers two different experiences, one within Microsoft Teams as a tab and a stand-alone web experience. The app offers a responsive web interface which makes it accessible via different devices (mobile and tablet) in addition to desktops. staffdirectory finds people around you are using Microsoft Graph people API which retrieves the most relevant people first. By default, staffdirectory works using the current user context and it can be to retrieve the global list of contacts, but it requires the admin to fully configure the app permissions. You can view users and contacts in a list view, user tile displays user full name, title and allows you to execute quick actions like:

  • View user direct reports (only if the application is fully configured)
  • View user joined teams (only if the application is fully configured)
  • View user profile image (only if the application is fully configured)
  • Save user information as VCARD
  • View detailed user information in a custom responsive profile page
  • Send email to the user
  • Call user via Microsoft Teams For each user you can view more user information using a custom profile page. You can use staffdirectory to define custom user properties and view it in the user's custom profile page, you can import custom user properties in bulk using a csv file. Custom user properties can only appear in the custom profile page only. ## How I built it Using ReactJS as Frontend with a paid template, dotnet core for owned APIs, protected with Azure AD, storage is done using Azure Storage Table, single account per location for Basic tier, dedicated storage account for higher tiers. ## Challenges I ran into
  • Microsoft Graph Authentication mechanism (Least privilege scenarios/ on behalf of for Microsoft Teams)
  • Multi-Tenant Application provisioning
  • Storage account limitation per subscription per region
  • Azure Functions execution time limitation. ## Accomplishments that I'm proud of overcoming the authentication challenges, as I'm not doing much of hands on for a while now It was nice to get back and write some code. ## What I learned
  • App Roles limitation for Azure AD
  • Protect custom API using Azure AD ## What's next for StaffDirectory
  • Adding ability to share a contact/user card within Microsoft Team using command extension
  • Adding the ability to enrich contacts using LinkedIn, contact will have their own detailed page when this is finalised which is a snapshot of some LinkedIn properties as defined by the admin.

Built With

Share this project: