From 2e7720d342330be0703d0846c0d81d5fad479163 Mon Sep 17 00:00:00 2001 From: Ruidy Date: Sun, 8 Nov 2020 13:35:41 +0100 Subject: [PATCH] project documentation and license --- .gitignore | 1 + .idea/vcs.xml | 6 --- .idea/watcherTasks.xml | 25 ----------- CONTRIBUTING.md | 92 +++++++++++++++++++++++++++++++++++++++ LICENSE.md | 21 +++++++++ README.md | 93 +++++++++++++++++++++++++++++++++++++--- app/schema/types/todo.py | 6 +-- 7 files changed, 205 insertions(+), 39 deletions(-) delete mode 100644 .idea/vcs.xml delete mode 100644 .idea/watcherTasks.xml create mode 100644 CONTRIBUTING.md create mode 100644 LICENSE.md diff --git a/.gitignore b/.gitignore index 45f1ece..172373f 100644 --- a/.gitignore +++ b/.gitignore @@ -139,6 +139,7 @@ dmypy.json # Cython debug symbols cython_debug/ +.idea/ .idea/.gitignore .idea/dictionaries .idea/inspectionProfiles/ diff --git a/.idea/vcs.xml b/.idea/vcs.xml deleted file mode 100644 index 94a25f7..0000000 --- a/.idea/vcs.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/.idea/watcherTasks.xml b/.idea/watcherTasks.xml deleted file mode 100644 index 902e9bf..0000000 --- a/.idea/watcherTasks.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..899fcb5 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,92 @@ +# 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, please follow it in all your interactions with the project. + +## Pull Request Process + +1. Ensure any install or build dependencies are removed before the end of the layer when doing a + build. +2. Update the README.md with details of changes to the interface, this includes new environment + variables, exposed ports, useful file locations and container parameters. +3. Increase the version numbers in any examples files and the README.md to the new version that this + Pull Request would represent. The versioning scheme we use is [SemVer](http://semver.org/). +4. You may merge the Pull Request in once you have the sign-off of two other developers, or if you + do not have permission to do that, you may request the second reviewer to merge it for you. + +## Code of Conduct + +### Our Pledge + +In the interest of fostering an open and welcoming environment, we as +contributors and maintainers pledge to making participation in our project and +our community a harassment-free experience for everyone, regardless of age, body +size, disability, ethnicity, gender identity and expression, level of experience, +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 both within project spaces and in public spaces +when an individual is representing the project or its community. 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. + +### Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported by contacting the project team at [ruidy.nemausat@gmail.com]. 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][homepage], version 1.4, +available at [http://contributor-covenant.org/version/1/4][version] + +[homepage]: http://contributor-covenant.org +[version]: http://contributor-covenant.org/version/1/4/ \ No newline at end of file diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 0000000..93a232d --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,21 @@ +# MIT License + +Copyright (c) [2020] [Ruidy] + +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. \ No newline at end of file diff --git a/README.md b/README.md index c2f73ff..413d67b 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,92 @@ -# Python GraphQL API +# ๐Ÿ Python GraphQL API -Python GraphQL API template application +Python GraphQL API template application. -## Built with +It's a multi user TODO list application with a clean architecture implementation. -- [FastAPI](https://fastapi.tiangolo.com/) -- [Graphene](https://graphene-python.org/) +## ๐Ÿš€ Getting Started +These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system. + +### ๐Ÿ’ผ Prerequisites + +You need: +- `Python 3` installed on your local machine. You will find installation steps for your platform on the + python [official website](https://www.python.org/downloads/). +- I recommend `pipenv` for virtual environment setup. + +### ๐Ÿ–ฅ Installing + +Clone the project. + +Create a virtual environment and install dependencies with: +```shell script +pipenv install +``` + +Activate the virtual environment with: +```shell script +pipenv shell +``` + +Then launch the development server using: +```shell script +uvicorn app.main:app --reload +``` +The development server and GraphiQL API explorer are available on http://0.0.0.0:8000. + +๐ŸŽ‰ Enjoy! + +## ๐Ÿงช Running the tests (Under construction) + +Explain how to run the automated tests for this system + +### Break down into end to end tests + +Explain what these tests test and why + +```shell script +Give an example +``` + +### ๐Ÿ’… And coding style tests + +Coding style is enforced using black and isort. + +```shell script +isort . +black . +``` + +## โ˜๏ธ Deployment + +Add additional notes about how to deploy this on a live system + +## ๐Ÿ›  Built with + +- [FastAPI](https://fastapi.tiangolo.com/) - FastAPI framework, high performance, easy to learn, fast to code, ready for production +- [Graphene](https://graphene-python.org/) - GraphQL in Python Made Easy + +## ๐Ÿ‘ฉโ€๐Ÿ’ป Contributing + +Please read [CONTRIBUTING.md](CONTRIBUTING.md) for details on our code of conduct, and the process for submitting pull requests to us. + +## ๐Ÿ†š Versioning + +We use [SemVer](http://semver.org/) for versioning. For the versions available, see the [tags on this repository](https://github.com/rjNemo/project/tags). + +## โœ’๏ธ Authors + +- **Ruidy** - _Initial work_ - [Ruidy](https://github.com/rjNemo) + +See also the list of [contributors](https://github.com/rjNemo/project/contributors) who participated in this project. + +## ๐Ÿ‘ฉโ€โš–๏ธ License + +This project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md) file for details + +## ๐Ÿค— Acknowledgments + +- Hat tip to anyone whose code was used +- Inspiration +- _etc._ diff --git a/app/schema/types/todo.py b/app/schema/types/todo.py index e3d5cc8..15fe681 100644 --- a/app/schema/types/todo.py +++ b/app/schema/types/todo.py @@ -7,7 +7,7 @@ class TodoType(graphene.ObjectType): """Todo Object Type""" todo_id = graphene.String() - title = graphene.String(default_value="") + title = graphene.String() is_done = graphene.Boolean(default_value=False) @@ -15,8 +15,8 @@ class TodoInputType(graphene.InputObjectType): """Todo Input Object""" todo_id = graphene.String() - title = graphene.String(default_value="") - is_done = graphene.Boolean(default_value=False) + title = graphene.String() + is_done = graphene.Boolean() class TodoResponseField(graphene.ObjectType):