Category: Student

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.

Cyber Security Lecture – HullCSS 2018

This week, I presented a lecture on Cyber Security for HullCSS. It covered Personal security, securing Applications you build, and organisation security. This was part of the HullCSS lecture series.

 

I covered three main topics, Personal Security, Developing Secure Solutions, and Organisational Security. The overall presentation is highly top level and basic. It covers common vulnerabilities and issues, but doesn’t go into too much depth as to how to protect and mitigate.

Personal Security focuses on the topic of using Password Managers, Two Factor authentication and other practises to develop good habits, and keep your online activity secure.

Secure Solutions covers the top vulnerabilities in applications, and how to mitigate them. It also covers how to spot vulnerabilities and encourage developers to build good habits.

Organisation security covers possible flaws where staff may expose information. It suggests some ideas to reduce the chance of this happening.

 

If you want to check out the slides from the event, you can find them below. If you’d like a full copy of the presentation (Available as a Keynote or PowerPoint) including notes, let me know. If you’d like to use this in your own presentation, please ask first.

Presentation Link

A Student Guide to Amazon Alexa Skills

I presented a talk last week for members of the Hull Computer Science Society (HullCSS) titled ‘How to get a free Amazon Echo’. In the talk, I discussed the basics of what Alexa is and how skills work. I then gave a basic introduction on how students can get involved in developing skills for them. We covered topics such as how Alexa handles Natural Language, how to use AWS to handle data given to your skills, and the different types of Skills you can develop for Alexa.

 

If you’re considering building a Skill, and you’re a member of HullCSS, get in touch and I might be able to lend you an Echo Dot to test it out. If you’re getting to the final stages of your build, we can help you test it out. There’s a wealth of resources online if you need them!

PowerPoint

If you attended the course, or you’re curious and want to get started, you can find the PowerPoint linked below. It contains most of the information given, either on slides or in the notes. I designed this talk to be a beginners introduction to Alexa. You can find more resources online, from Amazon and other bloggers.

Get the Presentation here