Placements Management Web App

17 August 2021

The Informatics department at the University of Leicester uses a “paper-based” system for managing placements. This project replaced this with a custom web application, designed to support the needs of all the different groups of people involved with managing placements.

Visit GitHub Repo 🔗


The Placements Management Web App is a Spring (Java) application designed for my final year project at the University of Leicester. Fully accessible through the web interface, it is designed to meet the needs of many different user groups:

  • Students would use the application to find (and apply for) placements, submit placements they have found outside the system for approval, and check-in using the system whilst the placement is ongoing.
  • Tutors would manage placement matters related to their tutees, whilst they are applying for and out on placement.
  • Members of placement providers would have the ability to list their placements on the system, and make them open for applications by students. Applications can be personally approved and managed.
  • Administrators would oversee the whole system, and have reasonable control over activities and day-to-day operations.
  • Graduates would be able to login to the application, and check the state of their account as a former student - seeing information related to placements they were on, for example.

Given the needs of all these users, and the inherent requirements of the placements processes, a strong set of features were developed, which included:

  • Login and Registration
  • User Management
  • Creating and Managing “Authorisation Requests”, Providers, and Placements
  • Applying for Placements
  • Document / File Uploads
  • Scheduling Placement Visits
  • Searching Placements and Authorisation Requests
  • Messaging
  • Email Notifications (and Web Notifications for messages)
  • Activity Logging
  • Statistics and Export Creation
  • Graduate Records

Data is stored in a MySQL database. Various APIs, services, and libraries are utilised to achieve the full feature set. This includes:

  • Google Maps API - for geocoding addresses of providers and showing these on maps, and for working out the distance between placements when generating the tutor’s suggested visits list (using the Distance Matrix API.)
  • Firebase Cloud Messaging - for near instant receiving of messages sent through the application, and for sending web notifications to the user when a new message is received while away from the application, using a registered service worker.
  • Bootstrap 4 - for a fully responsive design. Where appropriate, a two-column layout is used on desktop, collapsing down to one column for smaller screen widths.
  • jQuery - for dynamic page content. Used for sending AJAX calls to the server to allow for immediate field validation (for example, when checking if a username or email has been taken by another user of the application). Also used for generating page elements without requiring a reload (for example, when a user selects files for upload, generating form fields to add a description for each of these files.)