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.
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:
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:
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.
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!
That said, if you do not like any of the these ideas, feel free to explore your own and let your creativity flow!
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.