Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/vchaptsev/cookiecutter-django-vue

Cookiecutter Django Vue is a template for Django-Vue projects.
https://github.com/vchaptsev/cookiecutter-django-vue

apollo cookiecutter django docker-compose graphene graphql hacktoberfest pwa vue vue-cli webpack

Last synced: 11 days ago
JSON representation

Cookiecutter Django Vue is a template for Django-Vue projects.

Awesome Lists containing this project

README

        



Cookiecutter Django-Vue
=======================

Powered by [Cookiecutter](https://github.com/audreyr/cookiecutter),
inspired by [Cookiecutter Django](https://github.com/pydanny/cookiecutter-django).



Features
--------

- [Docker](https://www.docker.com/)
- [12 Factor](http://12factor.net/)
- Server: [Nginx](https://nginx.org/)
- Frontend: [Vue](https://vuejs.org/) + [vue-cli](https://cli.vuejs.org/) + [PWA](https://developers.google.com/web/progressive-web-apps/)
- Backend: [Django](https://www.djangoproject.com/)
- Database: [PostgreSQL](https://www.postgresql.org/)
- API: REST or GraphQL

Optional Integrations
---------------------

*These features can be enabled during initial project setup.*

- Integration with [MailHog](https://github.com/mailhog/MailHog) for local email testing
- Integration with [Sentry](https://sentry.io/welcome/) for frontend and backend errors logging
- Integration with [Google Analytics](https://www.google.com/analytics/) or [Yandex Metrika](https://tech.yandex.ru/metrika/) for web-analytics
- Automatic database backups

Usage
-----

First, get `cookiecutter`:

$ pip install cookiecutter

Now run it against this repo:

$ cookiecutter gh:vchaptsev/cookiecutter-django-vue

You'll be prompted for some values. Provide them, then a project
will be created for you.

Answer the prompts with your own desired options. For example:

======================== INFO ======================= [ ]:
project_name [Project Name]: Website
project_slug [website]: website
description [Short description]: My awesome website
author [Your Name]: Your Name
email []:
====================== GENERAL ====================== [ ]:
Select api:
1 - REST
2 - GraphQL
Choose from 1, 2 [1]: 2
backups [y]: y
==================== INTEGRATIONS =================== [ ]:
use_sentry [y]: y
use_mailhog [y]: y
Select analytics:
1 - Google Analytics
2 - Yandex Metrika
3 - None
Choose from 1, 2, 3 [1]: 2

Project creation will cause some odd newlines and linter errors, so I'd recommend:

$ pip install autopep8
$ autopep8 -r --in-place --aggressive --aggressive backend
$ cd frontend && npm i && npm run lint --fix

Now you can start project with
[docker-compose](https://docs.docker.com/compose/):

$ docker-compose up --build

For production you'll need to fill out `.env` file and use
`docker-compose-prod.yml` file:

$ docker-compose -f docker-compose-prod.yml up --build -d

Contributing
------------

Help and feedback are welcome :)