{"id":19316628,"url":"https://github.com/wisskirchenj/jsondb","last_synced_at":"2026-04-30T07:33:34.337Z","repository":{"id":110253444,"uuid":"540976564","full_name":"wisskirchenj/jsondb","owner":"wisskirchenj","description":"Json-Database Server that clients can connect to via sockets","archived":false,"fork":false,"pushed_at":"2024-01-05T18:03:26.000Z","size":144,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-27T21:38:28.306Z","etag":null,"topics":["client-server","gson","java18","jcommander","jedis","multithreading","redis","socket-programming"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/wisskirchenj.png","metadata":{"files":{"readme":"README.MD","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2022-09-24T21:49:33.000Z","updated_at":"2022-10-21T16:34:50.000Z","dependencies_parsed_at":null,"dependency_job_id":"be9f6f17-66a3-4003-b95b-8227370d3fd3","html_url":"https://github.com/wisskirchenj/jsondb","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/wisskirchenj/jsondb","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wisskirchenj%2Fjsondb","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wisskirchenj%2Fjsondb/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wisskirchenj%2Fjsondb/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wisskirchenj%2Fjsondb/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wisskirchenj","download_url":"https://codeload.github.com/wisskirchenj/jsondb/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wisskirchenj%2Fjsondb/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32458237,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-29T22:27:22.272Z","status":"online","status_checked_at":"2026-04-30T02:00:05.929Z","response_time":57,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["client-server","gson","java18","jcommander","jedis","multithreading","redis","socket-programming"],"created_at":"2024-11-10T01:12:02.909Z","updated_at":"2026-04-30T07:33:34.319Z","avatar_url":"https://github.com/wisskirchenj.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# IDEA EDU Course ...\n\nImplemented in the Java Developer Track of hyperskill.org's JetBrain Academy.\n\nPurpose of doing this project, is to further practise core java topics as multi-threading, a socket,\nserver-socket server-client application, the Gson and Jcommander libraries and some more POJO java and\ncollect some experience with REDIS NoSQL-DB and it's Java connector Jedis.\n\nThis is a graduate project of the Java Developer Track.\n\n## Technology / External Libraries\n\n- POJO Java 18,\n- Socket \u0026 ServerSocket - connection between server and client(s)\n- multi-threading with Java Executor-Service (Java-core .util.concurrent)\n- Apache GSON library\n- JCommander library to parse CL-arguments\n- Redis / Jedis -\u003e used in Stage 4 - also CI-Container as GitHub-actions service\n- Apache Log4j SLF4J API binding to Log4j 2 logging and\n- Junit 5 with\n- Mockito (mockito-inline) testing.\n\n## Repository Contents\n\nThe sources of main project tasks (6 stages) and unit, mockito testing.\n\n## Program description\n\nA server-client(s) application that simulates the Json storage and retrieval in a server-side\nJson-database. The DB-realization is done via self-made Json-file File-Database (in later stages) and the\nClient-Server connection is \"low-level\" build via Socket to ServerSocket connections. Clients are processed\nmultithreaded using ExecutorService.\n\nHave fun!\n\n## Project completion\n\nProject was completed on 30.10.22.\n\n## Progress\n\n24.09.22 Project started - git repo and gradle setup.\n\n24.09.22 Stage 1 completed - a cell database simulated by y string array. Some CL commands to set, get and delete in \nthe 'database'.\n\n14.10.22 Stage 2 completed - a client and server application are implemented, which communicate via sockets. A very\nbasic connection is established in this stage - requesting and receiving a random record #.\n\n16.10.22 Stage 3 completed - server applications now handles the cell database and works on socket connection\nfor clients in a loop until exit command set. com.beust.jcommander used to parse CL-parameter options\n\n21.10.22 Stage 4 completed - socket communication now in Json Format (Database Command and Response). Use of Gson-library.\nDatabase is now a Redis KeyStore which is connected from the Java Server with the Jedis-library.\n\n24.10.22 Stage 5 completed - multithreaded request handling with executor service. \nDatabase file-based hand-made using ReentrantReadWriteLock.\n\n24.10.22 Stage 6 completed - multithreaded and now with arbitrary Json-values to store - and set/get/delete can\naccept hierarchical keychain to set/look/delete nested in Json.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwisskirchenj%2Fjsondb","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwisskirchenj%2Fjsondb","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwisskirchenj%2Fjsondb/lists"}