Project Specification

The goal of the project is to familiarize participants with software development in Java in a web environment.

Project Submission

The submission and defense of the project will take place as follows:

  • The submission deadline (upload to the Edison and Kelvin systems) is prior to the defense, but no later than June 21, 2026.
  • Upload to the Edison system: Studies -> Seminar Papers -> Topic: Semester Project
  • The defense will take place in person, orally, on dates for which you must register. These dates are listed in the system at https://ees.cs.vsb.cz/subjects/1942/exams.

Points system

Students must earn at least 10 points and can earn a maximum of 25 points.

Project theme

Create a web application with a client using one of the following options:

  • Back end in Java – Spring with a REST interface and a client application in JavaFX.
  • Back end in Java - Spring with a REST interface and front end in any web technology (React, Vue)
  • Back end in Java - Spring with a limited REST API and web pages using Thymeleaf or another templating engine.

You may use a project from the previous semester (game/desktop) and focus on data storage. Store data using the REST API (you may use Swagger or an OpenAPI generator). It is also possible to use a project from other courses where the goal is to create a web application and merge the solution with the project for the Java2 course.

The application will use a database via JPA. At least 3 entities with relationships between them will be used. At least one relationship will be 1:N.

Project submission and defense will take place as follows:

  • The submission deadline is June 21, 2026, or prior to the project defense.
  • Upload the project to both the Edison and Kelvin systems
  • Uploading to the Edison system: Studies -> Seminar Papers -> Topic: Semester Project

The defense will take place in person, orally, on dates for which you must register. These are listed in the EES system at https://ees.cs.vsb.cz/subjects/1942/exams.

Guidelines for Developing

  • The desktop component (if applicable—depending on the project variant) must be implemented in JavaFX, not in the older swing and AWT.
  • When coding, follow the conventions for writing in Java (https://www.oracle.com/technetwork/java/codeconventions-150003.pdf or the revised version - https://www.scribd.com/doc/15884743/Java-Coding-Style-by-Achut-Reddy). You can use the properly configured automatic formatting in your IDE for everything.
  • Main formatting guidelines:
    • Opening curly braces always at the end of a line
    • Identifier names (classes, methods, variables) using CamelCase
    • Class names start with a capital letter
    • Method and variable names start with a lowercase letter
    • Your IDE can rename identifiers (classes, methods, variables) and all their occurrences in the code.
    • The statement following an `if` or `for` should always be on the next line, preferably within a code block (i.e., curly braces)
  • Static methods and variables WILL NOT be used, with the exception of helper functions and constants—consult the instructor regarding their use.
  • The project will involve the use of interfaces, collections.
  • Objects will be worked with via the most general type/interface, not via a specific class.
  • Use inheritance and interfaces to unify functionality and reuse code.
  • Use a debugger and breakpoints during development; they are very powerful tools.
  • In debug mode, the IDE can immediately reflect some code changes in the application without requiring a restart. You can also modify variable values in memory.
  • Read exceptions; if the exception header does not provide a clue, check if it includes "Caused By <another exception>" (this may be repeated several times)
  • A mandatory part of the project evaluation will be its defense to the instructor/lecturer.
  • Complete the project to the best of your ability in terms of scope and quality—functionality is what matters, not 100% perfection or exact replication of the original.
  • Libraries used during development will be included in the submitted project (as Maven dependencies) and will not require any additional configuration. Failure to comply with this rule will result in a penalty of a certain number of points based on the time required to get the project working.