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.
David Ježek




