initial commit

This commit is contained in:
wsvincent 2018-02-15 12:28:05 -05:00
commit 6f5167c24f
45 changed files with 763 additions and 0 deletions

67
README.md Normal file
View file

@ -0,0 +1,67 @@
# DjangoX
**DjangoX** - A framework for launching new Django projects quickly.
Comes with a custom user model, social authentication, and email/password for sign up and log in.
![Falconx](static/images/falconx.png)
## Features
* Django 2.0 and Python 3.6
* [Pipenv](https://github.com/pypa/pipenv) for virtualenvs
* User registration via [django-allauth](https://github.com/pennersr/django-allauth)
* Add social auth via Google, Facebook, etc
* [Bootstrap v4](https://getbootstrap.com/)
* Custom user model with email and no username
## First-time setup
1. Make sure Python 3.6x and Pipenv are already installed. [See here for help](https://djangoforbeginners.com/initial-setup/).
2. Install packages with `pipenv install`
3. Activate a virtual environment with `pipenv shell`
4. Set up the initial migration for our custom user models in `users`
$ python manage.py makemigrations users
5. Build the database schema:
$ python manage.py migrate
6. Create a superuser:
$ python manage.py createsuperuser
7. Confirm everything is working:
$ python manage.py runserver
Load the site at [http://127.0.0.1:8000](http://127.0.0.1:8000).
Click on links for "Sign up" or "Log in."
8. This is optional but I also recommend logging into admin and changing the default site:
Go to [http://127.0.0.1:8000/admin]([http://127.0.0.1:8000/admin]). You may need to logout and then login with your superuser account.
Navigate to [http://127.0.0.1:8000/admin/sites/site/](http://127.0.0.1:8000/admin/sites/site/) and change the default "example.com" to "127.0.0.1" and the name to "<YOUR_PROJECT_NAME>" for local development.
## Recommendations
* Use [PostgreSQL locally via Docker](https://wsvincent.com/django-docker-postgresql/)
* Use [django-environ](https://github.com/joke2k/django-environ) for environment variables
* Update [EMAIL_BACKEND](https://docs.djangoproject.com/en/2.0/topics/email/#module-django.core.mail) to [configure an SMTP backend](https://djangoforbeginners.com/password-change-reset/)
* Add [django-debug-toolbar](https://github.com/jazzband/django-debug-toolbar) and [django-extensions](https://github.com/django-extensions/django-extensions)
* Make the [admin more secure](https://opensource.com/article/18/1/10-tips-making-django-admin-more-secure)
## Adding Social Authentication
* [Configuring Google](https://wsvincent.com/django-allauth-tutorial-custom-user-model/#google-credentials)
* [Configuring Facebook](http://www.sarahhagstrom.com/2013/09/the-missing-django-allauth-tutorial/#Create_and_configure_a_Facebook_app)
* [Configuring Github](https://wsvincent.com/django-allauth-tutorial/)
* `django-allauth` supports [many, many other providers in the official docs](https://django-allauth.readthedocs.io/en/latest/providers.html)
## Acknowledgments
This project is heavily inspired by [cookiecutter-django](https://github.com/pydanny/cookiecutter-django). It's my own preferred template for starting new projects built out of a personal desire to actually understand all the config magic in `cookiecutter-django`.