├── .github ├── CODEOWNERS ├── ISSUE_TEMPLATE │ ├── 01_BUG_REPORT.md │ ├── 02_FEATURE_REQUEST.md │ ├── 03_CODEBASE_IMPROVEMENT.md │ └── config.yml ├── PULL_REQUEST_TEMPLATE.md ├── labels.yml └── workflows │ ├── build.yml │ ├── labels.yml │ ├── lint.yml │ ├── lock.yml │ ├── pr-labels.yml │ └── stale.yml ├── .markdownlint.json ├── LICENSE ├── README.md ├── cookiecutter.json ├── docs ├── CODE_OF_CONDUCT.md └── images │ └── preview.svg ├── hooks └── post_gen_project.py └── {{cookiecutter.repo_slug}} ├── .github ├── CODEOWNERS ├── ISSUE_TEMPLATE │ ├── 01_BUG_REPORT.md │ ├── 02_FEATURE_REQUEST.md │ ├── 03_CODEBASE_IMPROVEMENT.md │ ├── 04_SUPPORT_QUESTION.md │ └── config.yml ├── PULL_REQUEST_TEMPLATE.md ├── labels.yml └── workflows │ ├── codeql.yml │ ├── labels.yml │ ├── lock.yml │ ├── pr-labels.yml │ └── stale.yml ├── LICENSE ├── README.md └── docs ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── SECURITY.md └── images ├── logo.svg └── screenshot.png /.github/CODEOWNERS: -------------------------------------------------------------------------------- 1 | * @dec0dOS 2 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/01_BUG_REPORT.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug Report 3 | about: Create a report to help Amazing GitHub Template to improve 4 | title: "bug: " 5 | labels: "bug" 6 | assignees: "" 7 | --- 8 | 9 | # Bug Report 10 | 11 | **Amazing GitHub Template version:** 12 | 13 | 14 | 15 | **Current behavior:** 16 | 17 | 18 | 19 | **Expected behavior:** 20 | 21 | 22 | 23 | **Steps to reproduce:** 24 | 25 | 26 | 27 | **Related code:** 28 | 29 | 30 | 31 | ``` 32 | insert short code snippets here 33 | ``` 34 | 35 | **Other information:** 36 | 37 | 38 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/02_FEATURE_REQUEST.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature Request 3 | about: Suggest an idea for this project 4 | title: "feat: " 5 | labels: "enhancement" 6 | assignees: "" 7 | --- 8 | 9 | # Feature Request 10 | 11 | **Describe the Feature Request** 12 | 13 | 14 | 15 | **Describe Preferred Solution** 16 | 17 | 18 | 19 | **Describe Alternatives** 20 | 21 | 22 | 23 | **Related Code** 24 | 25 | 26 | 27 | **Additional Context** 28 | 29 | 30 | 31 | **If the feature request is approved, would you be willing to submit a PR?** 32 | Yes / No _(Help can be provided if you need assistance submitting a PR)_ 33 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/03_CODEBASE_IMPROVEMENT.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Codebase improvement 3 | about: Provide your feedback for the existing codebase. Suggest a better solution for algorithms, development tools, etc. 4 | title: "dev: " 5 | labels: "enhancement" 6 | assignees: "" 7 | --- 8 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- 1 | --- 2 | blank_issues_enabled: false 3 | contact_links: 4 | - name: Amazing GitHub Template Community Support 5 | url: https://github.com/dec0dOS/amazing-github-template/discussions 6 | about: Please ask and answer questions here. 7 | -------------------------------------------------------------------------------- /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | ## Pull request type 4 | 5 | 6 | 7 | Please check the type of change your PR introduces: 8 | 9 | - [ ] Bugfix 10 | - [ ] Feature 11 | - [ ] Code style update (formatting, renaming) 12 | - [ ] Refactoring (no functional changes, no api changes) 13 | - [ ] Build related changes 14 | - [ ] Documentation content changes 15 | - [ ] Other (please describe): 16 | 17 | ## What is the current behavior? 18 | 19 | 20 | 21 | Issue Number: N/A 22 | 23 | ## What is the new behavior? 24 | 25 | 26 | 27 | - 28 | - 29 | - 30 | 31 | ## Other information 32 | 33 | 34 | -------------------------------------------------------------------------------- /.github/labels.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: "breaking-change" 3 | color: ee0701 4 | description: "A breaking change for existing users." 5 | - name: "bug" 6 | color: ee0701 7 | description: "Inconsistencies or issues which will cause a problem for users or implementors." 8 | - name: "documentation" 9 | color: 0052cc 10 | description: "Solely about the documentation of the project." 11 | - name: "enhancement" 12 | color: 1d76db 13 | description: "Enhancement of the code, not introducing new features." 14 | - name: "refactor" 15 | color: 1d76db 16 | description: "Improvement of existing code, not introducing new features." 17 | - name: "performance" 18 | color: 1d76db 19 | description: "Improving performance, not introducing new features." 20 | - name: "new-feature" 21 | color: 0e8a16 22 | description: "New features or options." 23 | - name: "maintenance" 24 | color: 2af79e 25 | description: "Generic maintenance tasks." 26 | - name: "ci" 27 | color: 1d76db 28 | description: "Work that improves the continue integration." 29 | - name: "dependencies" 30 | color: 1d76db 31 | description: "Upgrade or downgrade of project dependencies." 32 | 33 | - name: "in-progress" 34 | color: fbca04 35 | description: "Issue is currently being resolved by a developer." 36 | - name: "stale" 37 | color: fef2c0 38 | description: "There has not been activity on this issue or PR for quite some time." 39 | - name: "no-stale" 40 | color: fef2c0 41 | description: "This issue or PR is exempted from the stable bot." 42 | 43 | - name: "security" 44 | color: ee0701 45 | description: "Marks a security issue that needs to be resolved ASAP." 46 | - name: "incomplete" 47 | color: fef2c0 48 | description: "Marks a PR or issue that is missing information." 49 | - name: "invalid" 50 | color: fef2c0 51 | description: "Marks a PR or issue that is missing information." 52 | 53 | - name: "beginner-friendly" 54 | color: 0e8a16 55 | description: "Good first issue for people wanting to contribute to the project." 56 | - name: "help-wanted" 57 | color: 0e8a16 58 | description: "We need some extra helping hands or expertise in order to resolve this." 59 | 60 | - name: "priority-critical" 61 | color: ee0701 62 | description: "This should be dealt with ASAP. Not fixing this issue would be a serious error." 63 | - name: "priority-high" 64 | color: b60205 65 | description: "After critical issues are fixed, these should be dealt with before any further issues." 66 | - name: "priority-medium" 67 | color: 0e8a16 68 | description: "This issue may be useful, and needs some attention." 69 | - name: "priority-low" 70 | color: e4ea8a 71 | description: "Nice addition, maybe... someday..." 72 | 73 | - name: "major" 74 | color: b60205 75 | description: "This PR causes a major version bump in the version number." 76 | - name: "minor" 77 | color: 0e8a16 78 | description: "This PR causes a minor version bump in the version number." 79 | -------------------------------------------------------------------------------- /.github/workflows/build.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: Build template 3 | 4 | on: 5 | push: 6 | branches: 7 | - main 8 | 9 | jobs: 10 | setup: 11 | runs-on: ubuntu-latest 12 | steps: 13 | - name: Check out the current repo 14 | uses: actions/checkout@v2 15 | - name: Set up Python 3.9 16 | uses: actions/setup-python@v2 17 | with: 18 | python-version: "3.9" 19 | - name: Install cookiecutter 20 | run: | 21 | pip install cookiecutter 22 | - name: Invoke cookiecutter 23 | run: >- 24 | cookiecutter . 25 | --overwrite-if-exists 26 | --no-input 27 | project_name="PROJECT_NAME" 28 | repo_slug="REPO_SLUG" 29 | github_username="GITHUB_USERNAME" 30 | full_name="FULL_NAME" 31 | open_source_license="OPEN_SOURCE_LICENSE" 32 | modern_header="y" 33 | table_in_about="n" 34 | include_logo="y" 35 | include_badges="y" 36 | include_toc="y" 37 | include_screenshots="y" 38 | include_project_assistance="y" 39 | include_authors="y" 40 | include_security="y" 41 | include_acknowledgements="y" 42 | include_code_of_conduct="y" 43 | include_workflows="y" 44 | use_codeql="y" 45 | use_conventional_commits="y" 46 | use_github_discussions="n" 47 | # - name: Lint markdown files 48 | # uses: nosborn/github-action-markdown-cli@master 49 | # with: 50 | # files: REPO_SLUG/ 51 | # config_file: ".markdownlint.json" 52 | - name: Compress the template folder 53 | uses: papeloto/action-zip@v1 54 | with: 55 | files: REPO_SLUG/ 56 | dest: template.zip 57 | - name: Create GitHub Release 58 | uses: "marvinpinto/action-automatic-releases@latest" 59 | with: 60 | repo_token: "${{ secrets.GITHUB_TOKEN }}" 61 | automatic_release_tag: "latest" 62 | prerelease: false 63 | title: "🏗️ Precompiled template" 64 | files: | 65 | template.zip 66 | -------------------------------------------------------------------------------- /.github/workflows/labels.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: Sync labels 3 | 4 | on: 5 | push: 6 | branches: 7 | - main 8 | paths: 9 | - .github/labels.yml 10 | 11 | jobs: 12 | labels: 13 | name: ♻️ Sync labels 14 | runs-on: ubuntu-latest 15 | steps: 16 | - name: ⤵️ Check out code from GitHub 17 | uses: actions/checkout@v2 18 | - name: 🚀 Run Label Syncer 19 | uses: micnncim/action-label-syncer@v1.2.0 20 | env: 21 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 22 | -------------------------------------------------------------------------------- /.github/workflows/lint.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: Lint README.md 3 | 4 | on: 5 | push: 6 | branches: 7 | - main 8 | paths: 9 | - README.md 10 | 11 | jobs: 12 | lint: 13 | runs-on: ubuntu-latest 14 | steps: 15 | - name: Check out the current repo 16 | uses: actions/checkout@v2 17 | - name: Lint markdown files 18 | uses: nosborn/github-action-markdown-cli@master 19 | with: 20 | files: README.md 21 | config_file: ".markdownlint.json" 22 | -------------------------------------------------------------------------------- /.github/workflows/lock.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: Lock 3 | 4 | on: 5 | schedule: 6 | - cron: "0 9 * * *" 7 | workflow_dispatch: 8 | 9 | jobs: 10 | lock: 11 | name: 🔒 Lock closed issues and PRs 12 | runs-on: ubuntu-latest 13 | steps: 14 | - uses: dessant/lock-threads@v3 15 | with: 16 | github-token: ${{ github.token }} 17 | issue-inactive-days: "30" 18 | issue-lock-reason: "" 19 | pr-inactive-days: "1" 20 | pr-lock-reason: "" 21 | -------------------------------------------------------------------------------- /.github/workflows/pr-labels.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: PR Labels 3 | 4 | on: 5 | pull_request_target: 6 | types: [opened, labeled, unlabeled, synchronize] 7 | 8 | jobs: 9 | pr_labels: 10 | name: 🏭 Verify 11 | runs-on: ubuntu-latest 12 | steps: 13 | - name: 🏷 Verify PR has a valid label 14 | uses: jesusvasquez333/verify-pr-label-action@v1.4.0 15 | with: 16 | github-token: "${{ secrets.GITHUB_TOKEN }}" 17 | pull-request-number: '${{ github.event.pull_request.number }}' 18 | valid-labels: >- 19 | breaking-change, bugfix, documentation, enhancement, 20 | refactor, performance, new-feature, maintenance, ci, dependencies 21 | disable-reviews: true 22 | -------------------------------------------------------------------------------- /.github/workflows/stale.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: Stale 3 | 4 | on: 5 | schedule: 6 | - cron: "0 8 * * *" 7 | workflow_dispatch: 8 | 9 | jobs: 10 | stale: 11 | name: 🧹 Clean up stale issues and PRs 12 | runs-on: ubuntu-latest 13 | steps: 14 | - name: 🚀 Run stale 15 | uses: actions/stale@v3 16 | with: 17 | repo-token: ${{ secrets.GITHUB_TOKEN }} 18 | days-before-stale: 30 19 | days-before-close: 7 20 | remove-stale-when-updated: true 21 | stale-issue-label: "stale" 22 | exempt-issue-labels: "no-stale,help-wanted" 23 | stale-issue-message: > 24 | There hasn't been any activity on this issue recently, so we 25 | clean up some of the older and inactive issues. 26 | 27 | Please make sure to update to the latest version and 28 | check if that solves the issue. Let us know if that works for you 29 | by leaving a comment 👍. 30 | 31 | This issue has now been marked as stale and will be closed if no 32 | further activity occurs. Thanks! 33 | stale-pr-label: "stale" 34 | exempt-pr-labels: "no-stale" 35 | stale-pr-message: > 36 | There hasn't been any activity on this pull request recently. This 37 | pull request has been automatically marked as stale because of that 38 | and will be closed if no further activity occurs within 7 days. 39 | Thank you for your contributions. 40 | -------------------------------------------------------------------------------- /.markdownlint.json: -------------------------------------------------------------------------------- 1 | { 2 | "default": true, 3 | "MD033": { 4 | "allowed_elements": [ 5 | "h1", 6 | "h2", 7 | "h3", 8 | "HR", 9 | "p", 10 | "a", 11 | "div", 12 | "img", 13 | "br", 14 | "details", 15 | "summary", 16 | "strong", 17 | "table", 18 | "tr", 19 | "td" 20 | ] 21 | }, 22 | "line-length": false, 23 | "first-line-heading": false 24 | } 25 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 Alexey Potapov 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

2 | 3 | Logo 4 | 5 |

6 | 7 |
8 | Amazing GitHub Template - Sane defaults for your next project! 9 |
10 |
11 | Report a Bug 12 | · 13 | Request a Feature 14 | . 15 | Ask a Question 16 |
17 | 18 |
19 |
20 | 21 | [![license](https://img.shields.io/github/license/dec0dOS/amazing-github-template.svg?style=flat-square)](LICENSE) 22 | 23 | [![PRs welcome](https://img.shields.io/badge/PRs-welcome-ff69b4.svg?style=flat-square)](https://github.com/dec0dOS/amazing-github-template/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22) 24 | [![made with hearth by dec0dOS](https://img.shields.io/badge/made%20with%20%E2%99%A5%20by-dec0dOS-ff1414.svg?style=flat-square)](https://github.com/dec0dOS) 25 | 26 |
27 | 28 |
29 | Table of Contents 30 | 31 | - [About](#about) 32 | - [Built With](#built-with) 33 | - [Getting Started](#getting-started) 34 | - [Prerequisites](#prerequisites) 35 | - [Usage](#usage) 36 | - [Cookiecutter template](#cookiecutter-template) 37 | - [Manual setup](#manual-setup) 38 | - [Variables reference](#variables-reference) 39 | - [Roadmap](#roadmap) 40 | - [Contributing](#contributing) 41 | - [Support](#support) 42 | - [License](#license) 43 | - [Acknowledgements](#acknowledgements) 44 | 45 |
46 | 47 | --- 48 | 49 | ## About 50 | 51 | 52 | 53 | 86 | 87 |
54 | 55 | Open Source Software is not about the code in the first place but the communications and community. People love good documentation and obvious workflows. If your software solves some problem, but nobody can figure out how to use it or, for example, how to create an effective bug report, there's something very bad going on. Did you hear about Readme Driven Development? Check out the awesome [article written by GitHub co-founder Tom Preston-Werner](https://tom.preston-werner.com/2010/08/23/readme-driven-development.html). 56 | 57 | There are many great README or issues templates available on GitHub, however, you have to find them yourself and combine different templates yourself. In addition, if you want extensive docs like CODE_OF_CONDUCT.md, CONTRIBUTING.md, SECURITY.md or even advanced GitHub features like a pull request template, additional labels, code scanning, and automatic issue/PR closing and locking you have to do much more work. Your time should be focused on creating something **amazing**. You shouldn't be doing the same tasks over and over like creating your GitHub project template from scratch. Follow the **don’t repeat yourself** principle. Use a template **and go create something amazing**! 58 | 59 | Key features of **Amazing GitHub Template**: 60 | 61 | - Configurable README.md template 62 | - Configurable LICENSE template 63 | - Configurable CODE_OF_CONDUCT.md template 64 | - Configurable CONTRIBUTING.md template 65 | - Configurable SECURITY.md template 66 | - Configurable issues template 67 | - Pull request template 68 | - CODEOWNERS template 69 | - Additional labels template 70 | - Automatic locking for closed issues and PRs workflow 71 | - Automatic cleaning for stale issues and PRs workflow 72 | - Automatic label verification for PRs workflow 73 | - Automatic security code scanning workflow via CodeQL 74 | 75 |
76 | Additional info 77 |
78 | 79 | This project is the result of huge research. I'm a long-time GitHub user so I've seen more than [7.3k](https://github.com/dec0dOS?tab=stars) READMEs so far. I've started writing docs for my open source projects (that are currently in their early stages so they exist in the private space for now). After I've analyzed many popular GitHub READMEs and other GitHub-related docs and features I've tried to create a general-propose template that may be useful for any project. 80 | 81 | Of course, no template will serve all the projects since your needs may be different. So [Cookiecutter](https://github.com/cookiecutter/cookiecutter) comes to the rescue. It allows [Jinja template language](https://jinja.palletsprojects.com) to be used for complex cases. Just enter up the project preferences you want in the Cookiecutter interactive menu and that's it. There is a manual setup that could be useful for your existing projects (or if you don't want to use Cookiecutter for some reason). **This README.md file is not a template itself**, you should [download the precompiled template](https://github.com/dec0dOS/amazing-github-template/releases/download/latest/template.zip) and replace the predefined values, then remove unused sections. 82 | 83 |
84 | 85 |
88 | 89 | ### Built With 90 | 91 | - [GitHub Flavored Markdown Spec](https://github.github.com/gfm/) 92 | - [Cookiecutter](https://github.com/cookiecutter/cookiecutter) 93 | - [GitHub Actions](https://github.com/features/actions) 94 | - [markdownlint-cli](https://github.com/igorshubovych/markdownlint-cli) 95 | 96 | ## Getting Started 97 | 98 | ### Prerequisites 99 | 100 | The recommended method to install **Amazing GitHub Template** is by using [Cookiecutter](https://github.com/cookiecutter/cookiecutter). For manual install please refer to [manual setup section](#manual-setup). 101 | 102 | The easiest way to install Cookiecutter is by running: 103 | 104 | ```sh 105 | pip install --user cookiecutter 106 | ``` 107 | 108 | For other install options, please refer to [Cookiecutter installation manual](https://cookiecutter.readthedocs.io/en/latest/installation.html). 109 | 110 | ### Usage 111 | 112 | #### Cookiecutter template 113 | 114 | After installing Cookiecutter, all you need to do is to run the following command: 115 | 116 | ```sh 117 | cookiecutter gh:dec0dOS/amazing-github-template 118 | ``` 119 | 120 | You will get an interactive prompt where you'll specify relevant options for your project (or the default value will be used). 121 | 122 | ![Preview](docs/images/preview.svg) 123 | 124 | #### Manual setup 125 | 126 | Please follow these steps for manual setup: 127 | 128 | 1. [Download the precompiled template](https://github.com/dec0dOS/amazing-github-template/releases/download/latest/template.zip) 129 | 2. Replace all the [variables](#variables-reference) to your desired values 130 | 3. Initialize the repo in the precompiled template folder 131 | 132 | `or` 133 | 134 | Move the necessary files from precompiled template folder to your existing project directory. Don't forget the `.github` directory that may be hidden by default in your operating system 135 | 136 | #### Variables reference 137 | 138 | Please note that entered values are case-sensitive. 139 | Default values are provided as an example to help you figure out what should be entered. 140 | 141 | > On manual setup, you need to replace only values written in **uppercase**. 142 | 143 | | Name | Default value | Description | 144 | | -------------------------- | ------------------ | --------------------------------------------------------------------------- | 145 | | PROJECT_NAME | My Amazing Project | Your project name | 146 | | REPO_SLUG | my-amazing-project | Repo slug must match the GitHub repo URL slug part | 147 | | GITHUB_USERNAME | dec0dOS | Your GitHub username **without @** | 148 | | FULL_NAME | Alexey Potapov | Your full name | 149 | | OPEN_SOURCE_LICENSE | MIT license | Full OSS license name | 150 | | modern_header | y | Use HTML to prettify your header | 151 | | table_in_about | n | Use table to wrap around About section | 152 | | include_logo | y | Include Logo section. Only valid when `modern_header == y` | 153 | | include_badges | y | Include section for badges | 154 | | include_toc | y | Include Table of Contents | 155 | | include_screenshots | y | Include Screenshots section | 156 | | include_project_assistance | y | Include Project assistance section | 157 | | include_authors | y | Include Authors & contributors section | 158 | | include_security | y | Include Security section and SECURITY.md file | 159 | | include_acknowledgements | y | Include Acknowledgements section | 160 | | include_code_of_conduct | y | Include CODE_OF_CONDUCT.md file | 161 | | include_workflows | y | Include .github/workflows directory | 162 | | use_codeql | y | Use [CodeQL](https://securitylab.github.com/tools/codeql/) | 163 | | use_conventional_commits | y | Add [Conventional Commits](https://www.conventionalcommits.org) notice | 164 | | use_github_discussions | n | Use [GitHub Discussions](https://docs.github.com/en/discussions/quickstart) | 165 | 166 | > NOTICE: to use GitHub Discussions, you have to [enable it first](https://docs.github.com/en/discussions/quickstart). 167 | 168 | ## Roadmap 169 | 170 | See the [open issues](https://github.com/dec0dOS/amazing-github-template/issues) for a list of proposed features (and known issues). 171 | 172 | - [Top Feature Requests](https://github.com/dec0dOS/amazing-github-template/issues?q=label%3Aenhancement+is%3Aopen+sort%3Areactions-%2B1-desc) (Add your votes using the 👍 reaction) 173 | - [Top Bugs](https://github.com/dec0dOS/amazing-github-template/issues?q=is%3Aissue+is%3Aopen+label%3Abug+sort%3Areactions-%2B1-desc) (Add your votes using the 👍 reaction) 174 | - [Newest Bugs](https://github.com/dec0dOS/amazing-github-template/issues?q=is%3Aopen+is%3Aissue+label%3Abug) 175 | 176 | ## Contributing 177 | 178 | First off, thanks for taking the time to contribute! Contributions are what makes the open-source community such an amazing place to learn, inspire, and create. Any contributions you make will benefit everybody else and are **greatly appreciated**. 179 | 180 | Please try to create bug reports that are: 181 | 182 | - _Reproducible._ Include steps to reproduce the problem. 183 | - _Specific._ Include as much detail as possible: which version, what environment, etc. 184 | - _Unique._ Do not duplicate existing opened issues. 185 | - _Scoped to a Single Bug._ One bug per report. 186 | 187 | Please adhere to this project's [code of conduct](docs/CODE_OF_CONDUCT.md). 188 | 189 | You can use [markdownlint-cli](https://github.com/igorshubovych/markdownlint-cli) to check for common markdown style inconsistency. 190 | 191 | ## Support 192 | 193 | Reach out to the maintainer at one of the following places: 194 | 195 | - [GitHub discussions](https://github.com/dec0dOS/amazing-github-template/discussions) 196 | - The email which is located [in GitHub profile](https://github.com/dec0dOS) 197 | 198 | ## License 199 | 200 | This project is licensed under the **MIT license**. Feel free to edit and distribute this template as you like. 201 | 202 | See [LICENSE](LICENSE) for more information. 203 | 204 | ## Acknowledgements 205 | 206 | Thanks for these awesome resources that were used during the development of the **Amazing GitHub template**: 207 | 208 | - 209 | - 210 | - 211 | - 212 | - 213 | - 214 | - 215 | - 216 | - 217 | - 218 | - 219 | - 220 | - 221 | - 222 | - 223 | - 224 | - 225 | - 226 | - 227 | - 228 | - 229 | -------------------------------------------------------------------------------- /cookiecutter.json: -------------------------------------------------------------------------------- 1 | { 2 | "project_name": "My Amazing Project", 3 | "repo_slug": "{{ cookiecutter.project_name.lower().replace(' ', '-').replace('_', '-') }}", 4 | "github_username": "dec0dOS", 5 | "full_name": "Alexey Potapov", 6 | "open_source_license": [ 7 | "MIT license", 8 | "BSD license", 9 | "Apache Software License 2.0", 10 | "GNU General Public License v3", 11 | "Not open source" 12 | ], 13 | "modern_header": "y", 14 | "table_in_about": "n", 15 | "include_logo": "y", 16 | "include_badges": "y", 17 | "include_toc": "y", 18 | "include_screenshots": "y", 19 | "include_project_assistance": "y", 20 | "include_authors": "y", 21 | "include_security": "y", 22 | "include_acknowledgements": "y", 23 | "include_code_of_conduct": "y", 24 | "include_workflows": "y", 25 | "use_codeql": "y", 26 | "use_conventional_commits": "y", 27 | "use_github_discussions": "n" 28 | } 29 | -------------------------------------------------------------------------------- /docs/CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | # Contributor Covenant Code of Conduct 2 | 3 | ## Our Pledge 4 | 5 | In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to make participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation. 6 | 7 | ## Our Standards 8 | 9 | Examples of behavior that contributes to creating a positive environment include: 10 | 11 | * Using welcoming and inclusive language 12 | * Being respectful of differing viewpoints and experiences 13 | * Gracefully accepting constructive criticism 14 | * Focusing on what is best for the community 15 | * Showing empathy towards other community members 16 | 17 | Examples of unacceptable behavior by participants include: 18 | 19 | * The use of sexualized language or imagery and unwelcome sexual attention or advances 20 | * Trolling, insulting/derogatory comments, and personal or political attacks 21 | * Public or private harassment 22 | * Publishing others' private information, such as a physical or electronic address, without explicit permission 23 | * Other conduct which could reasonably be considered inappropriate in a professional setting 24 | 25 | ## Our Responsibilities 26 | 27 | Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior. 28 | 29 | Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful. 30 | 31 | ## Scope 32 | 33 | This Code of Conduct applies within all project spaces, and it also applies when an individual is representing the project or its community in public spaces. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers. 34 | 35 | ## Enforcement 36 | 37 | Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project maintainer using any of the [private contact addresses](https://github.com/dec0dOS/amazing-github-template#support). All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately. 38 | 39 | Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership. 40 | 41 | ## Attribution 42 | 43 | This Code of Conduct is adapted from the [Contributor Covenant](https://www.contributor-covenant.org), version 1.4, available at 44 | 45 | For answers to common questions about this code of conduct, see 46 | -------------------------------------------------------------------------------- /hooks/post_gen_project.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | import os 3 | import shutil 4 | 5 | PROJECT_DIRECTORY = os.path.realpath(os.path.curdir) 6 | 7 | 8 | def remove(filepath): 9 | fullpath = os.path.join(PROJECT_DIRECTORY, filepath) 10 | if os.path.isfile(fullpath): 11 | os.remove(fullpath) 12 | else: 13 | shutil.rmtree(fullpath, ignore_errors=True) 14 | 15 | 16 | if __name__ == "__main__": 17 | if "{{ cookiecutter.open_source_license }}" == "Not open source": 18 | remove(".github/workflows/codeql.yml") # codeql is available for free only for OSS 19 | remove("LICENSE") 20 | 21 | if "{{ cookiecutter.include_logo }}" != "y": 22 | remove("docs/images/logo.svg") 23 | 24 | if "{{ cookiecutter.include_screenshots }}" != "y": 25 | remove("docs/images/screenshot.png") 26 | 27 | if "{{ cookiecutter.include_security }}" != "y": 28 | remove("docs/SECURITY.md") 29 | 30 | if "{{ cookiecutter.include_code_of_conduct }}" != "y": 31 | remove("docs/CODE_OF_CONDUCT.md") 32 | 33 | if "{{ cookiecutter.include_workflows }}" != "y": 34 | remove(".github/workflows") 35 | remove(".github/labels.yml") 36 | 37 | if "{{ cookiecutter.use_github_discussions }}" == "y": 38 | remove(".github/ISSUE_TEMPLATE/04_SUPPORT_QUESTION.md") 39 | 40 | if "{{ cookiecutter.use_codeql }}" != "y": 41 | remove(".github/workflows/codeql.yml") -------------------------------------------------------------------------------- /{{cookiecutter.repo_slug}}/.github/CODEOWNERS: -------------------------------------------------------------------------------- 1 | * @{{cookiecutter.github_username}} 2 | -------------------------------------------------------------------------------- /{{cookiecutter.repo_slug}}/.github/ISSUE_TEMPLATE/01_BUG_REPORT.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug Report 3 | about: Create a report to help {{cookiecutter.project_name}} to improve 4 | title: "bug: " 5 | labels: "bug" 6 | assignees: "" 7 | --- 8 | 9 | # Bug Report 10 | 11 | **{{cookiecutter.project_name}} version:** 12 | 13 | 14 | 15 | **Current behavior:** 16 | 17 | 18 | 19 | **Expected behavior:** 20 | 21 | 22 | 23 | **Steps to reproduce:** 24 | 25 | 26 | 27 | **Related code:** 28 | 29 | 30 | 31 | ``` 32 | insert short code snippets here 33 | ``` 34 | 35 | **Other information:** 36 | 37 | 38 | -------------------------------------------------------------------------------- /{{cookiecutter.repo_slug}}/.github/ISSUE_TEMPLATE/02_FEATURE_REQUEST.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature Request 3 | about: Suggest an idea for this project 4 | title: "feat: " 5 | labels: "enhancement" 6 | assignees: "" 7 | --- 8 | 9 | # Feature Request 10 | 11 | **Describe the Feature Request** 12 | 13 | 14 | 15 | **Describe Preferred Solution** 16 | 17 | 18 | 19 | **Describe Alternatives** 20 | 21 | 22 | 23 | **Related Code** 24 | 25 | 26 | 27 | **Additional Context** 28 | 29 | 30 | 31 | **If the feature request is approved, would you be willing to submit a PR?** 32 | _(Help can be provided if you need assistance submitting a PR)_ 33 | 34 | - [ ] Yes 35 | - [ ] No 36 | -------------------------------------------------------------------------------- /{{cookiecutter.repo_slug}}/.github/ISSUE_TEMPLATE/03_CODEBASE_IMPROVEMENT.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Codebase improvement 3 | about: Provide your feedback for the existing codebase. Suggest a better solution for algorithms, development tools, etc. 4 | title: "dev: " 5 | labels: "enhancement" 6 | assignees: "" 7 | --- 8 | -------------------------------------------------------------------------------- /{{cookiecutter.repo_slug}}/.github/ISSUE_TEMPLATE/04_SUPPORT_QUESTION.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Support Question 3 | about: Question on how to use this project 4 | title: "support: " 5 | labels: "question" 6 | assignees: "" 7 | --- 8 | 9 | # Support Question 10 | -------------------------------------------------------------------------------- /{{cookiecutter.repo_slug}}/.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- 1 | --- 2 | blank_issues_enabled: false 3 | {% if cookiecutter.use_github_discussions == 'y' -%} 4 | contact_links: 5 | - name: {{cookiecutter.project_name}} Community Support 6 | url: https://github.com/{{cookiecutter.github_username}}/{{cookiecutter.repo_slug}}/discussions 7 | about: Please ask and answer questions here. 8 | {% endif %} -------------------------------------------------------------------------------- /{{cookiecutter.repo_slug}}/.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | ## Pull Request type 4 | 5 | 6 | 7 | Please check the type of change your PR introduces: 8 | 9 | - [ ] Bugfix 10 | - [ ] Feature 11 | - [ ] Code style update (formatting, renaming) 12 | - [ ] Refactoring (no functional changes, no API changes) 13 | - [ ] Build-related changes 14 | - [ ] Documentation content changes 15 | - [ ] Other (please describe): 16 | 17 | ## What is the current behavior? 18 | 19 | 20 | 21 | Issue Number: N/A 22 | 23 | ## What is the new behavior? 24 | 25 | 26 | 27 | - 28 | - 29 | - 30 | 31 | ## Does this introduce a breaking change? 32 | 33 | - [ ] Yes 34 | - [ ] No 35 | 36 | 37 | 38 | ## Other information 39 | 40 | 41 | -------------------------------------------------------------------------------- /{{cookiecutter.repo_slug}}/.github/labels.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: "breaking-change" 3 | color: ee0701 4 | description: "A change that changes the API or breaks backward compatibility for users." 5 | - name: "bugfix" 6 | color: ee0701 7 | description: "Inconsistencies or issues which will cause a problem for users or implementors." 8 | - name: "documentation" 9 | color: 0052cc 10 | description: "Solely about the documentation of the project." 11 | - name: "enhancement" 12 | color: 1d76db 13 | description: "Enhancement of the code, not introducing new features." 14 | - name: "refactor" 15 | color: 1d76db 16 | description: "Updating the code with simpler, easier to understand or more efficient syntax or methods, but not introducing new features." 17 | - name: "performance" 18 | color: 1d76db 19 | description: "Improving performance of the project, not introducing new features." 20 | - name: "new-feature" 21 | color: 0e8a16 22 | description: "New features or options." 23 | - name: "maintenance" 24 | color: 2af79e 25 | description: "Generic maintenance tasks." 26 | - name: "ci" 27 | color: 1d76db 28 | description: "Work that improves the continuous integration." 29 | - name: "dependencies" 30 | color: 1d76db 31 | description: "Change in project dependencies." 32 | 33 | - name: "in-progress" 34 | color: fbca04 35 | description: "Issue is currently being worked on by a developer." 36 | - name: "stale" 37 | color: fef2c0 38 | description: "No activity for quite some time." 39 | - name: "no-stale" 40 | color: fef2c0 41 | description: "This is exempt from the stale bot." 42 | 43 | - name: "security" 44 | color: ee0701 45 | description: "Addressing a vulnerability or security risk in this project." 46 | - name: "incomplete" 47 | color: fef2c0 48 | description: "Missing information." 49 | - name: "invalid" 50 | color: fef2c0 51 | description: "This is off-topic, spam, or otherwise doesn't apply to this project." 52 | 53 | - name: "beginner-friendly" 54 | color: 0e8a16 55 | description: "Good first issue for people wanting to contribute to this project." 56 | - name: "help-wanted" 57 | color: 0e8a16 58 | description: "We need some extra helping hands or expertise in order to resolve this!" 59 | 60 | - name: "priority-critical" 61 | color: ee0701 62 | description: "Must be addressed as soon as possible." 63 | - name: "priority-high" 64 | color: b60205 65 | description: "After critical issues are fixed, these should be dealt with before any further issues." 66 | - name: "priority-medium" 67 | color: 0e8a16 68 | description: "This issue may be useful, and needs some attention." 69 | - name: "priority-low" 70 | color: e4ea8a 71 | description: "Nice addition, maybe... someday..." 72 | 73 | - name: "major" 74 | color: b60205 75 | description: "This PR causes a major bump in the version number." 76 | - name: "minor" 77 | color: 0e8a16 78 | description: "This PR causes a minor bump in the version number." 79 | -------------------------------------------------------------------------------- /{{cookiecutter.repo_slug}}/.github/workflows/codeql.yml: -------------------------------------------------------------------------------- 1 | ---{% raw %} 2 | name: CodeQL 3 | 4 | on: 5 | push: 6 | pull_request: 7 | schedule: 8 | - cron: "30 1 * * 0" 9 | 10 | jobs: 11 | codeql: 12 | name: 🏭 Scanning 13 | runs-on: ubuntu-latest 14 | steps: 15 | - name: ⤵️ Check out code from GitHub 16 | uses: actions/checkout@v2 17 | - name: 🏗 Initialize CodeQL 18 | uses: github/codeql-action/init@v1 19 | - name: 🚀 Perform CodeQL Analysis 20 | uses: github/codeql-action/analyze@v1 21 | {% endraw %} -------------------------------------------------------------------------------- /{{cookiecutter.repo_slug}}/.github/workflows/labels.yml: -------------------------------------------------------------------------------- 1 | ---{% raw %} 2 | name: Sync labels 3 | 4 | on: 5 | push: 6 | branches: 7 | - main 8 | paths: 9 | - .github/labels.yml 10 | 11 | jobs: 12 | labels: 13 | name: ♻️ Sync labels 14 | runs-on: ubuntu-latest 15 | steps: 16 | - name: ⤵️ Check out code from GitHub 17 | uses: actions/checkout@v2 18 | - name: 🚀 Run Label Syncer 19 | uses: micnncim/action-label-syncer@v1.2.0 20 | env: 21 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 22 | {% endraw %} -------------------------------------------------------------------------------- /{{cookiecutter.repo_slug}}/.github/workflows/lock.yml: -------------------------------------------------------------------------------- 1 | ---{% raw %} 2 | name: Lock 3 | 4 | on: 5 | schedule: 6 | - cron: "0 9 * * *" 7 | workflow_dispatch: 8 | 9 | jobs: 10 | lock: 11 | name: 🔒 Lock closed issues and PRs 12 | runs-on: ubuntu-latest 13 | steps: 14 | - uses: dessant/lock-threads@v2.0.3 15 | with: 16 | github-token: ${{ github.token }} 17 | issue-lock-inactive-days: "30" 18 | issue-lock-reason: "" 19 | issue-comment: > 20 | Issue closed and locked due to lack of activity. 21 | 22 | If you encounter this same issue, please open a new issue and refer 23 | to this closed one. 24 | pr-lock-inactive-days: "1" 25 | pr-lock-reason: "" 26 | pr-comment: > 27 | Pull Request closed and locked due to lack of activity. 28 | 29 | If you'd like to build on this closed PR, you can clone it using 30 | this method: https://stackoverflow.com/a/14969986 31 | 32 | Then open a new PR, referencing this closed PR in your message. 33 | {% endraw %} -------------------------------------------------------------------------------- /{{cookiecutter.repo_slug}}/.github/workflows/pr-labels.yml: -------------------------------------------------------------------------------- 1 | ---{% raw %} 2 | name: PR Labels 3 | 4 | on: 5 | pull_request: 6 | types: [opened, labeled, unlabeled, synchronize] 7 | 8 | jobs: 9 | pr_labels: 10 | name: 🏭 Verify 11 | runs-on: ubuntu-latest 12 | steps: 13 | - name: 🏷 Verify PR has a valid label 14 | uses: jesusvasquez333/verify-pr-label-action@v1.4.0 15 | with: 16 | github-token: "${{ secrets.GITHUB_TOKEN }}" 17 | valid-labels: >- 18 | breaking-change, bugfix, documentation, enhancement, 19 | refactor, performance, new-feature, maintenance, ci, dependencies 20 | disable-reviews: true 21 | {% endraw %} -------------------------------------------------------------------------------- /{{cookiecutter.repo_slug}}/.github/workflows/stale.yml: -------------------------------------------------------------------------------- 1 | ---{% raw %} 2 | name: Stale 3 | 4 | on: 5 | schedule: 6 | - cron: "0 8 * * *" 7 | workflow_dispatch: 8 | 9 | jobs: 10 | stale: 11 | name: 🧹 Clean up stale issues and PRs 12 | runs-on: ubuntu-latest 13 | steps: 14 | - name: 🚀 Run stale 15 | uses: actions/stale@v3 16 | with: 17 | repo-token: ${{ secrets.GITHUB_TOKEN }} 18 | days-before-stale: 30 19 | days-before-close: 7 20 | remove-stale-when-updated: true 21 | stale-issue-label: "stale" 22 | exempt-issue-labels: "no-stale,help-wanted" 23 | stale-issue-message: > 24 | There hasn't been any activity on this issue recently, and in order 25 | to prioritize active issues, it will be marked as stale. 26 | 27 | Please make sure to update to the latest version and 28 | check if that solves the issue. Let us know if that works for you 29 | by leaving a 👍 30 | 31 | Because this issue is marked as stale, it will be closed and locked 32 | in 7 days if no further activity occurs. 33 | 34 | Thank you for your contributions! 35 | stale-pr-label: "stale" 36 | exempt-pr-labels: "no-stale" 37 | stale-pr-message: > 38 | There hasn't been any activity on this pull request recently, and in 39 | order to prioritize active work, it has been marked as stale. 40 | 41 | This PR will be closed and locked in 7 days if no further activity 42 | occurs. 43 | 44 | Thank you for your contributions! 45 | {% endraw %} -------------------------------------------------------------------------------- /{{cookiecutter.repo_slug}}/LICENSE: -------------------------------------------------------------------------------- 1 | {% if cookiecutter.open_source_license == 'MIT license' -%} 2 | MIT License 3 | 4 | Copyright (c) {% now 'local', '%Y' %}, {{ cookiecutter.full_name }} 5 | 6 | Permission is hereby granted, free of charge, to any person obtaining a copy 7 | of this software and associated documentation files (the "Software"), to deal 8 | in the Software without restriction, including without limitation the rights 9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | copies of the Software, and to permit persons to whom the Software is 11 | furnished to do so, subject to the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be included in all 14 | copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 22 | SOFTWARE. 23 | {% elif cookiecutter.open_source_license == 'BSD license' %} 24 | 25 | BSD License 26 | 27 | Copyright (c) {% now 'local', '%Y' %}, {{ cookiecutter.full_name }} 28 | All rights reserved. 29 | 30 | Redistribution and use in source and binary forms, with or without modification, 31 | are permitted provided that the following conditions are met: 32 | 33 | * Redistributions of source code must retain the above copyright notice, this 34 | list of conditions and the following disclaimer. 35 | 36 | * Redistributions in binary form must reproduce the above copyright notice, this 37 | list of conditions and the following disclaimer in the documentation and/or 38 | other materials provided with the distribution. 39 | 40 | * Neither the name of the copyright holder nor the names of its 41 | contributors may be used to endorse or promote products derived from this 42 | software without specific prior written permission. 43 | 44 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 45 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 46 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 47 | IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 48 | INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 49 | BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 50 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 51 | OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE 52 | OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 53 | OF THE POSSIBILITY OF SUCH DAMAGE. 54 | {% elif cookiecutter.open_source_license == 'Apache Software License 2.0' -%} 55 | Apache Software License 2.0 56 | 57 | Copyright (c) {% now 'local', '%Y' %}, {{ cookiecutter.full_name }} 58 | 59 | Licensed under the Apache License, Version 2.0 (the "License"); 60 | you may not use this file except in compliance with the License. 61 | You may obtain a copy of the License at 62 | 63 | http://www.apache.org/licenses/LICENSE-2.0 64 | 65 | Unless required by applicable law or agreed to in writing, software 66 | distributed under the License is distributed on an "AS IS" BASIS, 67 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 68 | See the License for the specific language governing permissions and 69 | limitations under the License. 70 | {% elif cookiecutter.open_source_license == 'GNU General Public License v3' -%} 71 | GNU GENERAL PUBLIC LICENSE 72 | Version 3, 29 June 2007 73 | 74 | Copyright (C) {% now 'local', '%Y' %} {{ cookiecutter.full_name }} 75 | 76 | This program is free software: you can redistribute it and/or modify 77 | it under the terms of the GNU General Public License as published by 78 | the Free Software Foundation, either version 3 of the License, or 79 | (at your option) any later version. 80 | 81 | This program is distributed in the hope that it will be useful, 82 | but WITHOUT ANY WARRANTY; without even the implied warranty of 83 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 84 | GNU General Public License for more details. 85 | 86 | You should have received a copy of the GNU General Public License 87 | along with this program. If not, see . 88 | 89 | Reach out to the maintainer using any of the private contact addresses 90 | . 91 | 92 | You should also get your employer (if you work as a programmer) or school, 93 | if any, to sign a "copyright disclaimer" for the program, if necessary. 94 | For more information on this, and how to apply and follow the GNU GPL, see 95 | . 96 | 97 | The GNU General Public License does not permit incorporating your program 98 | into proprietary programs. If your program is a subroutine library, you 99 | may consider it more useful to permit linking proprietary applications with 100 | the library. If this is what you want to do, use the GNU Lesser General 101 | Public License instead of this License. But first, please read 102 | . 103 | {% endif %} -------------------------------------------------------------------------------- /{{cookiecutter.repo_slug}}/README.md: -------------------------------------------------------------------------------- 1 | {%- if cookiecutter.modern_header == 'y' -%} 2 | {%- if cookiecutter.include_logo == 'y' -%} 3 |

4 | 5 | 6 | Logo 7 | 8 |

9 | {% endif %} 10 |
11 | {{cookiecutter.project_name}} 12 |
13 | 14 | {%- if cookiecutter.include_screenshots == 'y' -%} 15 | Explore the screenshots » 16 | {%- else -%} 17 | Explore the docs » 18 | {%- endif -%} 19 | 20 |
21 |
22 | Report a Bug 23 | · 24 | Request a Feature 25 | . 26 | {%- if cookiecutter.use_github_discussions == 'y' -%} 27 | Ask a Question 28 | {%- elif cookiecutter.use_github_discussions != 'y' %} 29 | Ask a Question 30 | {%- endif %} 31 |
32 | {%- else -%} 33 | # {{cookiecutter.project_name}} 34 | 35 | > **[?]** 36 | > Provide short description for your project here. 37 | 38 | {%- endif %} 39 | {% if cookiecutter.include_badges == 'y' -%} 40 | {%- if cookiecutter.modern_header == 'y' %} 41 |
42 | {%- endif %} 43 |
44 | 45 | [![Project license](https://img.shields.io/github/license/{{cookiecutter.github_username}}/{{cookiecutter.repo_slug}}.svg?style=flat-square)](LICENSE) 46 | 47 | [![Pull Requests welcome](https://img.shields.io/badge/PRs-welcome-ff69b4.svg?style=flat-square)](https://github.com/{{cookiecutter.github_username}}/{{cookiecutter.repo_slug}}/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22) 48 | [![code with love by {{cookiecutter.github_username}}](https://img.shields.io/badge/%3C%2F%3E%20with%20%E2%99%A5%20by-{{cookiecutter.github_username}}-ff1414.svg?style=flat-square)](https://github.com/{{cookiecutter.github_username}}) 49 | 50 | {% if cookiecutter.modern_header == 'y' -%} 51 |
52 | {%- endif %} 53 | {% endif %} 54 | {% if cookiecutter.include_toc == 'y' -%} 55 |
56 | Table of Contents 57 | 58 | - [About](#about) 59 | - [Built With](#built-with) 60 | - [Getting Started](#getting-started) 61 | - [Prerequisites](#prerequisites) 62 | - [Installation](#installation) 63 | - [Usage](#usage) 64 | - [Roadmap](#roadmap) 65 | - [Support](#support) 66 | {%- if cookiecutter.include_project_assistance == 'y' %} 67 | - [Project assistance](#project-assistance) 68 | {%- endif %} 69 | - [Contributing](#contributing) 70 | {%- if cookiecutter.include_authors == 'y' %} 71 | - [Authors & contributors](#authors--contributors) 72 | {%- endif %} 73 | {%- if cookiecutter.include_security == 'y' %} 74 | - [Security](#security) 75 | {%- endif %} 76 | {%- if cookiecutter.open_source_license != 'Not open source' %} 77 | - [License](#license) 78 | {%- endif %} 79 | {%- if cookiecutter.include_acknowledgements == 'y' %} 80 | - [Acknowledgements](#acknowledgements) 81 | {%- endif %} 82 | 83 |
84 | {%- endif %} 85 | 86 | --- 87 | 88 | ## About 89 | {% if cookiecutter.table_in_about == 'y' %} 90 |
91 | {% endif %} 92 | > **[?]** 93 | > Provide general information about your project here. 94 | > What problem does it (intend to) solve? 95 | > What is the purpose of your project? 96 | > Why did you undertake it? 97 | > You don't have to answer all the questions -- just the ones relevant to your project. 98 | 99 | {% if cookiecutter.include_screenshots == 'y' -%} 100 |
101 | Screenshots 102 |
103 | 104 | > **[?]** 105 | > Please provide your screenshots here. 106 | 107 | | Home Page | Login Page | 108 | | :-------------------------------------------------------------------: | :--------------------------------------------------------------------: | 109 | | | | 110 | 111 |
112 | {%- endif %} 113 | {% if cookiecutter.table_in_about == 'y' %} 114 |
115 | {% endif %} 116 | ### Built With 117 | 118 | > **[?]** 119 | > Please provide the technologies that are used in the project. 120 | 121 | ## Getting Started 122 | 123 | ### Prerequisites 124 | 125 | > **[?]** 126 | > What are the project requirements/dependencies? 127 | 128 | ### Installation 129 | 130 | > **[?]** 131 | > Describe how to install and get started with the project. 132 | 133 | ## Usage 134 | 135 | > **[?]** 136 | > How does one go about using it? 137 | > Provide various use cases and code examples here. 138 | 139 | ## Roadmap 140 | 141 | See the [open issues](https://github.com/{{cookiecutter.github_username}}/{{cookiecutter.repo_slug}}/issues) for a list of proposed features (and known issues). 142 | 143 | - [Top Feature Requests](https://github.com/{{cookiecutter.github_username}}/{{cookiecutter.repo_slug}}/issues?q=label%3Aenhancement+is%3Aopen+sort%3Areactions-%2B1-desc) (Add your votes using the 👍 reaction) 144 | - [Top Bugs](https://github.com/{{cookiecutter.github_username}}/{{cookiecutter.repo_slug}}/issues?q=is%3Aissue+is%3Aopen+label%3Abug+sort%3Areactions-%2B1-desc) (Add your votes using the 👍 reaction) 145 | - [Newest Bugs](https://github.com/{{cookiecutter.github_username}}/{{cookiecutter.repo_slug}}/issues?q=is%3Aopen+is%3Aissue+label%3Abug) 146 | 147 | ## Support 148 | 149 | > **[?]** 150 | > Provide additional ways to contact the project maintainer/maintainers. 151 | 152 | Reach out to the maintainer at one of the following places: 153 | 154 | {% if cookiecutter.use_github_discussions == 'y' -%} 155 | - [GitHub Discussions](https://github.com/{{cookiecutter.github_username}}/{{cookiecutter.repo_slug}}/discussions) 156 | {%- elif cookiecutter.use_github_discussions != 'y' -%} 157 | - [GitHub issues](https://github.com/{{cookiecutter.github_username}}/{{cookiecutter.repo_slug}}/issues/new?assignees=&labels=question&template=04_SUPPORT_QUESTION.md&title=support%3A+) 158 | {%- endif %} 159 | - Contact options listed on [this GitHub profile](https://github.com/{{cookiecutter.github_username}}) 160 | 161 | {% if cookiecutter.include_project_assistance == 'y' -%} 162 | ## Project assistance 163 | 164 | If you want to say **thank you** or/and support active development of {{cookiecutter.project_name}}: 165 | 166 | - Add a [GitHub Star](https://github.com/{{cookiecutter.github_username}}/{{cookiecutter.repo_slug}}) to the project. 167 | - Tweet about the {{cookiecutter.project_name}}. 168 | - Write interesting articles about the project on [Dev.to](https://dev.to/), [Medium](https://medium.com/) or your personal blog. 169 | 170 | Together, we can make {{cookiecutter.project_name}} **better**! 171 | {% endif %} 172 | ## Contributing 173 | 174 | {% if cookiecutter.open_source_license != 'Not open source' -%} 175 | First off, thanks for taking the time to contribute! Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make will benefit everybody else and are **greatly appreciated**. 176 | {% endif %} 177 | 178 | Please read [our contribution guidelines](docs/CONTRIBUTING.md), and thank you for being involved! 179 | 180 | {% if cookiecutter.include_authors == 'y' -%} 181 | ## Authors & contributors 182 | 183 | The original setup of this repository is by [{{cookiecutter.full_name}}](https://github.com/{{cookiecutter.github_username}}). 184 | 185 | For a full list of all authors and contributors, see [the contributors page](https://github.com/{{cookiecutter.github_username}}/{{cookiecutter.repo_slug}}/contributors). 186 | {% endif %} 187 | {% if cookiecutter.include_security == 'y' -%} 188 | ## Security 189 | 190 | {{cookiecutter.project_name}} follows good practices of security, but 100% security cannot be assured. 191 | {{cookiecutter.project_name}} is provided **"as is"** without any **warranty**. Use at your own risk. 192 | 193 | _For more information and to report security issues, please refer to our [security documentation](docs/SECURITY.md)._ 194 | {% endif %} 195 | {% if cookiecutter.open_source_license != 'Not open source' -%} 196 | ## License 197 | 198 | This project is licensed under the **{{cookiecutter.open_source_license}}**. 199 | 200 | See [LICENSE](LICENSE) for more information. 201 | {% endif %} 202 | {% if cookiecutter.include_acknowledgements == 'y' -%} 203 | ## Acknowledgements 204 | 205 | > **[?]** 206 | > If your work was funded by any organization or institution, acknowledge their support here. 207 | > In addition, if your work relies on other software libraries, or was inspired by looking at other work, it is appropriate to acknowledge this intellectual debt too. 208 | {% endif %} -------------------------------------------------------------------------------- /{{cookiecutter.repo_slug}}/docs/CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | # Contributor Covenant Code of Conduct 2 | 3 | ## Our Pledge 4 | 5 | In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to make participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation. 6 | 7 | ## Our Standards 8 | 9 | Examples of behavior that contributes to creating a positive environment include: 10 | 11 | * Using welcoming and inclusive language 12 | * Being respectful of differing viewpoints and experiences 13 | * Gracefully accepting constructive criticism 14 | * Focusing on what is best for the community 15 | * Showing empathy towards other community members 16 | 17 | Examples of unacceptable behavior by participants include: 18 | 19 | * The use of sexualized language or imagery and unwelcome sexual attention or advances 20 | * Trolling, insulting/derogatory comments, and personal or political attacks 21 | * Public or private harassment 22 | * Publishing others' private information, such as a physical or electronic address, without explicit permission 23 | * Other conduct which could reasonably be considered inappropriate in a professional setting 24 | 25 | ## Our Responsibilities 26 | 27 | Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior. 28 | 29 | Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful. 30 | 31 | ## Scope 32 | 33 | This Code of Conduct applies within all project spaces, and it also applies when an individual is representing the project or its community in public spaces. Examples of representing a project or community include using an official project email address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers. 34 | 35 | ## Enforcement 36 | 37 | Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project maintainer using any of the [private contact addresses](https://github.com/{{cookiecutter.github_username}}/{{cookiecutter.repo_slug}}#support). All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately. 38 | 39 | Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership. 40 | 41 | ## Attribution 42 | 43 | This Code of Conduct is adapted from the [Contributor Covenant](https://www.contributor-covenant.org), version 1.4, available at 44 | 45 | For answers to common questions about this code of conduct, see 46 | -------------------------------------------------------------------------------- /{{cookiecutter.repo_slug}}/docs/CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contributing 2 | 3 | When contributing to this repository, please first discuss the change you wish to make via issue, email, or any other method with the owners of this repository before making a change. 4 | {% if cookiecutter.include_code_of_conduct == 'y' -%} 5 | Please note we have a [code of conduct](CODE_OF_CONDUCT.md), please follow it in all your interactions with the project. 6 | {% endif %} 7 | ## Development environment setup 8 | 9 | > **[?]** 10 | > Proceed to describe how to setup local development environment. 11 | > e.g: 12 | 13 | To set up a development environment, please follow these steps: 14 | 15 | 1. Clone the repo 16 | 17 | ```sh 18 | git clone https://github.com/{{cookiecutter.github_username}}/{{cookiecutter.repo_slug}} 19 | ``` 20 | 21 | 2. TODO 22 | 23 | ## Issues and feature requests 24 | 25 | You've found a bug in the source code, a mistake in the documentation or maybe you'd like a new feature?{% if cookiecutter.use_github_discussions == 'y' -%} Take a look at [GitHub Discussions](https://github.com/{{cookiecutter.github_username}}/{{cookiecutter.repo_slug}}/discussions) to see if it's already being discussed. {% endif %} You can help us by [submitting an issue on GitHub](https://github.com/{{cookiecutter.github_username}}/{{cookiecutter.repo_slug}}/issues). Before you create an issue, make sure to search the issue archive -- your issue may have already been addressed! 26 | 27 | Please try to create bug reports that are: 28 | 29 | - _Reproducible._ Include steps to reproduce the problem. 30 | - _Specific._ Include as much detail as possible: which version, what environment, etc. 31 | - _Unique._ Do not duplicate existing opened issues. 32 | - _Scoped to a Single Bug._ One bug per report. 33 | 34 | **Even better: Submit a pull request with a fix or new feature!** 35 | 36 | ### How to submit a Pull Request 37 | 38 | 1. Search our repository for open or closed 39 | [Pull Requests](https://github.com/{{cookiecutter.github_username}}/{{cookiecutter.repo_slug}}/pulls) 40 | that relate to your submission. You don't want to duplicate effort. 41 | 2. Fork the project 42 | 3. Create your feature branch (`git checkout -b feat/amazing_feature`) 43 | 4. Commit your changes (`git commit -m 'feat: add amazing_feature'`) {% if cookiecutter.use_conventional_commits == 'y' -%} 44 | {{cookiecutter.project_name}} uses [conventional commits](https://www.conventionalcommits.org), so please follow the specification in your commit messages.{% endif %} 45 | 5. Push to the branch (`git push origin feat/amazing_feature`) 46 | 6. [Open a Pull Request](https://github.com/{{cookiecutter.github_username}}/{{cookiecutter.repo_slug}}/compare?expand=1) 47 | -------------------------------------------------------------------------------- /{{cookiecutter.repo_slug}}/docs/SECURITY.md: -------------------------------------------------------------------------------- 1 | # Security Policy 2 | 3 | ## Reporting a Vulnerability 4 | 5 | If there are any vulnerabilities in **{{cookiecutter.project_name}}**, don't hesitate to _report them_. 6 | 7 | 1. Use any of the [private contact addresses](https://github.com/{{cookiecutter.github_username}}/{{cookiecutter.repo_slug}}#support). 8 | 2. Describe the vulnerability. 9 | 10 | If you have a fix, that is most welcome -- please attach or summarize it in your message! 11 | 12 | 3. We will evaluate the vulnerability and, if necessary, release a fix or mitigating steps to address it. We will contact you to let you know the outcome, and will credit you in the report. 13 | 14 | Please **do not disclose the vulnerability publicly** until a fix is released! 15 | 16 | 4. Once we have either a) published a fix, or b) declined to address the vulnerability for whatever reason, you are free to publicly disclose it. 17 | -------------------------------------------------------------------------------- /{{cookiecutter.repo_slug}}/docs/images/logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 | 196 | 197 | 198 | 199 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | 220 | 221 | 222 | 223 | 224 | 225 | 226 | 227 | 228 | 229 | 230 | 231 | 232 | 233 | 234 | 235 | 236 | 237 | 238 | 239 | 240 | 241 | 242 | 243 | 244 | 245 | 246 | 247 | 248 | 249 | 250 | 251 | 252 | 253 | 254 | 255 | 256 | 257 | 258 | 259 | 260 | -------------------------------------------------------------------------------- /{{cookiecutter.repo_slug}}/docs/images/screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dec0dOS/amazing-github-template/6a23f3baa353a1936703b9e8fa0870132f9b6edf/{{cookiecutter.repo_slug}}/docs/images/screenshot.png --------------------------------------------------------------------------------