2. Course Project
Programming Project 2022/23

2.1. Scope

You are expected to work on a project that inspires you. This means that you are free to choose what application you will develop using Java.

What you can do

You can build a information management system, implemented as a desktop app, a command-line app, or a web app.

Here are some past projects in this direction:

  • A JavaFX application for firefighters, in which one could manage emergencies, firefighter teams, and vehicles.
  • A JavaFX application to teach people how to code using a simple self-designed programming language.
  • A collaborative web application for task management.

Although Java is not the most popular language for games, you can build a game as your course project. After all, Minecraft was built in Java and so were these other games!

You may even want to learn an open-source game framework, like libGDX and jMonkeyEngine.

In past editions of this course, students created:

  • A multiplayer pictionary game.
  • A game to help people improve their typing speed.
  • An idle game about collecting resources playable through Telegram.

You can also build a library for other programmers to use when they create their own applications. For inspiration, you can check out popular Java libraries like Google Guava and Apache HTTPComponents.

  • In previous years, a group developed a linear algebra library.

Another idea is a data science project, in which you create graphics and perform statistical analyses to discover interesting insights from a dataset.

If you are into testing, a browser automation project might be right for you. In such a project you will program interactions with websites or web applications and test if they behave as expected. To do that, you will likely need to learn something like the Selenium WebDriver.

If none of these ideas sounds interesting, you could do a web crawling project. In this case, your goal would be to automate the collection of data from one or more websites and showcase this data in an interesting way!

  • For example, a group implemented an crawler to get NBA stats from various websites and then exposed the data via a web API.

That said, if you do not like any of the these ideas, feel free to explore your own and let your creativity flow!

What you cannot do

You CANNOT develop a mobile app.

You CANNOT use a database management system, like MySQL, PostgreSQL, and MongoDB.

Your project CANNOT require the installation of a server to be deployed, such as Apache Tomcat. If you are developing a web application, make sure you embed your server in your jar. If you are developing a Spring Boot application you may want to check this or this guide.

You CANNOT copy and paste a project from the web and call it a day. It is fine, however, to use projects as inspiration. If you reuse any code, make sure that you reference the source explicitly in your documentation.

You CANNOT use other programming languages besides Java. This means that none of Kotlin, Groovy, Closure and Scala can be used.