{"id":21347050,"url":"https://github.com/yann39/zk-spring-boot-example","last_synced_at":"2026-04-04T21:32:15.035Z","repository":{"id":226656011,"uuid":"753063159","full_name":"Yann39/zk-spring-boot-example","owner":"Yann39","description":"Sample Java application integrating ZK with Spring Boot","archived":false,"fork":false,"pushed_at":"2024-03-08T19:16:54.000Z","size":346,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-04-03T11:30:42.951Z","etag":null,"topics":["bootstrap","docker","docker-compose","java","jpa-hibernate","mariadb","spring-boot","springboot","zk","zkoss"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Yann39.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-02-05T11:54:18.000Z","updated_at":"2024-03-08T19:18:40.000Z","dependencies_parsed_at":null,"dependency_job_id":"601ac715-c3db-490d-b7de-5f1163ce5e9a","html_url":"https://github.com/Yann39/zk-spring-boot-example","commit_stats":null,"previous_names":["yann39/zk-spring-boot-example"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Yann39/zk-spring-boot-example","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Yann39%2Fzk-spring-boot-example","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Yann39%2Fzk-spring-boot-example/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Yann39%2Fzk-spring-boot-example/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Yann39%2Fzk-spring-boot-example/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Yann39","download_url":"https://codeload.github.com/Yann39/zk-spring-boot-example/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Yann39%2Fzk-spring-boot-example/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31415110,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-04T20:09:54.854Z","status":"ssl_error","status_checked_at":"2026-04-04T20:09:44.350Z","response_time":60,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bootstrap","docker","docker-compose","java","jpa-hibernate","mariadb","spring-boot","springboot","zk","zkoss"],"created_at":"2024-11-22T02:12:28.820Z","updated_at":"2026-04-04T21:32:14.989Z","avatar_url":"https://github.com/Yann39.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ZK Spring Boot Example Application\n\nSample **Dockerized** application integrating **ZK** with **Spring Boot**.\n\n![Version](https://img.shields.io/badge/Version-1.0.4-2AAB92.svg)\n![Static Badge](https://img.shields.io/badge/Last%20update-23%20Dec%202018-blue)\n\n![Version](https://img.shields.io/badge/JDK-11-red.svg)\n![Version](https://img.shields.io/badge/Spring%20Boot-2.1.0-green.svg)\n![Version](https://img.shields.io/badge/ZK-8.6.0-blue.svg)\n![Version](https://img.shields.io/badge/Bootstrap-4.1.3-purple.svg)\n![Version](https://img.shields.io/badge/MariaDB-10.3-teal.svg)\n\n---\n\n# Table of Contents\n\n* [About](#about)\n* [Technologies](#technologies)\n* [Functionalities](#functionalities)\n* [Usage](#usage)\n* [License](#license)\n\n# About\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\n        \u003cimg alt=\"Java logo\" src=\"doc/logo-java.svg\" height=\"72\"/\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n        \u003cimg alt=\"Spring logo\" src=\"doc/logo-spring.svg\" height=\"36\"/\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n        \u003cimg alt=\"ZK logo\" src=\"doc/logo-zk.svg\" height=\"96\"/\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n        \u003cimg alt=\"Bootstrap logo\" src=\"doc/logo-bootstrap.svg\" height=\"56\"/\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n        \u003cimg alt=\"MariaDB logo\" src=\"doc/logo-mariadb.svg\" height=\"56\"/\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n        \u003cimg alt=\"Docker logo\" src=\"doc/logo-docker.svg\" height=\"56\"/\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\nThis project is a sample course management application intended to demonstrate the use of the **ZK** Java web framework (https://www.zkoss.org/) through MVVM,\nin a minimal \"real world\" application connected to a database.\n\nIt provides Docker configuration for rapid deployment.\n\n# Technologies\n\n- Docker (Compose 3.5)\n- Java 11\n- Spring Boot 2.1.0 (Undertow 2)\n- Apache 2.4.37 with SSL and HTTP/2\n- MariaDB 10.3\n- JPA/Hibernate 5.3\n- ZK 8.6.0\n- Bootstrap 4.1.3\n\n# Functionalities\n\nThe application mainly offers the following functionalities :\n\n- Multilingual interface (FR / EN)\n- Course listing with paging, sorting and filtering capabilities\n- Administration interface allowing to :\n  - List / add / edit / delete instructors\n  - List / add / edit / delete categories\n  - List / add / edit / delete courses\n\nIt uses main ZK components like tab boxes, grids, list boxes, group boxes, text boxes, buttons, dropdown lists, date pickers, CKEditor, ...\n\nFor CKEditor, I've added 2 plugins, `notification` and `wordcount` to display live information about number of words / characters in the editor footer.\n\nThe administration area is not restricted, admin user information are hardcoded in the related viewmodel, but you would of course retrieve this from a real authentication system.\n\nHere are some screenshots :\n\n### Home page (course list)\n\n\u003cimg alt=\"Screenshot home page\" src=\"doc/screen-home.png\"/\u003e\n\n### Administration interface (modifying instructor)\n\n\u003cimg alt=\"Screenshot admin edit instructors\" src=\"doc/screen-admin-edit-instructors.png\"/\u003e\n\n### Administration interface (creating course)\n\n\u003cimg alt=\"Screenshot admin edit course\" src=\"doc/screen-admin-edit-course.png\"/\u003e\n\n# Usage\n\n1. Run `docker-compose up` from the root folder, you should end up with 3 running containers :\n   - _zk-spring-boot-example_apache_ : Apache\n   - _zk-spring-boot-example_app_ : Application server (Undertow) with SSL (https), and JPDA (debug) configured\n   - _zk-spring-boot-example_mariadb_ : MariaDB database\n2. Build the project to create the JAR file\n3. Reach https://localhost/zk-spring-boot-example\n\nThe database will be initialized with some data (from the _data.sql_ file) thanks to the **JPA** initialization mode.\n\n\u003e [!Warning]\n\u003e You may have to update the Apache version (line `wget https://www.apache.org/dist/httpd/httpd-2.4.58.tar.gz`\n\u003e in the Dockerfile (_docker\\apache\\Dockerfile_) if it does not exist anymore.\n\n# License\n\n[General Public License (GPL) v3](https://www.gnu.org/licenses/gpl-3.0.en.html)\n\nThis program is free software: you can redistribute it and/or modify it under the terms of the GNU\nGeneral Public License as published by the Free Software Foundation, either version 3 of the\nLicense, or (at your option) any later version.\n\nThis program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without\neven the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\nGeneral Public License for more details.\n    \nYou should have received a copy of the GNU General Public License along with this program.  If not,\nsee \u003chttp://www.gnu.org/licenses/\u003e.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyann39%2Fzk-spring-boot-example","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyann39%2Fzk-spring-boot-example","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyann39%2Fzk-spring-boot-example/lists"}