{"id":44324424,"url":"https://github.com/vrnsky/java-a-to-z","last_synced_at":"2026-02-11T07:14:32.066Z","repository":{"id":8705241,"uuid":"59420995","full_name":"vrnsky/java-a-to-z","owner":"vrnsky","description":"Java Study Project","archived":false,"fork":false,"pushed_at":"2024-11-25T06:18:00.000Z","size":1525,"stargazers_count":12,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-11-25T07:23:19.515Z","etag":null,"topics":["java","oop","study-project"],"latest_commit_sha":null,"homepage":"https://job4j.ru","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/vrnsky.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,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-05-22T15:58:19.000Z","updated_at":"2024-11-19T02:51:16.000Z","dependencies_parsed_at":"2024-08-03T14:23:08.539Z","dependency_job_id":"8a1a90d7-a268-4339-ba27-32f683569ce2","html_url":"https://github.com/vrnsky/java-a-to-z","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/vrnsky/java-a-to-z","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vrnsky%2Fjava-a-to-z","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vrnsky%2Fjava-a-to-z/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vrnsky%2Fjava-a-to-z/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vrnsky%2Fjava-a-to-z/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vrnsky","download_url":"https://codeload.github.com/vrnsky/java-a-to-z/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vrnsky%2Fjava-a-to-z/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29329492,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-11T06:13:03.264Z","status":"ssl_error","status_checked_at":"2026-02-11T06:12:55.843Z","response_time":97,"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":["java","oop","study-project"],"created_at":"2026-02-11T07:14:32.003Z","updated_at":"2026-02-11T07:14:32.051Z","avatar_url":"https://github.com/vrnsky.png","language":"Java","readme":"[![Build](https://github.com/vrnsky/java-a-to-z/actions/workflows/build.yml/badge.svg?branch=master)](https://github.com/vrnsky/java-a-to-z/actions/workflows/build.yml)\n[![codecov](https://codecov.io/gh/vrnsky/java-a-to-z/branch/master/graph/badge.svg)](https://codecov.io/gh/vrnsky/java-a-to-z)\n[![Java](https://img.shields.io/badge/Java-17-%23ED8B00.svg?logo=openjdk\u0026logoColor=white)](#)\n[![JUnit5](https://img.shields.io/badge/Tested_with-JUnit_5-1?logo=junit5)](#)\n[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=vrnsky_java-a-to-z\u0026metric=alert_status)](https://sonarcloud.io/summary/new_code?id=vrnsky_java-a-to-z)\n\nThis repository contains solution of task from courses at the job4j.ru course.\nIn course use next technology :\n1. [Maven](https://maven.apache.org/)\n2. [JUnit](https://junit.org/junit5/)\n3. [Mockito/PowerMock](https://site.mockito.org/)\n4. [Hibernate](https://hibernate.org/)\n5. [jQuery](https://jquery.com/)\n6. [Bootstrap](https://getbootstrap.com/)\n\nChapters:\n1. \u003cstrike\u003e[Basic syntax](./chapter1)\u003c/strike\u003e\n2. \u003cstrike\u003e[Object oriented programming](./chapter2)\u003c/strike\u003e\n3. \u003cstrike\u003e[Input/Output](./chapter3)\u003c/strike\u003e\n4. \u003cstrike\u003e[Object oriented design](./chapter4)\u003c/strike\u003e\n5. \u003cstrike\u003e[Collections](./chapter5)\u003c/strike\u003e\n6. \u003cstrike\u003e[Garbage Collector](./chapter6)\u003c/strike\u003e\n7. \u003cstrike\u003e[Multithreading](./chapter7)\u003c/strike\u003e\n8. \u003cstrike\u003e[JDBC](./chapter8)\u003c/strike\u003e\n9. \u003cstrike\u003e[JSP and Servlet](./chapter9)\u003c/strike\u003e\n10. [Hibenate](./chapter10)\n11. [Spring](./chapter11)\n12. [Algorithms](./chapter12)\n13. [Design Patterns](./chapter13)\n14. [Integration](./chapter14)\n\nIn the project, we use Checkstyle Maven plugin to prevent malformed code and JaCoCo Maven plugin\nfor measuring coverage. For continuous integration using [GitHub Actions](https://github.com/features/actions),\nwe also use [CodeCov](https://codecov.io) for measuring coverage. In the recent updates, we have introduced mutation testing with the PIT Maven plugin.\n\nThe project has a module-based architecture. \nOne lesson - one module. We made this division for more comfortable work with internal dependencies.\n\nAt the second chapter, we built our first Java application. It is a simple console task tracker.\nIt has minimal functions: adding, editing, and removing or commenting on an item. It runs\nby the following way\n```\njava -jar start-1.0.jar\n```\n\nIn chapter 10, I created a similar app to the one I made in the second chapter of \nthis course. But now this app has a web interface based on Bootstrap. Instead\nof using JDBC, I am using Hibernate ORM. In the app, I use Ajax to send requests \nto the server without updating the page.\n\n\n---\nContacts:\n\n[![Medium](https://img.shields.io/badge/Medium-%23000000.svg?logo=medium\u0026logoColor=white)](https://vrnsky.medium.com)\n[![Substack](https://img.shields.io/badge/Substack-FF6719?logo=substack\u0026logoColor=fff)](https://vrnsky.substack.com)\n[![GitHub Pages](https://img.shields.io/badge/GitHub%20Pages-121013?logo=github\u0026logoColor=white)](https://vrnsky.github.io)\n[![Mastodon](https://img.shields.io/badge/Mastodon-6364FF?logo=mastodon\u0026logoColor=fff)](https://me.dm/@vrnsky)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvrnsky%2Fjava-a-to-z","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvrnsky%2Fjava-a-to-z","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvrnsky%2Fjava-a-to-z/lists"}