My thesis project in fulfilment of the requirements of my BSc degree, this project is a enterprise-grade application written in Java and JavaScript. It uses a Genetic Algorithm machine learning technique to automatically create a conflict-free schedule for a university classroom program.
The backend is a Java Spring Boot app built by Gradle running in a Tomcat container on an AWS EC2 instance, with a PostgreSQL database running on AWS RDS. The application is organised as a service-oriented architecture, with data access controlled by one microservice with a REST API, and the genetic algorithm being run on a separate microservice with its own API. A frontend is provided as a React progressive web app, interfacing with the remote APIs to start new scheduling jobs in the genetic algorithm and display existing schedules.
Background of the genetic algorithm operation and deeper technical details are available in the thesis report