From b5ab5ee148f7f41c20637ad83de1ed3e8a8a4167 Mon Sep 17 00:00:00 2001 From: rare-magma Date: Tue, 18 Apr 2023 23:29:46 +0200 Subject: [PATCH] docs: add github readme template --- .github/CODEOWNERS | 1 + .github/ISSUE_TEMPLATE/01_BUG_REPORT.md | 37 ++++ .github/ISSUE_TEMPLATE/02_FEATURE_REQUEST.md | 35 ++++ .../ISSUE_TEMPLATE/03_CODEBASE_IMPROVEMENT.md | 7 + .github/ISSUE_TEMPLATE/04_SUPPORT_QUESTION.md | 9 + .github/ISSUE_TEMPLATE/config.yml | 2 + .github/PULL_REQUEST_TEMPLATE.md | 40 +++++ .github/labels.yml | 72 ++++++++ .github/workflows/labels.yml | 21 +++ .github/workflows/lock.yml | 32 ++++ .github/workflows/pr-labels.yml | 20 +++ README.md | 163 ++++++++++++++++-- docs/CODE_OF_CONDUCT.md | 45 +++++ docs/CONTRIBUTING.md | 63 +++++++ docs/SECURITY.md | 16 ++ docs/images/logo.svg | 1 + docs/images/screenshot.png | Bin 0 -> 6347 bytes 17 files changed, 546 insertions(+), 18 deletions(-) create mode 100644 .github/CODEOWNERS create mode 100644 .github/ISSUE_TEMPLATE/01_BUG_REPORT.md create mode 100644 .github/ISSUE_TEMPLATE/02_FEATURE_REQUEST.md create mode 100644 .github/ISSUE_TEMPLATE/03_CODEBASE_IMPROVEMENT.md create mode 100644 .github/ISSUE_TEMPLATE/04_SUPPORT_QUESTION.md create mode 100644 .github/ISSUE_TEMPLATE/config.yml create mode 100644 .github/PULL_REQUEST_TEMPLATE.md create mode 100644 .github/labels.yml create mode 100644 .github/workflows/labels.yml create mode 100644 .github/workflows/lock.yml create mode 100644 .github/workflows/pr-labels.yml create mode 100644 docs/CODE_OF_CONDUCT.md create mode 100644 docs/CONTRIBUTING.md create mode 100644 docs/SECURITY.md create mode 100644 docs/images/logo.svg create mode 100644 docs/images/screenshot.png diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 00000000..4054b946 --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1 @@ +* @rare-magma diff --git a/.github/ISSUE_TEMPLATE/01_BUG_REPORT.md b/.github/ISSUE_TEMPLATE/01_BUG_REPORT.md new file mode 100644 index 00000000..dfd83839 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/01_BUG_REPORT.md @@ -0,0 +1,37 @@ +--- +name: Bug Report +about: Create a report to help guitos to improve +title: "bug: " +labels: "bug" +assignees: "" +--- + +# Bug Report + +**guitos version:** + + + +**Current behavior:** + + + +**Expected behavior:** + + + +**Steps to reproduce:** + + + +**Related code:** + + + +``` +insert short code snippets here +``` + +**Other information:** + + diff --git a/.github/ISSUE_TEMPLATE/02_FEATURE_REQUEST.md b/.github/ISSUE_TEMPLATE/02_FEATURE_REQUEST.md new file mode 100644 index 00000000..57191479 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/02_FEATURE_REQUEST.md @@ -0,0 +1,35 @@ +--- +name: Feature Request +about: Suggest an idea for this project +title: "feat: " +labels: "enhancement" +assignees: "" +--- + +# Feature Request + +**Describe the Feature Request** + + + +**Describe Preferred Solution** + + + +**Describe Alternatives** + + + +**Related Code** + + + +**Additional Context** + + + +**If the feature request is approved, would you be willing to submit a PR?** +_(Help can be provided if you need assistance submitting a PR)_ + +- [ ] Yes +- [ ] No diff --git a/.github/ISSUE_TEMPLATE/03_CODEBASE_IMPROVEMENT.md b/.github/ISSUE_TEMPLATE/03_CODEBASE_IMPROVEMENT.md new file mode 100644 index 00000000..bcd6cb77 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/03_CODEBASE_IMPROVEMENT.md @@ -0,0 +1,7 @@ +--- +name: Codebase improvement +about: Provide your feedback for the existing codebase. Suggest a better solution for algorithms, development tools, etc. +title: "dev: " +labels: "enhancement" +assignees: "" +--- diff --git a/.github/ISSUE_TEMPLATE/04_SUPPORT_QUESTION.md b/.github/ISSUE_TEMPLATE/04_SUPPORT_QUESTION.md new file mode 100644 index 00000000..ca89bc0c --- /dev/null +++ b/.github/ISSUE_TEMPLATE/04_SUPPORT_QUESTION.md @@ -0,0 +1,9 @@ +--- +name: Support Question +about: Question on how to use this project +title: "support: " +labels: "question" +assignees: "" +--- + +# Support Question diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 00000000..bd9dfe4e --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,2 @@ +--- +blank_issues_enabled: false diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 00000000..5d0b0b33 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,40 @@ + + +## Pull Request type + + + +Please check the type of change your PR introduces: + +- [ ] Bugfix +- [ ] Feature +- [ ] Code style update (formatting, renaming) +- [ ] Refactoring (no functional changes, no API changes) +- [ ] Build-related changes +- [ ] Documentation content changes +- [ ] Other (please describe): + +## What is the current behavior? + + + +Issue Number: N/A + +## What is the new behavior? + + + +- +- +- + +## Does this introduce a breaking change? + +- [ ] Yes +- [ ] No + + + +## Other information + + diff --git a/.github/labels.yml b/.github/labels.yml new file mode 100644 index 00000000..f628b62f --- /dev/null +++ b/.github/labels.yml @@ -0,0 +1,72 @@ +--- +- name: "breaking-change" + color: ee0701 + description: "A change that changes the API or breaks backward compatibility for users." +- name: "bugfix" + color: ee0701 + description: "Inconsistencies or issues which will cause a problem for users or implementors." +- name: "documentation" + color: 0052cc + description: "Solely about the documentation of the project." +- name: "enhancement" + color: 1d76db + description: "Enhancement of the code, not introducing new features." +- name: "refactor" + color: 1d76db + description: "Updating the code with simpler, easier to understand or more efficient syntax or methods, but not introducing new features." +- name: "performance" + color: 1d76db + description: "Improving performance of the project, not introducing new features." +- name: "new-feature" + color: 0e8a16 + description: "New features or options." +- name: "maintenance" + color: 2af79e + description: "Generic maintenance tasks." +- name: "ci" + color: 1d76db + description: "Work that improves the continuous integration." +- name: "dependencies" + color: 1d76db + description: "Change in project dependencies." + +- name: "in-progress" + color: fbca04 + description: "Issue is currently being worked on by a developer." + +- name: "security" + color: ee0701 + description: "Addressing a vulnerability or security risk in this project." +- name: "incomplete" + color: fef2c0 + description: "Missing information." +- name: "invalid" + color: fef2c0 + description: "This is off-topic, spam, or otherwise doesn't apply to this project." + +- name: "beginner-friendly" + color: 0e8a16 + description: "Good first issue for people wanting to contribute to this project." +- name: "help-wanted" + color: 0e8a16 + description: "We need some extra helping hands or expertise in order to resolve this!" + +- name: "priority-critical" + color: ee0701 + description: "Must be addressed as soon as possible." +- name: "priority-high" + color: b60205 + description: "After critical issues are fixed, these should be dealt with before any further issues." +- name: "priority-medium" + color: 0e8a16 + description: "This issue may be useful, and needs some attention." +- name: "priority-low" + color: e4ea8a + description: "Nice addition, maybe... someday..." + +- name: "major" + color: b60205 + description: "This PR causes a major bump in the version number." +- name: "minor" + color: 0e8a16 + description: "This PR causes a minor bump in the version number." diff --git a/.github/workflows/labels.yml b/.github/workflows/labels.yml new file mode 100644 index 00000000..494824cd --- /dev/null +++ b/.github/workflows/labels.yml @@ -0,0 +1,21 @@ +--- +name: Sync labels + +on: + push: + branches: + - main + paths: + - .github/labels.yml + +jobs: + labels: + name: โ™ป๏ธ Sync labels + runs-on: ubuntu-latest + steps: + - name: โคต๏ธ Check out code from GitHub + uses: actions/checkout@v2 + - name: ๐Ÿš€ Run Label Syncer + uses: micnncim/action-label-syncer@v1.2.0 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/lock.yml b/.github/workflows/lock.yml new file mode 100644 index 00000000..20524e84 --- /dev/null +++ b/.github/workflows/lock.yml @@ -0,0 +1,32 @@ +--- +name: Lock + +on: + schedule: + - cron: "0 9 * * *" + workflow_dispatch: + +jobs: + lock: + name: ๐Ÿ”’ Lock closed issues and PRs + runs-on: ubuntu-latest + steps: + - uses: dessant/lock-threads@v2.0.3 + with: + github-token: ${{ github.token }} + issue-lock-inactive-days: "30" + issue-lock-reason: "" + issue-comment: > + Issue closed and locked due to lack of activity. + + If you encounter this same issue, please open a new issue and refer + to this closed one. + pr-lock-inactive-days: "1" + pr-lock-reason: "" + pr-comment: > + Pull Request closed and locked due to lack of activity. + + If you'd like to build on this closed PR, you can clone it using + this method: https://stackoverflow.com/a/14969986 + + Then open a new PR, referencing this closed PR in your message. diff --git a/.github/workflows/pr-labels.yml b/.github/workflows/pr-labels.yml new file mode 100644 index 00000000..9f23629b --- /dev/null +++ b/.github/workflows/pr-labels.yml @@ -0,0 +1,20 @@ +--- +name: PR Labels + +on: + pull_request: + types: [opened, labeled, unlabeled, synchronize] + +jobs: + pr_labels: + name: ๐Ÿญ Verify + runs-on: ubuntu-latest + steps: + - name: ๐Ÿท Verify PR has a valid label + uses: jesusvasquez333/verify-pr-label-action@v1.4.0 + with: + github-token: "${{ secrets.GITHUB_TOKEN }}" + valid-labels: >- + breaking-change, bugfix, documentation, enhancement, + refactor, performance, new-feature, maintenance, ci, dependencies + disable-reviews: true diff --git a/README.md b/README.md index 8eaf3073..8b37fead 100644 --- a/README.md +++ b/README.md @@ -1,30 +1,157 @@ -# Guitos +

+ + + Logo + +

-## Available Scripts +
+ guitos +
+ Explore the screenshots ยป +
+
+ Report a Bug + ยท + Request a Feature + . + Ask a Question +
-In the project directory, you can run: +
+
-### `npm start` +[![Project license](https://img.shields.io/github/license/rare-magma/guitos.svg?style=flat-square)](LICENSE) -Runs the app in the development mode.\ -Open [http://localhost:3000](http://localhost:3000) to view it in the browser. +[![Pull Requests welcome](https://img.shields.io/badge/PRs-welcome-ff69b4.svg?style=flat-square)](https://github.com/rare-magma/guitos/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22) +[![code with love by rare-magma](https://img.shields.io/badge/%3C%2F%3E%20with%20%E2%99%A5%20by-rare-magma-ff1414.svg?style=flat-square)](https://github.com/rare-magma) -The page will reload if you make edits.\ -You will also see any lint errors in the console. +
-### `npm test` +
+Table of Contents -Launches the test runner in the interactive watch mode.\ -See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information. +- [About](#about) + - [Built With](#built-with) +- [Getting Started](#getting-started) + - [Prerequisites](#prerequisites) + - [Installation](#installation) +- [Usage](#usage) +- [Roadmap](#roadmap) +- [Support](#support) +- [Project assistance](#project-assistance) +- [Contributing](#contributing) +- [Authors & contributors](#authors--contributors) +- [Security](#security) +- [License](#license) +- [Acknowledgements](#acknowledgements) -### `npm run build` +
-Builds the app for production to the `build` folder.\ -It correctly bundles React in production mode and optimizes the build for the best performance. +--- -The build is minified and the filenames include the hashes.\ -Your app is ready to be deployed! +## About -See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information. +> **[?]** +> Provide general information about your project here. +> What problem does it (intend to) solve? +> What is the purpose of your project? +> Why did you undertake it? +> You don't have to answer all the questions -- just the ones relevant to your project. -This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app). +
+Screenshots +
+ +> **[?]** +> Please provide your screenshots here. + +| Home Page | Login Page | +| :-------------------------------------------------------------------: | :--------------------------------------------------------------------: | +| | | + +
+ +### Built With + +> **[?]** +> Please provide the technologies that are used in the project. + +## Getting Started + +### Prerequisites + +> **[?]** +> What are the project requirements/dependencies? + +### Installation + +> **[?]** +> Describe how to install and get started with the project. + +## Usage + +> **[?]** +> How does one go about using it? +> Provide various use cases and code examples here. + +## Roadmap + +See the [open issues](https://github.com/rare-magma/guitos/issues) for a list of proposed features (and known issues). + +- [Top Feature Requests](https://github.com/rare-magma/guitos/issues?q=label%3Aenhancement+is%3Aopen+sort%3Areactions-%2B1-desc) (Add your votes using the ๐Ÿ‘ reaction) +- [Top Bugs](https://github.com/rare-magma/guitos/issues?q=is%3Aissue+is%3Aopen+label%3Abug+sort%3Areactions-%2B1-desc) (Add your votes using the ๐Ÿ‘ reaction) +- [Newest Bugs](https://github.com/rare-magma/guitos/issues?q=is%3Aopen+is%3Aissue+label%3Abug) + +## Support + +Reach out to the maintainer at one of the following places: + +- [GitHub issues](https://github.com/rare-magma/guitos/issues/new?assignees=&labels=question&template=04_SUPPORT_QUESTION.md&title=support%3A+) +- Contact options listed on [this GitHub profile](https://github.com/rare-magma) + +## Project assistance + +If you want to say **thank you** or/and support active development of guitos: + +- Add a [GitHub Star](https://github.com/rare-magma/guitos) to the project. +- Write interesting articles about the project on your personal blog. + +Together, we can make guitos **better**! + +## Contributing + +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**. + +Please read [our contribution guidelines](docs/CONTRIBUTING.md), and thank you for being involved! + +## Authors & contributors + +The original setup of this repository is by [Nuno Pires](https://github.com/rare-magma). + +For a full list of all authors and contributors, see [the contributors page](https://github.com/rare-magma/guitos/contributors). + +## Security + +guitos follows good practices of security, but 100% security cannot be assured. +guitos is provided **"as is"** without any **warranty**. Use at your own risk. + +_For more information and to report security issues, please refer to our [security documentation](docs/SECURITY.md)._ + +## License + +This project is licensed under the **GNU Affero General Public License v3**. + +See [LICENSE](LICENSE) for more information. + +## Acknowledgements + +React +Bootstrap +React-Bootstrap +React-Icons +LocalForage +PapaParse +Vite +Eslint +Prettier diff --git a/docs/CODE_OF_CONDUCT.md b/docs/CODE_OF_CONDUCT.md new file mode 100644 index 00000000..8cf989cb --- /dev/null +++ b/docs/CODE_OF_CONDUCT.md @@ -0,0 +1,45 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +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. + +## Our Standards + +Examples of behavior that contributes to creating a positive environment include: + +* Using welcoming and inclusive language +* Being respectful of differing viewpoints and experiences +* Gracefully accepting constructive criticism +* Focusing on what is best for the community +* Showing empathy towards other community members + +Examples of unacceptable behavior by participants include: + +* The use of sexualized language or imagery and unwelcome sexual attention or advances +* Trolling, insulting/derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or electronic address, without explicit permission +* Other conduct which could reasonably be considered inappropriate in a professional setting + +## Our Responsibilities + +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. + +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. + +## Scope + +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. + +## Enforcement + +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/rare-magma/guitos#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. + +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. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant](https://www.contributor-covenant.org), version 1.4, available at + +For answers to common questions about this code of conduct, see diff --git a/docs/CONTRIBUTING.md b/docs/CONTRIBUTING.md new file mode 100644 index 00000000..b65345d9 --- /dev/null +++ b/docs/CONTRIBUTING.md @@ -0,0 +1,63 @@ +# Contributing + +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. +Please note we have a [code of conduct](CODE_OF_CONDUCT.md), please follow it in all your interactions with the project. + +## Development environment setup + +To set up a development environment, please follow these steps: + +1. Clone the repo + + ```sh + git clone https://github.com/rare-magma/guitos + ``` + +2. Install dependencies + + ```sh + npm run install + ``` + +3. Start the local web server + + ```sh + npm run start + ``` + +4. Open http://localhost:5173 to view it in the browser. + +The page will reload if you make edits. +You will also see any lint errors in the console. + +5. Run tests + + ```sh + npm run test + ``` + +Launches the test runner in the interactive watch mode. + +## Issues and feature requests + +You've found a bug in the source code, a mistake in the documentation or maybe you'd like a new feature? You can help us by [submitting an issue on GitHub](https://github.com/rare-magma/guitos/issues). Before you create an issue, make sure to search the issue archive -- your issue may have already been addressed! + +Please try to create bug reports that are: + +- _Reproducible._ Include steps to reproduce the problem. +- _Specific._ Include as much detail as possible: which version, what environment, etc. +- _Unique._ Do not duplicate existing opened issues. +- _Scoped to a Single Bug._ One bug per report. + +**Even better: Submit a pull request with a fix or new feature!** + +### How to submit a Pull Request + +1. Search our repository for open or closed + [Pull Requests](https://github.com/rare-magma/guitos/pulls) + that relate to your submission. You don't want to duplicate effort. +2. Fork the project +3. Create your feature branch (`git checkout -b feat/amazing_feature`) +4. Commit your changes (`git commit -m 'feat: add amazing_feature'`) guitos uses [conventional commits](https://www.conventionalcommits.org), so please follow the specification in your commit messages. +5. Push to the branch (`git push origin feat/amazing_feature`) +6. [Open a Pull Request](https://github.com/rare-magma/guitos/compare?expand=1) diff --git a/docs/SECURITY.md b/docs/SECURITY.md new file mode 100644 index 00000000..503273af --- /dev/null +++ b/docs/SECURITY.md @@ -0,0 +1,16 @@ +# Security Policy + +## Reporting a Vulnerability + +If there are any vulnerabilities in **guitos**, don't hesitate to _report them_. + +1. Use any of the [private contact addresses](https://github.com/rare-magma/guitos#support). +2. Describe the vulnerability. + + If you have a fix, that is most welcome -- please attach or summarize it in your message! + +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. + + Please **do not disclose the vulnerability publicly** until a fix is released! + +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. diff --git a/docs/images/logo.svg b/docs/images/logo.svg new file mode 100644 index 00000000..3349373a --- /dev/null +++ b/docs/images/logo.svg @@ -0,0 +1 @@ +๐Ÿ’ธ \ No newline at end of file diff --git a/docs/images/screenshot.png b/docs/images/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..3b58bcb3511e05523f381902da66fc861ee0f4f5 GIT binary patch literal 6347 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 literal 0 HcmV?d00001