JISC DigiFest Hackathon 2020

It’s been a year to the day since I published my last blog post reflecting on the DigiFest Hackathon of 2019. It’s been a busy year, but the opportunity to reunite the team for another Hackathon was one we couldn’t turn down!

As usual, the theme of this Hackathon is EdTech, organised by JISC. JISC are a UK non-profit, aimed at providing advice and resources in the tech sector, to schools and universities. Our team consisted of Nathaniel Read, Alex Lovett and Dan Tregoiing. We’ve completed a number of Hackathons together, and we’re all members (or alumni in my case) of the University of Hull, and Hull Computer Science Society (HullCSS). This event is for students and recent graduates, and JISC were happy to invite us to compete again.

A photo of the four hackathon team members in matching hoodies, on a stage
Team HullCSS (from left to right): Alex Lovett, Harry Gwinnell, Dan Tregoiing & Nathaniel Read

Nathaniel wrote a fantastic piece about the event as a whole, and I’d recommend you read it. This post will focus more on the technology behind what we built, and how it works.

Solution

oneGrade is our automatic marking solution, aimed at Computer Science teaching. Marking code is inherently complex problem given how many possible solutions exist. As such, we designed a solution to automate as much of the quantitative aspect of the marking process as possible.

The concept is simple; students submit their work (git or svn link) via a web interface or VLE integration, code is checked out and built into a container using Azure Kubernetes Service, and a suite of automated Unit, Interface, Integration etc testing can be performed. Azure Web Apps and Azure Container Service power this workflow, and results are delivered via the oneGrade web interface.

To setup an assignment, a lecturer must provide a Dockerfile that defines their assignment (e.g. an .NET Core image) and any number of testing scripts for their unit/integration/other testing framework that we support. This gives us the power of flexibility, allowing the platform to support any mix of languages and unlimited testing potential. This is all stored in the database against the assignment ID, and pulled out for use at container build time.

The Student interface is also simple, providing only a list of assignments. Assignments have either a submission box for a source URI, or a link to the report for their marks.

A flowchart of the solution architecture

The solution consists of two components, a React frontend providing our Instructor and Student UI, with an ASP .NET Core backend providing our Container Management services and testing environment. This hackathon was my first encounter with React, though I’m happy to say it was an experience I rather enjoyed. React proved a flexible and straightforward framework, and I was able to get going quickly. Most of my web experience is through the ASP.NET MVC Framework, with traditional JQuery.

The backend is responsible for taking a submission, building it into a container, and running the suite of defined tests. It does this using Azure Kubernetes Service (AKS). oneGrade will accept submissions, generate a worker process, and dispatch a request to AKS. Once AKS reports that the image is built and the container is running, the worker will run the defined testing, and store the results in the database. This provides a detached testing method, allowing for highly parallel operation.

Conclusion

Overall, the solution was fairly robust and solved the challenge we set for ourselves. There were a number of features we’d hoped to implement but simply ran out of time for, including a wider array of testing support, and using Azure Blockchain Service to store submissions for plagiarism detection. I’m pleased with how far we took the project during the Hackathon, and we may see some future iteration in our free time.

Our team was awarded the “Most Market Ready Solution” prize by JISC, for which we are immensely grateful. Competition was very strong with many incredible solutions being proposed, and both myself and the team would like to thank JISC for the opportunity to attend!

JISC DigiFest Hackathon 2019

The wonderful people over at JISC invited us along to their two day Hackathon, running alongside their DigiFest event. We pulled together a team of four, Nathaniel, Dan, Alex and myself and began coming up with ideas. They identified a number of key ideas they wanted us to build solutions for, including:

  • Student Wellbeing
  • Shaping the Curriculum
  • AI or Intelligent Agents to support learning
  • Intelligent Campus

Our idea was fairly straightforward. Our University (The University of Hull) has a whole host of services regularly accessed by students, often requiring student cards and logins to a variety of fragmented systems. Could we bundle all of these into a single source (A mobile app) and replace the 16,000+ physical plastic student cards with a Digital alternative. We put this under a combination of Intelligent Campus and Student Wellbeing, aiming to provide a platform that provides NFC powered mobile student cards, and a range of student services including help, security, timetables, travel etc.

We soon heard back that we’d been accepted, and a couple of months later we headed over to Birmingham for the event. JISC provides travel, hotel, food and everything we needed for the event, meeting on the first evening for dinner in a local restaurant. Much of the first night was spent throwing ideas around about how this might form, the kinds of services we wanted to offer while minimizing the amount of used space. The University currently uses an app called iHull, but this suffers from several issues around usability, and a lot of rarely used tiles on it’s home screen. We were looking for a fresh approach, something that aligned with the University’s brand identity more strongly.

As we made our way into the first official day of the event, we divided our four man team into tasks. Nathaniel worked on the UI Design (and some of the Xcode!), Alex and Dan worked on Backend services, and I was tasked with building the app in Xcode. Soon after, designs started flowing in from Nathaniel, and we were quickly constructing UI and linking together pages and Navigation Menus. Day 1 went by fairly successfully with a huge focus on getting the app looking presentable. We knew there wasn’t much time on Day 2, so we needed it to look good. We ended the day with a pretty satisfying looking app, and much of our backend services for login, weather and calendar information working, but not linked to our app.

At this point JISC invited us to their drinks reception, and we spent a couple of hours chatting and drinking with JISC employees and University delegates alike. Many interesting conversations were had, from AI Rabbit Robots to JISC Apprenticeships and more. Dinner followed in the most delicious pizza place, with our delegation filling almost the entire venue!

We finished off day 1 with a late night programming session, tying up our messy UI, fixing scaling bugs and deploying to TestFlight. We managed to tidy up most of the UI, leaving the evening with a reasonably function app.

Day 2 was split into two parts. Before lunch, and after. We spent much of the morning working on pulling the backend into the app we’d made, linking our login pages, UI, calendars etc to use the real data generated in the web platform. We then spent the afternoon building and tweaking our presentation. The presentation comprised mostly of screenshots of the app, using the strong brand identity present to produce and overall very professional looking presentation.

It was then time to present what we had made to a team of JISC Judges, the other teams, and a bunch of Delegates from the conference that were invited to attend. JISC’s own team of interns went first, followed by us, and the other teams. You can watch the presentation we gave here.

As the presentations wrapped up, the winners were announced, and we were delighted to be named the winners of this years event. All of the teams produced fantastic solutions, from interactive chatbots for campus services to a live French lesson using speech recognition. We’re incredibly proud to have been named the winner.

We’d like to thank JISC for inviting us to the event, and to everyone who was involved for making it a great competition.

We’re continuing to build out the app as a fun side project, and you can find more info on it here or contact me if you want to know more.

Microsoft Identity Manager 2016

I recently learned that at Microsoft, employee ID badges double up as Smart Cards. These are used for performing tasks that need 2FA, such as password resets, signing docs etc. I was curious as to how they achieved it, and I came across a rather powerful, yet relatively obscure tool called Microsoft Identity Manager 2016.

A Microsoft Employee badge

Microsoft Identity Manager (or MIM) is a replacement for Forefront Identity Manager (FIM) built as a mostly ground up rewrite of the platform. Despite a lot of exposure to the Microsoft ecosystem, this is a tool I’ve never come across.
The idea is to centralize employee management, pulling data from places such as Active Directory, and allowing it to be used with Smart Cards, enabling Self Service Password Resets/Recovery, assigning Certificates, Priviledged Access Management and more, all while being Cloud Ready (Azure MFA, Azure AD etc).

I’m still setting this up to see how it works in practise, and it’s no simple task. It requires IIS, SQL, Sharepoint and optionally Exchange. While I don’t mind the first two, Sharepoint and Exchange are both platforms I’ve never experienced, so we’ll see how that goes. The platform uses Sharepoint for the frontend side of the password recovery tools, and Exchange is used for sending out password resets etc as far as I can tell. So far it’s allowed me to use O365 in place of Exchange, and I don’t see any loss of functionality.

I’ve been investigating Smart Cards for Windows login for a while now, and this could prove a useful tool if I can get it to work. Either way I’ll be sure to put something up once I’ve had a proper chance to use and play with it!

Microsoft Future Decoded 2018

The Event

Last week featured the 2018 installment of Microsoft’s annual Future Decoded event, hosted at the Excel in London (Whether they did this for the Office pun is as yet unconfirmed). To quote Microsoft themselves :-

Microsoft Future Decoded provided two days of top-level keynotes, breakout sessions, networking and an action-packed expo, giving the information and practical advice needed to help grow your business in the changing world of Digital Transformation and AI.

That means both technical and business people head down to catch up on the latest from Microsoft and their partners. We all speculate on what the future might hold while showing off what we’ve got to offer today.

For those who don’t know me so well, I work for a Microsoft Mixed Reality Partner called VISR doing all kinds of technical wizardry. As you can expect, we showed off lots of shiny HoloLens tech we’ve been working on.

A picture of VISR's stand for Future Decoded

VISR’s Stand the day before the show!

FUSE

One of the demos we were running provides a guided maintainence platform in MR, giving frontline workers access to deeper information without the need for their hands. You can check out a video on YouTube or find more info on the product at VISR’s website but essentially it adds information about the device being repaired such as status of internal components, and twins it with info on the last repair, notes left by previous maintainers, etc. It also provides step by step instructions to ensure you complete the repair safely if you need them, overlaying holographic animations and instructions, and verifying each step has been completed successfully. If you ever put the device into an unsafe state, warnings are shown to guide you back.

My role in this application in particular is in the IoT tech inside the applicance itself. In this demo, we’re using a UPS Mains panel, leftover from our datacentre. The maintainence guides you through replacing a fuse in the applicance itself, and each of the switches, the fuse itself, the door and the lock are all rigged with sensors. An embedded device inside the applicance keeps a track of these sensors at all times, reporting status back to our PaaS solution, for others to keep an eye on. In our demo, an app inside Microsoft Teams keeps an eye on the Applicance, and if things go wrong, it prompts the users to create a maintainence job for the device. An engineer can then head onsite with a HoloLens and perform the maintainence, and the Appliance will mark itself as repaired, and notes saved for next time.

FUSE Tech

The tech inside for this example all runs in .NET Core running on an embedded Linux device. It’s surprisingly performant, and we’ve had no issues with it so far. It gets a little shaky with the WiFi connection inside a conference venue (especially with it’s antenna locked inside a steel box!) but most people made it through the demo and could appreciate the value of the solution.

It aims to cover the “Head up, hands free” approach that Microsoft is targeting in this space, replacing the need for manuals or tablets for repair guides, and freeing up the hands of our engineers and front line workers. This app is packaged ready to go, with just a couple of config changes to meet client needs, so we’re pretty happy with how this rolled out.

An image of the FUSE UI

A slightly older build of FUSE

Talks

As always there was a wealth of technical talks and knowledge available, and I managed to miss all of them!

Instead, I was lucky enough to catch a keynote given by Dr Maggie Aderin-Pocock MBE and Sir Michael Caine CBE.

Dr Aderin-Pocock’s talk was an inspiring tale of a journey through life, working against her Dyslexia and a raft of naysayers to become a renowned scientist. She has worked on the James Webb Space Telescope, appeared on TV as an Astonomy expert, and given a number of talks and presentations, among many other achievements. Hearing her speak was a truly inspiring experience, and her tale is one I won’t forget in a hurry.

Sir Michael Caine also offered an insighful journey through his career, highlighting decisions and events that have impacted his life. He has many interesting stories to tell, and a host of life advice that even the more experienced of us would be mindful to listen to.

Finally, the second day hosted a talk by Satya Nadella himself, covering the future of technology both from Microsoft and the industry alike. He highlighted the role of Cloud in the future of technology, and the role AI is playing in day to day life as more companies begin to integrate it into their businesses. It was an interesting view on the technical landscape, and we’ll see how his predictions play out.

Networking

I love attending these events, as it gives me a chance to meet some incredibly interesting people. Last year I managed to have a long discussion with the guy who created Paint 3D on the Windows team, before moving on to an interesting chap who put Cortana inside a robot dog!

This year was spent chatting to some awesome people, including several architects from BJSS, the ever amazing guys at Transparity, and more Microsoft employees than I know what to do with.

Huge thanks go to the team that spend months preparing for this event on the Microsoft side, and to VISR for bringing me along for the third consecutive year. I can only hope the trend continues!

NASA Space Apps Challenge

This weekend, 4 members of HullCSS and I headed over to the C4DI to take on the Space Apps Challenge, a two day Hackathon focused around building applications with a space theme. We had very little idea of what the event was or what we wanted to do heading into it. Nonetheless, bright eyed and bushy tailed, we fought over the 4 plug sockets for our 5 laptops.

The Challenge

Our first step was to filter through the list of challenges, removing any challenge that we lacked the skill set for, or we found no interest in. This left us with 10 remaining tasks for consideration. Each member then ranked their top 4 choices, and we quickly came to a winner. “Do YOU Know When the Next Rocket Launch Is?” was to become the theme of our project.

This left us in an interesting spot. Building information systems is something we all had some degree of experience in, but how do we present our data in an engaging and interactive way to our users? We toyed with the idea of web pages, flow charts, etc, but finally settled on the idea of using a 3D planet, with all of our launch locations marked, for the user to explore. We selected PlayCanvas as our tool of choice, as I’ve got some prior experience with it, it’s easily embedded on the web, and Adam was willing to learn some JavaScript.

Getting to work

With that, Dan, Alex and Nathaniel set to work on the .NET Core MVC side of the application, and Adam and I set to work on the PlayCanvas section.

By the end of the first day, we’d created something quite impressive. Our basic MVC site held the embedded PlayCanvas app, showing a fully interact-able globe, but no rockets yet. The basics of our embedded Calendar option were also present, but it wasn’t being populated with data. Dan & Alex had built tools to scrape launch data from the web, but we were yet to connect these up.

As we made our way into the second day, our morning scrum was held in the nearby Cafe Nibble. Following a hearty breakfast by all, we rolled into our tasks for the day, translating our latitude and longitude into positions on our 3D globe, connecting up and displaying our data sources, and finalizing graphics for our presentation.

Judging

3pm marked the beginning of Judging Time, with Rob Miles stepping up to replace one of the judges who was unable to attend. After a round of presentations from each team, many of which showcased fantastic and creative solutions to their given problems, the judges headed off to deliberate.

After what felt like an eternity, they returned to announce the People’s Choice winner, Team Starflower followed by the overall winner, Team HullCSS. We’re incredibly happy to be named the winners of the event, and we’re really proud of the solution we created.

More Info

Thanks goes to C4DI for hosting us at their office, providing Pizza and refreshments for the weekend.

We’re looking to host our solution live in the coming week, and I’ll pop a link here when that happens.

If you want to check out more about our solution, there’s some more screenshots and video over here.

Want to know more? Have more questions? Head over to the Contact page to get in touch!

Humber Care Tech Challenge

On the 6th and 7th of September, fellow HullCSS member Dan and I travelled to Bridlington for the first Humber Care Tech Challenge. The event was hosted and sponsored by East Riding of Yorkshire Council, the University of Hull, Amazon, C4DI and the One Point, presenting us the challenge to come up with a technology to create solutions that help the elderly, infirm and others in care with their daily lives.

As we entered as a team of two, the organisers contacted us several days prior to pair us with another group of two, from the City Health Care Partnership. We’d never met before, but we welcomed these two guys to work with us on the solution. As it turned out, the guys weren’t Developers, so we used them as a great source of inspiration and ideas, due to their experience in the healthcare industry.

The idea we pitched in the first day was essentially Amazon Alexa for Care Homes, providing residents with information about their meals, activities, visitors, etc, and access to their nurses. It twinned this with a range of Smart Home and Smart Health tech, to allow staff and relatives to monitor the patients in terms of weight, blood pressure, etc, and to check they’ve closed doors, windows etc. This also allows our bed bound patients more control over their environment, allowing them to open curtains, turn off lights and more. The app also ran Intent Analysis across all requests, to pickup key words which might flag up signs of depression, dementia, etc, which can be used to flag a patient for a review with the Mental Health teams.

The judges were impressed with the idea, but we didn’t win the first day’s prizes, instead picking up the Peoples Choice Award for our concept. We’d developed a strong presentation showing the idea, and an Alexa Flash Briefing with some of the information that would be available.

The second day allowed us to commence with actual development, with us choosing to build an ASP MVC Application, on .NET Core, running on AWS. This provided a web interface for Care Home staff and Relatives to monitor the patients, and update information about activities and meals. This app also featured an API for use by Alexa, to retrieve information, pass data back etc.

The finished product came out looking really smooth and polished, despite us only taking the one day to work on it (we have the commit graph to prove it!). We managed to win both People’s Choice Award and the Best Solution prizes, taking home the first ever Care Tech Trophy, and an Echo Dot each to boot!

We’re not certain what the future holds for the solution we developed, but Dan and I continue to work on it. Who knows what the future will hold!

Overall the challenge was great fun, and I’d recommend you check out the next one in 2019! I went in with pretty much no knowledge of the inner workings of the healthcare sector, and all 13 teams produced a fantastic solution, several of which are progressing to full roll out!

Microsoft TechDays Online 2018

Last Tuesday I was given the fantastic oppertunity to speak at the Microsoft TechDays Online event, talking about the Vertx project that I work on for VISR. It’s certainly not my first Microsoft Event, but it’s the first in which I’ve found myself in a speaking position. I met up with some fantastic people, who work with MR and AI for Microsoft. The event was great fun, and I’d like to thank those involved in getting me there!

Quick Update – TechDays Online

Tomorrow I’ve been given the chance to talk at Microsoft’s TechDays Online as part of London Tech Week. You can find the info and itinerary here if you’re interested. I’ll be talking on Mixed Reality and the role it played in building Vertx!

https://blogs.technet.microsoft.com/uktechnet/2018/06/08/the-techdays-online-schedule-is-here-dont-miss-out/

What I’ve been up to – Microsoft Exams and Summer Camps

May 2018

It’s been a while since I posted anything of note here, so I thought I’d give an update on what I’ve been up to. Aside from exams and coursework, I’ve been working to bring the VISR Summer Camp to life, and studying to further my Microsoft qualifications. We’ve added a bunch of hardware to our infrastructure, including a 10Gbps backbone network and a HP C7000 Blade system, which has been keeping me occupied!

 

I’ve previously completed the Installation, Storage and Compute with Windows Server 2016 to achieve my MCP (Microsoft Certified Professional), and I’m looking to take it further. I’m working to complete the other two exams, to complete the MCSA in Windows Server 2016, and as such I’ve been brushing up on my Identity with Windows Server. This is the third exam of the set, skipping over the Networking exam. I’ve done this as my Active Directory skills are much better than my Networking ones at the moment, so I figured I’d get the easier exam out of the way first.

I’m in the final stages of exam prep now, running through the practice exams and getting ready for testing, running through labs, and generally brushing up my knowledge.

If anyone was considering completing a Microsoft certification, I’d strongly recommend them, especially if you’re a student. The exam is particularly cheap if you’re a student, at just £65. They’re a valuable cert to have, and any Microsoft Partner needs certified employees to maintain their ratings!

I’ll be back soon with some more updates on what I’m up to. If you’re curious about anything, let me know and I’ll see if I can write something up. I’m hoping to write up some more about the work I’ve been doing recently, but avoiding the NDA barrier can be difficult! See you all soon!

Getting started with Azure for students

I’ve had quite a few students tell me that they’d like to use a cloud platform, but they’re complex, hard to get started with, or expensive. I agree they can be quite confusing to a new user, but I’ve set out to make a simple ‘Getting Started’ guide for Microsoft Azure.

I’ve worked with the Azure platform for a couple of years now. As such, I’m starting to get an idea of what all the buttons do, and where all the settings are. However, Azure is a constantly evolving platform, and by the time you read this, it is very possible options have moved. Take these instructions as a guide, and maybe a search engine can help you find the rest.

We’ll start with how to get signed up for an Azure subscription as a Student. Azure has several layers of privilege behind its billing system. The main thing to know is every resource you create (VMs, App Services etc) is linked to a Subscription. Subscriptions have payment details linked to them, and determine how much you pay. If you use Azure in a professional capacity, you may use a Subscription setup by a CSP (Cloud Solution Provider) or some other entity. For our purposes, we’ll be setting up our own Imagine Subscription (Mine is called Dreamspark, yours may well be different too. As long as it’s not Pay-As-You-Go or Free Trial, you should be OK).

If you’re not a Student, or your School or University doesn’t have a partnership with Microsft (This is rare but it happens), you can sign up using the Free Trial here. Microsoft will give you $200 (at time of writing) to play  with. You can still use all of the free services, but if you’re not careful, you might end up paying for Standard Resources! Student subscriptions have a payment cap of £0 to stop them accidentally spending money!

Signing Up for Microsoft Imagine

First things first, you need to sign up for Microsoft Imagine, the Microsoft Student program. Imagine gives you access to a whole range of Microsoft services, and it’s worth having a browse around to see what’s available This will give you a link to use to sign up for Azure. If you wish to keep using your Imagine account, you’ll need to re-verify your Student status once a year. If you have done this already, you can skip ahead, otherwise read on to find out how to sign up.

  • Head over to Microsoft Imagine
  • Sign In in the top right corner (If you haven’t already) and click Imagine Account
  • Microsoft Account Menu
  • Next, you’ll need to verify your Student status using the pane  on the left. If you’ve already done this, no need to do the next step.
  • Student Status panel
  • Select how you’d like to verify your Student status. This will vary based on your institution (I used my Student email address)
  • Finally, complete your verification (In my case, using the email from Microsoft)

Get your link to the Azure Sign up

Now we’ll get signed up for Azure using our Student status. As of writing, this link will get you $100 of credit, and access to a bunch of Always Free and Free for 12 Month services.

  • Head to this Microsoft Imagine page
  • Click the ‘Register Now’ button. If you don’t see it, you may not be signed in, or you may not have verified your Student status
  • Register Now button
  • You will then be redirected to Azure to complete the process.
  • Complete the Identity Verification presented
  • Then. complete the Card Verification. If you use any chargeable resources, this is the card they will be charged to!
  • Finally, complete the Agreement
  • You should then be left in the Azure dashboard
  • Azure Portal

Now what?

Feel free to explore the Azure dashboard and the resources available. Be aware that if you create any, they may cost money, and be charged to your card.

Over the coming weeks, I’ll be writing a few guides for projects you can do to get started on Azure. These will only use Free resources, so you can try them out too!

 

How’d it go? Has anything changed? Ran into issues? Got an idea for a project you want to build in Azure?

Leave me a comment, or Contact Me!