ESPC16 Hacks

The European SharePoint Conference Annual Hackathon took place on the evening of November 15 2016. Coders built applications based on great ideas, coding into the early hours of the morning under the supervision of Mike Ammerlaan and Vesa Juvonen.  Well done to everyone who took part for their hard work and impressive ideas.  Congratulations to the winning team, Andi Krüger and Stephan Kitzler-Walli with their hack Modern Webparts for On-premises.

 

Modern webparts for on-premises

Created By: Stephan Kitzler-Walli and Andi Krüger

https://www.youtube.com/watch?v=h9vleF1SX8k

 

Inspiration

SPFx (SharePoint Framework) webparts are cool and look great – but they are only available for SharePoint Online. Many of our customers are using SharePoint 2016 (or even older versions) and are not able to use the modern team sites. Why not bring SPFx to SharePoint on premises.

What it does

Our Modern Webparts for SharePoint on premises are offering new ways to integrate JavaScript build web parts in on premises environments. Even SPFx can be used in SharePoint 2013 or 2016 by now.

How we built it

  1. We had a look what’s behind the SharePoint Framework
  2. We tried to extract the SPFx webpart itself – the bare minimum
  3. We built the wrappers for all available platforms and put into it what’s possible

Challenges we ran into

We dealt with SharePoint!

Accomplishments that we’re proud of

SPFx is now available on-premises and all developers will be able to experience the lightweight development of modern javascript webparts and it’s benefits.

Thank you for our first hackathon, it was a great experience and thx again for the support from the peers.

Built With

  • .net
  • c#
  • javascript
  • gulp
  • spfx

 

Drops

Created by: Roel Kooistra, Nick Harvey and Ron Ackermans

https://www.youtube.com/watch?v=VpNp14jZVKg

Drops is an application that uses Powerapps and SharePoint framework to allow users to drop messages for each other.

During the project we created a SharePoint list which is the used to store the messages and the powerapp and SharePoint framework app query this list to get data based on a geolocation and a range. During the project we ran into issues with hooking up the powerapp to the list. We had to create a filter that calculates a range based on geolocations. We also ran into some trouble with the development tenant. All problems solved and it works.

To take drops further the categorizing can be improved and built in the powerapp. Everything can be more polished. Next sprint we’re looking at expanding drops to worldwide domination =)

Built With

  • powerapps
  • sharepoint-framework
  • react
  • javascript
  • html5
  • gulp
  • yeoman
  • node.js

 

Document Classifier

Created By: Aleksandr Burdin, Luis Enrique Lopez and Casimir Compaore

https://www.youtube.com/watch?v=W9b2T31bHzE

Inspiration

Learning modern web development technologies for SharePoint.

What it does

It automatically classifies documents uploaded to a SharePoint library and provides a friendly user interface to track their status.

How we built it

  1. Document Classification Processing
    We used Web Hooks for SharePoint to handle the notification of the document upload. This notification is received in a Azure Web App (MVC), which puts it in Azure Queue for later processing by an Azure Web Job. This jobs runs continuously, so it can respond within 5 seconds and avoid timeouts. It fetches the notification from the queue and queries target list for all new documents since last job execution (retrieved from Azure SQL Database). Then, it classifies the document based on its content using a keyword search algorithm, updating the corresponding list item field in SharePoint. Finally, it preserves the state of the last processed item in Azure SQL Database. Both, Azure Web App and Azure Web Job, are SharePoint Provider-hosted apps.
  2. Document Tracker
    We used a client web part to display the list of documents that have been classified by our system.Using Document Card component, user is able to preview a document, to edit it in Office Online and to approve it. This web part was built using SharePoint Framework, SharePoint REST API, ReactJS and Office UI Fabric. Besides, it visualize statistics of the different document categories using ChartJS.

Challenges we ran into

  1. Integrate all Azure Services for document classification processing using Web Hooks
  2. ReactJS 🙂
  3. Office UI Fabric layout and components
  4. Missing references in scaffolding: @microsoft/sp-client-preview and @microsoft/sp-webpart-base

Accomplishments that we’re proud of

  1. Working end to end system
  2. Successful implementation of Microsoft web technologies still in preview.
  3. Provide powerful and lightweight user interface

What we learned

Web Hooks, SharePoint Framework, TypeScript, ReactJS, Office UI Fabric components…

What’s next for Document Classifier

  1. Integrate with Azure Machine Learning/Improve our classification algorithm.
  2. Route classified and approved documents to special libraries.
  3. Introduce more customization options for users.

Built With

  • c#
  • sharepoint-framework
  • sharepoint-webhooks
  • javascript
  • react
  • chartjs
  • rest-api
  • sharepoint-add-ins
  • azure-web-app
  • azure
  • typescript

 

How Trump are you?

Crearted By: Kevin McDonnell, Martin Veen and Kurt Van Hamme

How Trump are you? – screenshot 1

Inspiration

A newly formed team, most of us had never met before but had similar ideas about an app you could take photos with, do something clever with it and show some fun stuff. This evolved into using Microsoft Cognitive Services to process those photos and check for emotion. Then Trump got involved…

What it does

The app centres around a Power App that allows someone to submit a photo with a few words saying how they feel about the conference so far. This ultimately gets submitted to a SharePoint list to view everything with a Power BI dashboard to give it a prettier view. This meant we could get a treemap of how everyone was feeling and a wordmap of what they were saying. Most importantly though, we could show the Top Trumpers.

How we built it

We split in to different areas of focus with one group looking at the Power App, one looking at the Cognitive Services calls and another looking at getting the image uploaded. Then as these got completed, we brought it all back together in one seamless….ok, semi-seamless whole. Then we realised that a Power BI dashboard would look good with it so added that too.

Challenges we ran into

Surprisingly, we found the hardest sounding parts easiest and the simpler ones caused most trouble. Using the Cognitive Services was really simple and the sample api calls on the documentation meant you could quickly try things out. Initally, we were calling this via REST with an WebHttpClient which caused a few problems but then we found the Nuget packages (NB – always check to see if others have done the hard work first!) and we were full steam ahead again.

Far harder was getting PowerApps to write the photo in to SharePoint. After some furious googling, we found that it wasn’t possible and certainly not in hackathon timings so we followed a recommendation of pushing it to Azure Blob Storage instead and then wrote the URL in to SharePoint. Once that was done, we were on easy street.

The final challenge was getting some content. What we needed was everyone together in one place and potentially with a few beers down them so they’d be happy to let us take a photo. If only there had been an event like that on Wednesday night…. Joking aside, thanks to the organisers for putting on a special get together just for our app – amazing venue and great event all round.

Accomplishments that we’re proud of

What are we proud of? A group of people, most of whom had never met before, came together with a range of skills and got something running across multiple platforms quickly! We showed what it means for end users to get something running quickly with only a few bits of code needed. We had some fun doing it.

What we learned

Flow and Power Apps are great but still a lot of missing features such as Flow being able to process JSON text and Power Apps being able to write images to SharePoint. Feels like you hit issues/missing features pretty quickly still which is a shame.

Also learnt that people don’t like Trump and are happy not to look like him! But I think we could have guessed that.

What’s next for How Trump are you?

Who knows! It’s a great demo of some of the tools and maybe it can evolve for future events. I’d love to pick up more of the Cognitive Services and process more. But maybe it’s enough Trump for now

Built With

  • power-apps
  • cognitive-services
  • sharepoint

Invoice App

Created by: Vipin Thomas

Inspiration

ESPC2016 changing the mindset the way technology and plugging us into the new era of work culture. I wanted to apply my learning as much as possible to solve a simple small scale business invoice generation with mobile, office 365 and outlook. I simply loved the simplicity of working with powerapps and flow to produce a minimal viable product in 2 days.

What it does

It help Service staff to create a simple invoice for their customers and send an email to them automatically from any device where they enter basic information.

How I built it

I was not having a type script experience so during hackathon I was figuring out the best way to implement a simple business scenario but an app that can be used by many. So decided to go with Powerapps and build the interface connected to a list. I wanted to store the picture of the service staff and his signature but some how the mapping was not happening and this is reported as a known issue. Now its getting too late and may be will work on getting this fix by brushing up my development skills.

Challenges I ran into

Mapping the picture in list to the powerapps.

Accomplishments that I’m proud of

I am really proud that i could make an end to end usable product in 2 days with almost NO CODE solution, if i brush up my skills and workout on spfx, react and typescripts. I feel i could bring more such good ideas into reality. Thank you Microsoft to give me such an opportunity.

What I learned

Any idea in mind if you strive hard you could get it working with Microsoft’s varied technologies and enhancements. Knowing where is the hidden techniques to quickly build app and harnessing the skills in certain new avenues can help us create vivid and creative products for the customer in no time.

What’s next for Invoice App

I want to get some charting and fix the signature and photo mapping. If possible want to add another flow for approving the invoice before it goes to customer. This will be my next learning curve i need to straighten out.

Built With

  • flow
  • office-365
  • powerapps
  • outlook
  • list

 

 

ESPC16 SP User Removal Tool

Created by: Sujeewa Ediriweera

Removing terminated users from an environment is frequent request comes from the HR team. Though the approval process is digitalized the user removal process of the different environments is still done as a manual task. This project’s aim is to create an entry point to remove list of users by looking at CSV file. Initially it the application remove the users from SharePoint Online environment. Since this is a console application the functionality can be extended to all the other applications which are used by the organization.

What it does

This is a C# console application which runs locally as a batch job. The application keep looks for new file to process. When document library receives a .csv file with the information of the terminated users it checks the schedule job date is future date or not. If it is not future date application simply process the request and remove users from SharePoint site collection or all the site collections in the Tenant (.config file configuration). The application logs all the actions and related information to a different document library. At the end of the successful request process application sends an email to administrator with the relevant URL for the log file and the original CSV file and right back the status of the cleanup process to the original csv file..

How I built it

Application consists of three main modules. AccountEncryptor Dose the encryption/decryption of the any string EUSP2016.Hackathon.DeleteUsers The console application with extra back ground thread. The back ground tread report time and upload log file at each 5 mins while back ground process is running the job . EUSP2016.Hackathon.Utility All the business logic and the application logic resides under this project

The application uses latest CSOM release to connect to the o365 client using explicit password authentication .The user name and encrypted password is kept in the app.config file.

Challenges I ran into

Time zone issue when query data against the scheduled time. Had to do some reach to get it working. Handling one site collection is easy but Handling multiple site collection is hard. Write the status back to .csv file against user was bit challenging

Accomplishments that I’m proud of

I was able to build full working solution with logs and emails which is most likely a clan solution and can be deploy to production environment with little more testing

What I learned

How to access the SharePoint online site remotely with using CSOM. Capabilities of new CSOM framework

What’s next for SP User Removal Tool

Test the application for the production usage . Add plugins to extend the functionality beyond the SharePoint nature . Remove user form CRM / ORCAL system etc.. Upload .csv file directly to SharePoint online from the HR system

Built With

  • csom
  • c#

 

Share this on...

Rate this Post:

Share:

Topics:

General

Tags: