diff --git a/.all-contributorsrc b/.all-contributorsrc new file mode 100644 index 00000000000..d6b4099c171 --- /dev/null +++ b/.all-contributorsrc @@ -0,0 +1,37 @@ +{ + "projectName": "java-patterns", + "projectOwner": "AlexRogalskiy", + "repoType": "github", + "repoHost": "https://github.com", + "files": [ + "README.md" + ], + "imageSize": 100, + "commit": false, + "contributors": [ + { + "login": "AlexRogalskiy", + "name": "Alex Rogalskiy", + "avatar_url": "https://avatars3.githubusercontent.com/u/3901898", + "profile": "https://github.com/AlexRogalskiy", + "contributions": [ + "code", + "design", + "doc", + "ideas", + "infra", + "maintenance", + "test" + ] + }, + { + "login": "RenovateBot", + "name": "Renovate Bot", + "avatar_url": "https://avatars1.githubusercontent.com/u/25180681", + "profile": "https://github.com/renovate-bot", + "contributions": [ + "maintenance" + ] + } + ] +} diff --git a/.all-membersrc b/.all-membersrc new file mode 100644 index 00000000000..706512b2078 --- /dev/null +++ b/.all-membersrc @@ -0,0 +1,13 @@ +{ + "members":[ + { + "login":"AlexRogalskiy", + "avatar_url":"https://avatars3.githubusercontent.com/u/3901898", + "url":"https://github.com/AlexRogalskiy", + "blog":"", + "name":"Alexander Rogalskiy", + "bio":"Design Systems and UI Engineer", + "location":"Saint-Petersburg, Russia" + } + ] +} diff --git a/.all-sponsorsrc b/.all-sponsorsrc new file mode 100644 index 00000000000..bd5a32cef1c --- /dev/null +++ b/.all-sponsorsrc @@ -0,0 +1,23 @@ +{ + "individuals":[ + { + "MemberId":3901898, + "createdAt":"2019-09-07 09:53", + "type":"USER", + "role":"ADMIN", + "isActive":true, + "totalAmountDonated":0, + "lastTransactionAt":"2020-12-07 16:17", + "lastTransactionAmount":0, + "profile":"https://opencollective.com/nullables", + "name":"Alexander Rogalskiy", + "company":"Nullables.io", + "description":null, + "image":"/avatars/3901898.jpg", + "email":null, + "twitter":null, + "github":"https://github.com/AlexRogalskiy", + "website":"https://github.com/AlexRogalskiy" + } + ] +} diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 00000000000..5448a41c3e0 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,137 @@ +# This file is inspired by https://github.com/alexkaratarakis/gitattributes +# +# Auto detect text files and perform LF normalization +# http://davidlaing.com/2012/09/19/customise-your-gitattributes-to-become-a-git-ninja/ +* text=auto +# The above will handle all files NOT found below +# These files are text and should be normalized (Convert crlf => lf) +*.bat text eol=crlf +*.coffee text +*.css text +*.cql text +*.df text +*.ejs text +*.html text +*.java text +*.js text +*.json text +*.less text +*.properties text +*.sass text +*.scss text +*.sh text eol=lf +*.sql text +*.txt text +*.ts text +*.xml text +*.yaml text +*.yml text +# Documents +*.doc diff=astextplain +*.DOC diff=astextplain +*.docx diff=astextplain +*.DOCX diff=astextplain +*.dot diff=astextplain +*.DOT diff=astextplain +*.pdf diff=astextplain +*.PDF diff=astextplain +*.rtf diff=astextplain +*.RTF diff=astextplain +*.markdown text +*.md text +*.adoc text +*.textile text +*.mustache text +*.csv text +*.tab text +*.tsv text +*.txt text +AUTHORS text +CHANGELOG text +CHANGES text +CONTRIBUTING text +COPYING text +copyright text +*COPYRIGHT* text +INSTALL text +license text +LICENSE text +NEWS text +readme text +*README* text +TODO text +# Graphics +*.png binary +*.jpg binary +*.jpeg binary +*.gif binary +*.tif binary +*.tiff binary +*.ico binary +# SVG treated as an asset (binary) by default. If you want to treat it as text, +# comment-out the following line and uncomment the line after. +*.svg binary +#*.svg text +*.eps binary +# These files are binary and should be left untouched +# (binary is a macro for -text -diff) +*.class binary +*.jar binary +*.war binary +## LINTERS +.csslintrc text +.eslintrc text +.jscsrc text +.jshintrc text +.jshintignore text +.stylelintrc text +## CONFIGS +*.bowerrc text +*.conf text +*.config text +.editorconfig text +.gitattributes text +.gitconfig text +.gitignore text +.htaccess text +*.npmignore text +## HEROKU +Procfile text +.slugignore text +## AUDIO +*.kar binary +*.m4a binary +*.mid binary +*.midi binary +*.mp3 binary +*.ogg binary +*.ra binary +## VIDEO +*.3gpp binary +*.3gp binary +*.as binary +*.asf binary +*.asx binary +*.fla binary +*.flv binary +*.m4v binary +*.mng binary +*.mov binary +*.mp4 binary +*.mpeg binary +*.mpg binary +*.swc binary +*.swf binary +*.webm binary +## ARCHIVES +*.7z binary +*.gz binary +*.rar binary +*.tar binary +*.zip binary +## FONTS +*.ttf binary +*.eot binary +*.otf binary +*.woff binary +*.woff2 binary diff --git a/README.md b/README.md index f1a42049dec..fe1ae2e4ff1 100644 --- a/README.md +++ b/README.md @@ -9,8 +9,6 @@

-![GitHub tag (latest by date)](https://img.shields.io/github/v/tag/AlexRogalskiy/java-patterns) -![GitHub Release Date](https://img.shields.io/github/release-date/AlexRogalskiy/java-patterns) ![Lines of code](https://tokei.rs/b1/github/AlexRogalskiy/java-patterns?category=lines) ![GitHub closed issues](https://img.shields.io/github/issues-closed/AlexRogalskiy/java-patterns) ![GitHub closed pull requests](https://img.shields.io/github/issues-pr-closed/AlexRogalskiy/java-patterns) @@ -24,15 +22,46 @@ ## ☝ _Summary_ -Java Design Patterns is intended to provide various use case scenarios and architectural concepts on prototyping adaptive informational systems. +Java Design Patterns is intended to provide various use case scenarios and architectural concepts on prototyping adaptive applications. + +```text +mkdocs.yml # Configuration file. +docs/ + summary.md # Documentation summary + units/ + design-patterns.md # Design patterns and architectural concepts + scenarios.md # Scenarios in practice + use-cases.md # Typical use cases + user-guide/ + changelog.md # Changelog page + code_of_conduct.md # Code of conduct page + code_owners.md # Code owners page + dependency.md # Dependency page + description.md # Description page + faq.md # FAQ page + getting-started.md # Getting started page + troubleshooting.md # Troubleshooting page + upgrade.md # Upgrade page + reporting/ + info.md # Informational page + issue_template.md # Issue template page + bug_report.md # Bug report template + custom_report.md # Custom report template + feature_request_template.md # Feature request template + pull_request_template.md # Pull request template + contributing/ + info.md # Contributing page + links/ + info.md # Links page +``` ## 📝 _Documentation_ -The Website documentation is generated by [mkdocs](https://www.mkdocs.org/) and can be discovered at url: +The Website documentation is provided by [gitbook](https://www.gitbook.com/) and can be discovered at url: [**Java Patterns Docs**](https://alexander-rogalsky.gitbook.io/java-patterns-docs/) -To enable documentation view serving at _**localhost**_ ****the following steps should be considered: +To enable documentation serving at _**localhost**_ ****the following steps should be considered: 1\) Install/upgrade _**pip**_ command-line utility: @@ -86,11 +115,6 @@ mkdocs --verbose gh-deploy --force --remote-branch gh-pages Project Status: Active – The project has reached a stable, usable state and is being actively developed. -## ❤ _Technology stack_ - -![forthebadge](https://forthebadge.com/images/badges/built-with-love.svg) -[![forthebadge](https://forthebadge.com/images/badges/made-with-java.svg)](https://java.com/en/) - ## 🌹 _Authors_ _Java Patterns_ is maintained by the following GitHub team-members: @@ -101,9 +125,6 @@ with community support please contact with us if you have some question or propo ## 💕 _Contributing_ -[![EO principles respected here](https://www.elegantobjects.org/badge.svg)](https://www.elegantobjects.org) -[![We recommend IntelliJ IDEA](https://www.elegantobjects.org/intellij-idea.svg)](https://www.jetbrains.com/idea/) - [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com) ## 🚨 _Visitor stats_ diff --git a/docs/README.md b/docs/README.md index f543b92b0ad..0510ff49f96 100644 --- a/docs/README.md +++ b/docs/README.md @@ -6,37 +6,4 @@ For full documentation visit [https://docs.gitbook.com/](https://docs.gitbook.co ## _Description_ -With the help of _**GitBook**_ you can create and develop documentation on Kotlin Design patterns. - -## _Project Structure_ - -```text -mkdocs.yml # Configuration file. -docs/ - index.md # Documentation homepage - units/ - design-patterns.md # Design patterns and architectural concepts - scenarios.md # Scenarios in practice - use-cases.md # Typical use cases - user-guide/ - changelog.md # Changelog page - code_of_conduct.md # Code of conduct page - code_owners.md # Code owners page - dependency.md # Dependency page - description.md # Description page - faq.md # FAQ page - getting-started.md # Getting started page - troubleshooting.md # Troubleshooting page - upgrade.md # Upgrade page - reporting/ - info.md # Informational page - issue_template.md # Issue template page - bug_report.md # Bug report template - custom_report.md # Custom report template - feature_request_template.md # Feature request template - pull_request_template.md # Pull request template - contributing/ - info.md # Contribution page - links/ - info.md # Contribution page -``` \ No newline at end of file +With the help of _**GitBook**_ you can create and develop documentation on Java Design patterns. diff --git a/docs/_config.yml b/docs/_config.yml new file mode 100644 index 00000000000..7610b34f913 --- /dev/null +++ b/docs/_config.yml @@ -0,0 +1,12 @@ +theme: jekyll-theme-cayman + +permalink: pretty + +baseurl: https://github.com/AlexRogalskiy/java-patterns +title: Java Design Patterns +description: Explores different architectural concepts and design principles for Java applications + +author: Alexander Rogalskiy + +docs: https://github.com/AlexRogalskiy/java-patterns/wiki +blog: https://alexrogalskiy.github.io/ diff --git a/docs/reporting/bug_report.md b/docs/reporting/bug_report.md new file mode 100644 index 00000000000..9a68e185be5 --- /dev/null +++ b/docs/reporting/bug_report.md @@ -0,0 +1,33 @@ +--- +name: Bug report +about: Create a report to help us improve +title: '' +labels: '' +assignees: '' +--- + +# ![image info](../images/icons8-template-64.png) Bug Report + +**Describe the bug** A clear and concise description of what the bug is. + +**To Reproduce** Steps to reproduce the behavior: 1. Go to '...' 2. Click on '....' 3. Scroll down to '....' 4. See error + +**Expected behavior** A clear and concise description of what you expected to happen. + +**Screenshots** If applicable, add screenshots to help explain your problem. + +**Desktop \(please complete the following information\):** + +* OS: \[e.g. iOS\] +* Browser \[e.g. chrome, safari\] +* Version \[e.g. 22\] + +**Smartphone \(please complete the following information\):** + +* Device: \[e.g. iPhone6\] +* OS: \[e.g. iOS8.1\] +* Browser \[e.g. stock browser, safari\] +* Version \[e.g. 22\] + +**Additional context** Add any other context about the problem here. + diff --git a/docs/reporting/custom_report.md b/docs/reporting/custom_report.md new file mode 100644 index 00000000000..888baf3655f --- /dev/null +++ b/docs/reporting/custom_report.md @@ -0,0 +1,20 @@ +--- +name: Custom issue template +about: Describe this issue template's purpose here. +steps: '' +labels: '' +assignees: '' +--- + +# ![image info](../images/icons8-template-64.png) Custom Report + +**Is your feature request related to a problem? Please describe.** A clear and concise name of issue. + +**Describe information of issue** A clear and concise description of a possible solution + +**Describe steps to reproduce issue** A clear and concise ussue title of any alternative solutions or features you've considered. + +**Additional labels** Add any other context labels about the issue. + +**Assignees** Choose responsible executives to monitor and progress with the issue. + diff --git a/docs/reporting/feature_request_template.md b/docs/reporting/feature_request_template.md new file mode 100644 index 00000000000..17ea2c9de32 --- /dev/null +++ b/docs/reporting/feature_request_template.md @@ -0,0 +1,18 @@ +--- +name: Feature request +about: Suggest an idea for this project +title: '' +labels: '' +assignees: '' +--- + +# ![image info](../images/icons8-template-64.png) Feature Request Template + +**Is your feature request related to a problem? Please describe.** A clear and concise description of what the problem is. Ex. I'm always frustrated when \[...\] + +**Describe the solution you'd like** A clear and concise description of what you want to happen. + +**Describe alternatives you've considered** A clear and concise description of any alternative solutions or features you've considered. + +**Additional context** Add any other context or screenshots about the feature request here. + diff --git a/docs/reporting/info.md b/docs/reporting/info.md new file mode 100644 index 00000000000..803cafc499f --- /dev/null +++ b/docs/reporting/info.md @@ -0,0 +1,81 @@ +# ![image info](../images/icons8-editor-64.png) General Information + +> **Please read the** [**contribution guidelines**](https://github.com/AlexRogalskiy/java-patterns/blob/master/docs/contributing/info.md) **before filling out this issue template**. + +## _Prerequisites_ + +This section and the instructions in the sections below are only part of this issue template. Please ensure to **delete this whole section, all pre-filled instructions of the sections below and sections you have not filled out before submitting** to ensure a clear structure and overview. + +Please do your best to provide as much information as possible and use a clear and descriptive title for your enhancement suggestion or bug report to help maintainers and the community understand and reproduce the behavior, find related reports and to resolve the ticket faster. + +* **Ensure the issue has not already been reported by using the** [**GitHub Issues search**](https://github.com/AlexRogalskiy/java-patterns/issues) — if it has **and the issue is still open**, add a comment to the existing issue instead of opening this new one. If you find a closed issue that seems to be similar to this one, include a link to the original issue in the [metadata head](info.md#metadata-head) section of this issue. +* **Ensure the issue is reproducible** — try to use the [latest version](https://github.com/AlexRogalskiy/java-patterns/releases/latest) and [`develop`](https://github.com/AlexRogalskiy/java-patterns/tree/develop) branch. + +## _Metadata Head_ + +The metadata head should be added to the top of the issue as [Markdown text quote](https://help.github.com/articles/basic-writing-and-formatting-syntax) containing the [issue type](info.md#issue-type) and if necessary the ID of other related issues. + +> Issue type: Related issues: + +### _Issue Type_ + +Set the _type_ of this issue. It determines which information will be required in the following sections when it is an [bug report](https://github.com/AlexRogalskiy/java-patterns/blob/master/docs/reporting/bug_report.md) or an [enhancement suggestion](https://github.com/AlexRogalskiy/java-patterns/blob/master/docs/reporting/feature_request_template.md). + +* _feature_ +* _improvement_ +* _bug_ +* _test_ +* _task_ +* _subtask_ + +## _Description_ + +Describe the enhancement or bug as in many relevant details as possible. If this is a enhancement suggestion add specific use-cases and explain why this feature or improvement would be useful. If this is a bug provide ensure to fill in the [steps to reproduce](info.md#steps-to-reproduce) it. + +### _Steps to Reproduce_ + +1. Step One +2. Step Two +3. ... + +### _Expected Behavior_ + +What you expect to happen? + +### _Actual Behavior_ + +What actually happens? + +## _Example_ + +Provide a [MCVE - The Minimal, Complete, and Verifiable Example](https://github.com/AlexRogalskiy/java-patterns/blob/master/docs/reporting/custom_report.md) + +**This is a optional section, but it can drastically increase the speed at which this issue can be processed since it takes away the time-consuming reconstruction to reproduce the enhancement or bug.** + +The recommended way is to upload it as [Gist](https://gist.github.com) or new repository to GitHub, but of course you can [attach it to this issue](https://help.github.com/articles/file-attachments-on-issues-and-pull-requests), use any free file hosting service or paste the code in [Markdown code blocks](https://help.github.com/articles/basic-writing-and-formatting-syntax) into this issue. + +## _Environment and Versions_ + +* What is the version of IceCore Hashids you are using? +* What is the name and the version of the OS you're using? + * Have you tried to reproduce it on different OS environments and if yes is the behavior the same for all? +* Which Java JDK/JRE distribution and version are you using? \(_Oracle_, _OpenJDK_, ...\) +* Are you running the project with your IDE or through Maven? + * Are you using any additional CLI arguments for Java or Maven? + +## _Stack Trace and Error Messages_ + +```text +Paste the full stack trace, error messages or the logfile here ... +``` + +... or [attach them as files](https://help.github.com/articles/file-attachments-on-issues-and-pull-requests) to this issue. + +## _References_ + +Add any other references and links which are relevant for this issue. + +## _Potential Solution_ + +If this is a bug report this might include the lines of code that you have identified as causing the bug or in case of an enhancement suggestion references to other projects where this enhancement already exists. + diff --git a/docs/reporting/issue_template.md b/docs/reporting/issue_template.md new file mode 100644 index 00000000000..1d3a4c1e496 --- /dev/null +++ b/docs/reporting/issue_template.md @@ -0,0 +1,51 @@ +--- +name: Issue report +about: Create an issue report +title: '' +labels: '' +assignees: '' +--- + +# ![image info](../images/icons8-template-64.png) Issue Report + +## _Characteristics_ +- **Issue Type**: [bug, feature, test report] +Type of reported issue. It could be: + - Bug: issue perceived by the reporter as a potential bug, which has to be confirmed by assignee; + - Feature: issue describing a new requested functionality or a non-functional property to be supported. + - Test report +Above issue type can be further refined, in the case of bugs, by adopting a number of +predefined tags (taken from a proposed STAMP tag cloud), including REGRESSION, CONFIGURATION, PERFORMANCE +- **Reproducibility**: [always, sometimes, random] +- **Severity**: [feature, minor, major, crash, block] +- **Tool/Service/Component**: [name, version] +e.g. "PIT 1.2.0, Descartes 0.2-SNAPSHOT, PITMP 1.0.1"" +- **Execution Environment**: [platform, OS, etc] +Description of the execution environment, e.g "Linux OpenSuse Tumbleweed" or "Linux Ubuntu 16.04.1" +including information about the version of the executed STAMP tools/services and their +local dependencies (in case of standalone execution) +- **Reporter**: [name, mail] +Reference information of the reporter, so the assignee can contact back for further issue refinement, if needed. + +## _Description_ +A detailed description of the issue. +For features, this section should provide a functional description of the required functionality. When describing features formally as user stories, the description can include this formal syntax: +As a , I can so that +With this form, all the stakeholders involved in the requirement analysis can understand both the role of the user and the business benefit that the new functionality provides. +For bugs, this section should describe as well: + - the observed execution behavior and obtained results; + - the expected execution behavior and results. + +## _Steps to reproduce_ +A detailed description, step-by-step of the procedure followed by the reporter to reproduce the bug reported. + +## _Other files and URLs_ +Additional visual proofs, such as snapshots, providing additional visual information of the bug can be included, +as well as input files required for reproducing the bug or URLs pointed to the sources of such inputs. + +## _Relationships_ +A list of relationships to other issues. In case of features, these relationships can be used to structure them, +grouping related features. Possible relationships: + - Child of / Parent of + - Related to + - Depends on diff --git a/docs/reporting/pull_request_template.md b/docs/reporting/pull_request_template.md new file mode 100644 index 00000000000..27333ce720e --- /dev/null +++ b/docs/reporting/pull_request_template.md @@ -0,0 +1,27 @@ +# ![image info](../images/icons8-template-64.png) Pull Request Template + +> **Please read the** [**contribution guidelines**](https://github.com/AlexRogalskiy/java-patterns/blob/master/docs/contributing/info.md) **before filling out this pull request template**. + +## _Prerequisites_ + +This section and the instructions in the sections below are only part of this pull request template. Please ensure to **delete this whole section, all pre-filled instructions of the sections below and sections you have not filled out before submitting** to ensure a clear structure and overview. + +Please do your best to provide as much information as possible and use a clear and descriptive title for your enhancement suggestion or bug fix to help maintainers and the community understand and reproduce the behavior, find related pull requests and to merge it faster. + +* **Ensure the pull request has not already been reported by using the** [**GitHub Pull Request search**](https://github.com/AlexRogalskiy/java-patterns/pulls) — if it has **and the pull request is still open**, add a comment to the existing pull request instead of opening this new one. If you find a closed pull request that seems to be similar to this one, include a link to it in the [metadata head](pull_request_template.md#metadata-head) section of this pull request. +* **Ensure to adhere to the** [**pull request contribution guidelines**](https://github.com/AlexRogalskiy/java-patterns/blob/master/docs/reporting/pull_request_template.md), especially the one for tests and documentations. + +## _Metadata Head_ + +The metadata head should be added to the top of the pull request as [Markdown text quote](https://help.github.com/articles/basic-writing-and-formatting-syntax) containing the \[GitHub issue keywords\]\[gh-help-issue-keywords\] to link to the related enhancements suggestions \(`Closes`\) or bug reports \(`Fixes`\). You can add additional details like dependencies to other pull requests, and the order it needs to be merged. + +> Closes ISSUE\_ID Must be merged **after**/**before** ISSUE\_ID + +## _Description_ + +Describe the changes as in many relevant details as possible. If this is a enhancement suggestion add specific use-cases and explain why this feature or improvement would be useful. If this is a bug fix ensure to provide a _before/after_ comparison by describing the current behavior and the new behavior. + +## _References_ + +Add any other references and links which are relevant for this issue. + diff --git a/mkdocs.yml b/mkdocs.yml new file mode 100644 index 00000000000..75ab3349b59 --- /dev/null +++ b/mkdocs.yml @@ -0,0 +1,77 @@ +site_name: Java Patterns +site_description: > + java design patterns and architectural concepts +site_author: Alexander Rogalskiy +site_url: https://alexander-rogalsky.gitbook.io/java-patterns-docs/ + +repo_name: AlexRogalskiy/java-patterns +repo_url: https://gitlab.com/AlexRogalskiy/java-patterns +edit_uri: https://gitlab.com/AlexRogalskiy/java-patterns/master/docs/ + +# Copyright +copyright: Java Design Patterns - Documentation © Nullables.io + +theme: + name: material + font: + text: Roboto + code: Roboto Mono + palette: + scheme: preference + primary: deep-orange + accent: deep-orange + features: + - navigation.tabs + - search.suggest + - search.highlight + - header.autohide + highlightjs: true + language: 'en' + +plugins: + - search +# - minify: +# minify_html: true + +extra: + social: + - icon: fontawesome/brands/github-alt + link: 'https://github.com/AlexRogalskiy/java-patterns' + +markdown_extensions: + - markdown.extensions.admonition + - markdown.extensions.codehilite: + linenums: true + use_pygments: false + - markdown.extensions.def_list + - markdown.extensions.footnotes + - markdown.extensions.meta + - markdown.extensions.toc: + permalink: true + +pages: + - Table of contents: SUMMARY.md + - User Guide: + - Changelog: user-guide/changelog.md + - Dependency: user-guide/dependency.md + - FAQ: user-guide/faq.md + - Getting Started: user-guide/getting-started.md + - Code of Conduct: user-guide/code_of_conduct.md + - Code Owners: user-guide/code_owners.md + - Troubleshooting: user-guide/troubleshooting.md + - Upgrade: user-guide/upgrade.md + - Units: + - Design patterns: units/design-patterns.md + - Scenarios: units/scenarios.md + - Use cases: units/use-cases.md + - Contributing: + - Information: contributing/info.md + - Reporting: + - Information: reporting/info.md + - Bug Report: reporting/bug_report.md + - Custom Report: reporting/custom_report.md + - Issue Report: reporting/issue_template.md + - Feature Requst: reporting/feature_request_template.md + - Pull Requst: reporting/pull_request_template.md + - Links: + - Information: links/info.md