diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index dd84ea7..6bac24b 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -1,4 +1,10 @@ + + --- + name: Bug report about: Create a report to help us improve title: '' @@ -12,6 +18,7 @@ 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 '....' @@ -24,15 +31,17 @@ A clear and concise description of what you expected to happen. 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] + +- 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] + +- 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/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md index c4bb0c2..3fbab18 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -1,4 +1,10 @@ + + --- + name: Feature request about: Suggest new feature (using user story) title: '' @@ -8,24 +14,28 @@ assignees: '' --- ## User story + 1. As a {} 2. I want / need {} 3. So that {} ## Acceptance criteria -* Criterion 1 -* Criterion 2 -* ... + +- Criterion 1 +- Criterion 2 +- ... ## Definition of done (DoD) -* Added only after week 5 -* The same for all features -* Here goes the project specific part + +- Added only after week 5 +- The same for all features +- Here goes the project specific part ## DoD general criteria -* Feature has been fully implemented -* Feature has been merged into the mainline -* All acceptance criteria were met -* Product owner approved features -* All tests are passing -* Developers agreed to release + +- Feature has been fully implemented +- Feature has been merged into the mainline +- All acceptance criteria were met +- Product owner approved features +- All tests are passing +- Developers agreed to release diff --git a/.gitignore b/.gitignore index e4ec773..55621e2 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,6 @@ +# SPDX-License-Identifier: MIT +# SPDX-FileCopyrightText: 2023 Felix Zailskas + # Node logs npm-debug.log* @@ -18,6 +21,10 @@ pids # Python *.pyc __pycache__/ +Pipfile.lock + +# Jupyter Notebook +.ipynb_checkpoints # vscode .vscode/ @@ -34,3 +41,8 @@ bin/ # MacOS .DS_Store +.AppleDouble +.LSOverride + +# License +.reuse diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 0000000..fae86aa --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,34 @@ +# SPDX-License-Identifier: MIT +# SPDX-FileCopyrightText: 2023 Felix Zailskas + +repos: + - repo: https://github.com/pre-commit/pre-commit-hooks + rev: v4.5.0 + hooks: + - id: check-yaml + - id: check-json + - id: end-of-file-fixer + - id: trailing-whitespace + - id: no-commit-to-branch + args: ["--branch", "main", "--branch", "dev"] + + - repo: https://github.com/psf/black + rev: 23.10.1 + hooks: + - id: black + + - repo: https://github.com/pycqa/isort + rev: 5.12.0 + hooks: + - id: isort + args: ["--profile", "black"] + + - repo: https://github.com/pre-commit/mirrors-prettier + rev: v3.0.3 + hooks: + - id: prettier + + - repo: https://github.com/fsfe/reuse-tool + rev: v2.1.0 + hooks: + - id: reuse diff --git a/Deliverables/README.md b/Deliverables/README.md index 543e374..b5e105e 100644 --- a/Deliverables/README.md +++ b/Deliverables/README.md @@ -1,4 +1,9 @@ -Deliverables that are uploadable files (e.g. PDFs, your logo, but not your code) go here. + + +Deliverables that are uploadable files (e.g. PDFs, your logo, but not your code) go here. Please upload deliverables to a dedicated folder for the sprint they belong to. diff --git a/Deliverables/sprint-01/planning-document.pdf.license b/Deliverables/sprint-01/planning-document.pdf.license new file mode 100644 index 0000000..19521aa --- /dev/null +++ b/Deliverables/sprint-01/planning-document.pdf.license @@ -0,0 +1,2 @@ +SPDX-License-Identifier: MIT +SPDX-FileCopyrightText: 2023 Lucca Baumgärtner diff --git a/Deliverables/sprint-01/team-logo.png.license b/Deliverables/sprint-01/team-logo.png.license new file mode 100644 index 0000000..f079a3f --- /dev/null +++ b/Deliverables/sprint-01/team-logo.png.license @@ -0,0 +1,2 @@ +SPDX-License-Identifier: MIT +SPDX-FileCopyrightText: 2023 Berkay Bozkurt diff --git a/Documentation/README.md b/Documentation/README.md index 10fe2a5..f2b6606 100644 --- a/Documentation/README.md +++ b/Documentation/README.md @@ -1,2 +1,7 @@ + + Build, user, and technical documentation Software architecture description diff --git a/LICENSES/MIT.txt b/LICENSES/MIT.txt new file mode 100644 index 0000000..2071b23 --- /dev/null +++ b/LICENSES/MIT.txt @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/Pipfile b/Pipfile new file mode 100644 index 0000000..0f71bda --- /dev/null +++ b/Pipfile @@ -0,0 +1,14 @@ +# SPDX-License-Identifier: MIT +# SPDX-FileCopyrightText: 2023 Felix Zailskas + +[[source]] +url = "https://pypi.python.org/simple" +verify_ssl = true +name = "pypi" + +[dev-packages] + +[packages] + +[requires] +python_version = "3.10" diff --git a/README.md b/README.md index 317fe82..1c4fabc 100644 --- a/README.md +++ b/README.md @@ -1,18 +1,115 @@ + + # Sales-Lead-Qualifier Project (AMOS WS 2023/24) ## Sum Insight Logo ![Team logo in white colour](https://github.com/amosproj/amos2023ws06-sales-lead-qualifier/assets/45459787/7d38795e-6bd5-4003-9b23-29911532b0f8#gh-dark-mode-only) + ![Team logo in black colour](https://github.com/amosproj/amos2023ws06-sales-lead-qualifier/assets/45459787/a7314df0-1917-4384-8f6c-2ab9f9831047#gh-light-mode-only) +## Creating the Environment + +To create the virtual environment in this project you must have `pipenv` installed on your machine. Then run the following commands: + +```[bash] +# for development environment +pipenv install --dev +# for production environment +pipenv install +``` + +To work within the environment you can now run: + +```[bash] +# to activate the virtual environment +pipenv shell +# to run a single command +pipenv run +``` + +To install new packages in the environment add them to the `Pipfile`. Always pin the exact package version to avoid package conflicts and unexpected side effects from package upgrades. + +```[bash] +# to add a package to the development environment +[dev-packages] + = "==" +# to add a package to the production environment +[packages] + = "==" +``` -## Branching Strategy +Note that this project runs under an MIT license and we only permit the use of non-copyleft-licensed packages. Please be aware of this when installing new packages and inform yourself before blindly installing. + +When you have any issues with the environment contact `felix-zailskas`. + +## Contribution Workflow + +### Branching Strategy **main**: It contains fully stable production code -* **dev**: It contains stable under-development code - - * **epic**: It contains a module branch. Like high level of feature. For example, we have an authentication module then we can create a branch like "epic/authentication" - * **feature**: It contains specific features under the module. For example, under authentication, we have a feature called registration. Sample branch name: "feature/registration" +- **dev**: It contains stable under-development code + + - **epic**: It contains a module branch. Like high level of feature. For example, we have an authentication module then we can create a branch like "epic/authentication" + + - **feature**: It contains specific features under the module. For example, under authentication, we have a feature called registration. Sample branch name: "feature/registration" + + - **bugfix**: It contains bug fixing during the testing phase and branch name start with the issue number for example "bugfix/3-validate-for-wrong-user-name" + +### Commits and Pull Requests + +The stable branches `main` and `dev` are protected against direct pushes. To commit code to these branches create a pull request (PR) describing the feature/bugfix that you are committing to the `dev` branch. This PR will then be reviewed by another SD from the project. Only after being approved by another SD a PR may be merged into the `dev` branch. Periodically the stable code on the `dev` branch will be merged into the `main` branch by creating a PR from `dev`. Hence, every feature that should be committed to the `main` branch must first run without issues on the `dev` branch for some time. + +Before contributing to this repository make sure that you are identifiable in your git user settings. This way commits and PRs created by you can be identified and easily traced back. + +```[bash] +git config --local user.name "Manu Musterperson" +git config --local user.email "manu@musterperson.org" +``` + +Any commit should always contain a commit message that references an issue created in the project. Also, always signoff on your commits for identification reasons. + +```[bash] +git commit -m "Fixed issue #123" --signoff +``` + +When doing pair programming be sure to always have all SDs mentioned in the commit message. Each SD should be listed on a new line for clarity reasons. + +```[bash] +git commit -a -m "Fixed problem #123 +> Co-authored-by: Manu Musterperson " +``` + +### License + +This project is operated under an MIT license. Every file must contain the REUSE-compliant license and copyright declaration: + +[REUSE documentation](https://reuse.software/faq/) + +```[bash] +# SPDX-License-Identifier: MIT +# SPDX-FileCopyrightText: 2023 +``` + +### Pre-Commit Hooks + +This repository uses `pre-commit` hooks to ensure a consistent and clean file organization. Each registered hook will be executed when committing to the repository. To ensure that the hooks will be executed they need to be installed using the following command: + +```[bash] +pre-commit install +``` + +The following things are done by hooks automatically: - * **bugfix**: It contains bug fixing during the testing phase and branch name start with the issue number for example "bugfix/3-validate-for-wrong-user-name" +- formatting of python files using black and isort +- formatting of other files using prettier +- syntax check of JSON and yaml files +- adding new line at the end of files +- removing trailing whitespaces +- prevent commits to `dev` and `main` branch +- check adherence to REUSE licensing format