# Project purpose Create, track and report on writing pitches to magazines, online journals, etc ## Internal Apps ### Accounts * [User](https://git.luxagraf.net/luxagraf/writer/src/branch/master/apps/accounts/models.py) * custom User model subclassing AbstractUser as per [Django best practices](https://docs.djangoproject.com/en/dev/topics/auth/customizing/#using-a-custom-user-model-when-starting-a-project) * [UserProfile](https://git.luxagraf.net/luxagraf/writer/src/branch/master/apps/accounts/models.py) * adds profile to the user class with: * profile photo * website * bio * location ## External dependencies #### [Coverage](https://github.com/nedbat/coveragepy) * Because I hate keeping track of what needs tests #### [Python Decouple](https://pypi.org/project/python-decouple/) * Decouple helps you to organize your settings so that you can change parameters without having to redeploy your app. * Allows committing settings.py by keeping not-committed settings in one place (.env) #### [Django Taggit](https://github.com/alex/django-taggit) * Simplest way to get robust tagging capabilities #### [Django Storages](https://github.com/jschneier/django-storages) * Simplest way to make all static assets go to Amazon S3 * Simplifies migrating server setups by keep static assets off the server #### [Django Registration](https://github.com/ubernostrum/django-registration/) * Simplest way to handle all aspects of registration/confirmation (written by James Bennett) #### [Django Pwned Passwords](https://github.com/ubernostrum/pwned-passwords-django) * Because we should inform people when their passwords are compromised (written by James Bennett) #### [Django-Extensions](https://github.com/django-extensions/django-extensions) * Because I'd go crazy without it. shell_plus is a godsend