Course objectives list

Labs

1. week: Course schedule, conditions for granting the credit, assignments

  1. Get familiar with the organization of the course Component-oriented programming.
  2. Get familiar with the integrated development environment IntelliJ IDEA .
  3. Practice effective work with the development environment.
  4. Refresh the Java basics and debugging by solving simple programming tasks.

2. week: Task 1 - Game design

  1. Create and clone the project repository from GitLab Classroom and open it in IntelliJ IDEA.
  2. Identify the basic entities, relations and operations of a tile-based game and create a conceptual model of your game.
  3. Identify the fundamental states of the game and their transitions.
  4. Design the core game logic.

3. week: Task 2 - Implementing the game core

  1. Create classes for the game core in the Java language according to design that you created in the previous week.
  2. Implement the core game logic based on designs that you made in the previous week.
  3. Create unit tests for testing the initialization of the game field and game logic methods.

4. week: Task 3 - Creating a simple console interface

  1. Implement the game loop in which the game will run.
  2. Implement printing of the text representation of the game field.
  3. Implement processing of user input and communication with the user.

5. week: Task 4 - Implementing service components using JDBC

  1. Create a database for storing service data.
  2. Create entity classes representing service data and add interfaces for the service components.
  3. Implement the service component interfaces.
  4. Integrate the created services into your game.

7. week: Task 5 - Implementing service components using JPA

  1. Update the project structure.
  2. Annotate entity classes so that they can be used with JPA services in the game.
  3. Implement service components using JPA.
  4. Use the created services in your game.
  5. Adapt your project to run with Spring Boot .

8. week: Task 6 - Web REST services

  1. Update the project dependencies to allow further work in the course.
  2. Create a class for running the server-side application.
  3. Implement services exposing service components to the client through a REST interface.
  4. Create client services using the created REST interface.
  5. Run the server and client parts of the project.

10. week: Task 7 - Creating a web user interface for the game

  1. Update the project dependencies to work with the Thymeleaf templating engine.
  2. Prepare packages and necessary files for the web interface within the project structure.
  3. Create a web user interface.

11. week: Task 8 - Creating a web user interface for the game II

  1. Implement the web user interface.
  2. Implement interesting improvements to the game and increase the quality of the solution.

Milestones

6. week: Submission 1: game logic and JDBC

  1. Finalization of the source code from the completed tasks.
  2. Preparation of a short video documenting the functionality of the game.
  3. Finalization of the game design and bonus functionality.
  4. Submission of the assignment to the GitLab system.

9. week: Submission 2: JPA + REST

  1. Submission of tasks 5 and 6

13. week: Submission 3: The game in a web browser with GUI

  1. Finalization of the source code from the completed tasks.
  2. Preparation of a short video demonstrating the functionality of the game and services.
  3. Submission of the assignment to the GitLab system.
  4. Live demonstration of the assignment in the 13th week of the semester.

Sources & info

5. week: Návod na prácu s nástrojom DataGrip

  1. Pripojiť sa na databázový server PostgreSQL pomocou nástroja DataGrip .
  2. Vytvoriť na databázovom serveri novú databázu.
  3. Pripojiť sa na novo vytvorenú databázu.
  4. Naučiť sa pracovať s vytvorenou databázou.