# GraphQL File Upload Short description about the package. - ๐Ÿ“€ [Development server](http://127.0.0.1:8000/graphql/) ## ๐Ÿš€ 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. - use `pyenv` to manage multiple versions (**recommended**): [link](https://github.com/pyenv/pyenv#simple-python-version-management-pyenv), - or you will find installation steps for your platform on the python [official website](https://www.python.org/downloads/), - `pipenv` for virtual environment management: [link](https://formulae.brew.sh/formula/pipenv). ### ๐Ÿ–ฅ Installing Clone the project: ```shell script git clone https://github.com/rjNemo/graphql-file_upload.git ``` Create a virtual environment and install dependencies with: ```shell script make local-setup ``` Then launch the development server using: ```shell script make run ``` A GraphiQL API explorer is available on the development server address: http://127.0.0.1:8000/graphql/. ๐ŸŽ‰ Enjoy! ### โšก๏ธ Scripts See [Makefile](Makefile) for available scripts: - dev server - run tests ## ๐Ÿงช Running the tests Tests are run using `pytest` and the test coverage is checked using `pytest-cov`. ```shell script make test ``` ### Unit tests ```shell script pipenv run test ``` ### Functional tests ```shell script pipenv run python -m pytest tests/functional_api ``` ### ๐Ÿ’… And coding style tests Coding style is enforced using `black` for formatting, `flake8` for linting and `mypy` for static type checking. Additional security check are performed using `bandit` and `safety`. ```shell script make lint ``` โ—๏ธ It is encouraged to run linters and tests using `make lint` before committing to the repository. ## ๐Ÿ‘ฉโ€๐Ÿซ GraphQL: GraphCool-Grammar We use a GraphQL grammar to structure the endpoints systematically. ![GraphCool Grammar](./docs/graphcool_grammer.png) ## ๐Ÿ›  Built with - [FastAPI](https://fastapi.tiangolo.com/) - FastAPI framework, high performance, easy to learn, fast to code, ready for production - [Ariadne](https://ariadnegraphql.org/) - Python GraphQL schema-first ## ๐Ÿ’ป Contributing Please read [CONTRIBUTING.md](CONTRIBUTING.md) for details on our code of conduct, and the process for submitting merge requests.