-
Notifications
You must be signed in to change notification settings - Fork 244
Home
edge - a rapid, cutting-edge Django project skeleton. More screenshots below:
- Python 2.7 and 3.4 support - the same codebase works on the latest Python versions
- Django 1.7 support - e.g. no south dependency
- Sign-ups and Log-ins - Basic user registration, log-ins, forgot password etc. using crispy forms
- User Profiles - extendible user profile with great defaults like profile picture
- Bootstrap bundled - Themed Bootstrap 3 based home page and admin out of the box
- Clean start - Based on Django 1.7 project structure
- Secrets Secure - Picks SECRET_KEY from environment as a best practice
- Minimal dependencies - Only essential packages listed in requirements.txt not all recommended ones
Warning: Software is currently beta and bleeding edge.
- Django programmers are not designers. They need a better starting point say, with Bootstrap.
- Writing code for signup, login and user profiles seems repetitive in every project.
- Many project skeletons contain numerous recommended packages making them bloated.
- None of the project skeletons were Python 3 and Django 1.7 compatible at the time of creating the project.
- Simpler and less annoying user authentication for rapid prototyping
- Better layout (a subjective preference) that is intuitive to use.
More details in this blog post
- django-environ - By default, settings has environment specific information. This package helps you define such variables in the environment which is more secure.
- django-authtools - Custom user model and class based auth views.
- django-crispy-forms - Provides the Sign-in and Sign-up forms.
- django-braces - Essential set of mixins used for the included views
- django-admin-bootstrapped - Added Bootstrap 3 theme to the admin
- easy-thumbnails - (optional) for profile picture thumbnails.
Skip the next set of commands if you already know how to create a virtual environment. Here is how to create a new virtual environment in Python 3.4 using the built-in venv
library:
$ python3.4 -m venv py34env
$ . py34env/bin/activate
Check if Django is installed. It is needed for django-admin
command to work.
$ pip install -U django
Use the following commands but change my_proj
(at end of first command and other places) to the name of your project:
$ django-admin.py startproject --template=https://github.com/arocks/edge/archive/master.zip --extension=py,md,html,env my_proj
$ cd my_proj
$ pip install -r requirements.txt
$ cd src
$ python manage.py migrate
On Windows, you might want to install the requirements file using wheels (especially if you don't have a C compiler) using the following command instead:
$ pip install --use-wheel -r requirements.txt
Please raise an issue on the Github project page if you notice any bugs and would like to request features.
-
Brand Name: Edit
src/templates/_brandname.html
. Or use a one-liner:echo "Fantasy Quidditch" > src/templates/_brandname.html
-
Logo: Change
src/static/site/img/logo.png
. Or use a one-liner:curl -o src/static/site/img/logo.png http://icons.iconarchive.com/icons/iconka/harry-potter/32/broom-icon.png
-
Banner: Change
src/static/site/img/banner.jpg
. Or use a one-liner:curl -o src/static/site/img/banner.jpg https://farm8.staticflickr.com/7153/6709315743_5412d64169_o_d.png
-
Bootstrap Theme: Change
src/static/bootstrap/css/bootstrap.min.css
. Or use a one-liner:curl -o src/static/bootstrap/css/bootstrap.min.css http://bootswatch.com/paper/bootstrap.min.css
-
Settings: Set environment vars. Move
local.env
out of git. -
Authentication: Open
src/accounts/views.py
to customize the authentication flows like signup or login.
=== (2015-02-21) ===
- User model customized to use emails as primary key
- User profile model with profile picture field
- requirements and settings now split into environment files
- More details in https://github.com/arocks/edge/issues/10
=== (2014-09-12) ===
- Added django-environ and pathlib
- Added Sign-in, Sign-up, logout functionality.
- Admin now has bootstrap theme.
=== (2014-09-01) ===
- initial release
- Background photo courtesy: Death to the Stock Photo
- Social icons: Font Awesome icons
- Bootswatch theme: Yeti
- Add py.test in the dev env. Change app template to include it.
- Include
django compressor
. Full python sass pipeline might be ambitious.- Short tip on django compressor and pyscss
- Twitter scss port. Adding as a sub-module in github.
- See also django-pyscss
- Bootstrap setup in Django tutorial part 2
- Add 404.html and 500.html
- Logging into files for debugging: http://www.caktusgroup.com/blog/2015/01/27/Django-Logging-Configuration-logging_config-default-settings-logger/
- Include a fabfile (or some other Py 3 compatible deployer like Paver) to push to a Cloud host
Completed or partially done:
- Add a simple user profile model https://github.com/arocks/edge/issues/2
- Extract navbar into a
_navbar.html
with a navigation pattern - Admin themed with bootstrap. Try to have foreign key drop down.
- Django suit is not fully free. See Pricing.
- Grappelli (not bootstrap :( but so many good features)
- django-admin-bootstrapped (light but no foreign key part) Intro post
- django-admin-bootstrap Responsive
- Or simply override the templates in admin folder
- Add password reset and change forms
- Add messages (See simple example )
- Add crispy forms for bootstrapped forms
- Sign in, sign out and sign up forms using crispy
- Include Django Debug toolbar