Django Aws Template

screenshot of Django Aws Template
django

Opinionated Django Project Template for AWS deployment

Overview

The django-aws-template is an opinionated Django project starter that is designed for developers looking to release their projects on AWS. It assumes the use of Django 3.2+ and deploying the main Django server to AWS Elastic Beanstalk. It also utilizes a gulp based flow for releasing static files to s3/cloudfront, rather than using Django collectstatics. The project uses Docker for development and testing and includes a set of common Django packages for the basic functionality. Some key features include Bootstrap-themed web pages, user registration with social login support, and a ready-to-use REST API.

Features

  • Bootstrap-themed, gulp based web pages
  • User Registration/Sign up with social login support (using django-allauth)
  • Ready to provide REST API for all models (using djangorestframework)
  • Gulp based flow to build CSS/JS files and release directly to s3/cloudfront
  • Better Security with 12-Factor recommendations
  • Logging/Debugging Helpers
  • Works on Python 3.8+ with Django 3.2+

Using Docker (preferred)

  1. Install Docker and docker-compose on your computer following the instructions on the Docker website.
  2. Create a .docker.env file in the server/config/settings directory.
  3. Build the top-level Django template file and all static files using Docker and gulp.
  4. Start the development server.

Without Docker

If you prefer not to use Docker, follow these steps:

  1. Install the required dependencies: nodeJS v10 and gulp.
  2. Create a .env file in the server/config/settings directory.
  3. Build the top-level Django template file and all static files using gulp.
  4. Start the development server.

Summary

The django-aws-template is a Django project starter specifically designed for developers planning to release their projects on AWS. It offers a set of opinionated features and tools such as Bootstrap-themed web pages, user registration with social login support, and a pre-configured REST API. The project provides easy installation instructions, with Docker being the recommended method for creating a consistent and reliable development environment. However, it also provides instructions for running the project without Docker if desired.

django
Django

Django is a high-level Python web framework that encourages rapid development and clean, pragmatic design. It follows the model-view-controller (MVC) architectural pattern, providing an extensive set of built-in tools and conventions to streamline the creation of robust and scalable web applications.

docker
Docker

A website that uses Docker for containerization to streamline development, testing, and deployment workflows. This includes features such as containerization of dependencies, automated builds and deployments, and container orchestration to ensure scalability and availability.