Skip to content

rnovec/drf-challenge

Repository files navigation

Lighthouse DRF Challenge Project / RESTful API

This a Django 3.0+ project for Lighthouse DRF Challenge

Features

  • Django 3.0+
  • Django REST Framework - Powerful and flexible toolkit for building Web APIs.
  • Django Cors Headers - A Django application for handling the server headers required for Cross-Origin Resource Sharing (CORS).
  • Django Filter - Simple way to filter down a queryset based on parameters a user provides.
  • Simple JWT - A JSON Web Token authentication plugin for the Django REST Framework.
  • Whitenoise - Radically simplified static file serving for Python web apps
  • Procfile for running gunicorn with New Relic's Python agent.
  • Support for automatic generation of OpenAPI schemas.
  • Automated generation of real Swagger/OpenAPI 2.0 schemas from Django REST Framework code with drf-yasg.

Prerequisites

  • Python 3.7>
  • Virtualenv

Instalation

$ python3 -m venv venv
$ source venv/bin/activate
$ pip install -r requirements.txt

Environment

Application running in multiple environments like DEV and PROD. All env variables used in this application are available in .env.example, feel free to setup your own environment configuration.

DEV

Just make a copy from .env.local.example and/or rename to .env.local and setup your variables. Then run in terminal:

$ source .env.local

The first time you run the application, make sure to apply the database migrations and create a super user account:

$ python manage.py migrate
$ python manage.py createsuperuser

Finally start development server:

$ python manage.py runserver

PROD

Just make a copy from .env.production.example and/or rename to .env.production and setup your variables. Then run in terminal:

$ source .env.production

The first time you run the application, make sure to apply the database migrations and create a super user account:

$ python manage.py migrate
$ python manage.py createsuperuser

Finally start production server:

$ gunicorn project.wsgi --log-level=INFO

Run tests

$ python manage.py test

License

The MIT License (MIT)

Copyright (c) 2020 Raúl Novelo

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.

Releases

No releases published

Packages

No packages published