Overview:
The Django Starter Project is an opinionated boilerplate designed to streamline the setup process for Django projects. It includes various tools and configurations to save time on project configuration and allow developers to focus on development rather than tedious setup tasks.
Features:
- Env Variables Manager: Django Environ: Manages environment variables for configuration, following the 12 Factor App Guide.
- Package manager: Poetry: Uses Poetry as the package manager, providing a replacement for pip.
- Database: PostgreSQL: Configured to use PostgreSQL as the database.
- Task Queue: Celery with Redis: Utilizes Celery with Redis for task queue management.
- Testing: PyTest: Configured with PyTest as the testing framework.
- Logging: Sentry: Integrates with Sentry for logging and error monitoring.
- Python Code Formatter: Black: Includes Black as the Python code formatter for consistent code styling.
- Static File Storage: AWS S3 or Digital Ocean Spaces: Supports storage of static files in either AWS S3 or Digital Ocean Spaces.
- Dev Orchestration: Docker & Docker Compose: Provides Docker and Docker Compose for development orchestration.
- Static File Compiler: Webpack: Uses Webpack as the static file compiler for efficient asset management.
- JS lint: ESLint: Includes ESLint for JavaScript linting.
- Style lint: Stylelint: Utilizes Stylelint for CSS and style linting.
Summary:
The Django Starter Project is an opinionated boilerplate that provides a streamlined setup for Django projects. It includes various tools and configurations, such as handling environment variables, using PostgreSQL as the database, managing tasks with Celery and Redis, testing with PyTest, logging with Sentry, code formatting with Black, and static file storage options with AWS S3 or Digital Ocean Spaces. The project also offers simplified development orchestration using Docker and Docker Compose, static file compilation with Webpack, and linting for JavaScript and styles. By following the provided installation guide, developers can save time on project configuration and quickly get started with their Django projects.