Django Project Template

screenshot of Django Project Template
django
react

Thorgate's Django project template - Django, React, Sass, optional Docker and more

Overview

Thorgate's Django template is a project template designed for medium-sized and larger apps that use JavaScript and React for frontend or single page web applications. It provides a Django-based backend with separate settings for different environments. The template also includes a frontend app with JavaScript (ES2015), React, and Sass, and utilizes Webpack to bundle and minify JavaScript and styles. Other features include Docker/Docker Compose integration, linting of Python, JavaScript, and Sass code, automated code formatting, deployment helpers using Ansible, and support for storing media files in a CDN like S3 or Google Cloud Storage.

Features

  • Django-based backend: Provides a robust backend powered by Django.
  • Separate settings for different environments: Allows for easy configuration of settings for different environments such as local, staging, and production.
  • Frontend app with JavaScript, React, and Sass: Includes a frontend application using JavaScript, React, and Sass for more modular and convenient styling.
  • ES2015 and beyond: Utilizes the latest JavaScript features, transpiled with Babel, to ensure compatibility with a wide range of browsers.
  • Webpack bundling: Uses Webpack to bundle and minify JavaScript and styles for optimized performance.
  • Razzle for preconfigured isomorphic application: Supports the use of Razzle to create preconfigured isomorphic applications with server-side rendering.
  • Docker/Docker Compose integration: Provides integration with Docker and Docker Compose to simplify the setup and deployment process.
  • Linting and automated code formatting: Includes linting of Python, JavaScript, and Sass code using Prospector, ESLint, and stylelint. Automated code formatting using black and prettier is also supported.
  • Testing and coverage integration: Integrates with py.test and coverage to ensure effective testing and code coverage.
  • Deploy helpers with Ansible: Includes deploy helpers using Ansible, making it easier to deploy the project to different environments.
  • CDN support for media files: Supports the storage of media files in a CDN like S3 or Google Cloud Storage for efficient and scalable file management.
  • Out-of-the-box configuration for nginx, gunicorn, and logrotate: Provides preconfigured settings for nginx, gunicorn, and logrotate to simplify the setup and deployment process.
  • Includes PyCharm project config: Includes the necessary project configuration for PyCharm, a popular Python IDE.

Summary

Thorgate's Django template is a comprehensive project template designed for medium-sized and larger apps that utilize JavaScript and React for frontend development. With features such as a Django-based backend, separate settings for different environments, Docker integration, linting and automated code formatting, and CDN support for media files, the template provides a solid foundation for building scalable and efficient web applications. The installation process is straightforward and well-documented, making it easy for developers to get started with the template.

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.

react
React

React is a widely used JavaScript library for building user interfaces and single-page applications. It follows a component-based architecture and uses a virtual DOM to efficiently update and render UI components

template
Templates & Themes

A template or theme refers to a pre-designed layout or structure that provides a basic framework for building a specific type of application or website. It typically includes good design, placeholder content and functional features, allowing developers to customize and fill in the details according to their specific needs.

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.

webpack
Webpack

Webpack is a popular open-source module bundler for JavaScript applications that bundles and optimizes the code and its dependencies for production-ready deployment. It can also be used to transform other types of assets such as CSS, images, and fonts.