Are you tired of repeatedly spending countless hours developing the same functionalities in Django? Do you want to increase your productivity and quality of code without sacrificing efficiency? Look no further than DXDJ – the D10X Django Foundation Framework!
DXDJ is a framework developed by D10X to improve the productivity of Django developers. It adds commonly used functionalities and utilities to improve the efficiency and quality of Django code. DXDJ is based on a curated list of excellent Django and other open-source packages, including Django-tables2, Django-crispy-forms, Twitter Bootstrap 4.6 (soon to be migrated to Bootstrap 5), Django-compressor, and Django-sass-processor.
DXDJ comprises several modules, including dxcore, iam, notification, scheduler, server, components, and workflow.
- DXCore implements core functionalities of DXDJ packages like improved settings, management commands for easy deployment, and enhanced forms. The settings class defines various predefined Django settings, including third-party packages, context processors, middleware, and logging settings for production, staging, and development environments. The enhanced forms automatically convert Django DateTimeFields to HTML5-compliant date time fields, initialize crispy forms with sane defaults to reduce boilerplate, add functionality where you need multiple submit buttons for a form, and dynamic forms based on HTMX. The management commands add various commands, including taking a database dump for a PostgreSQL database, deploying a Django application automatically running migrate, collecting static, asset compression, etc. DXCore also generates configuration files to deploy a Django application on Apache/mod_wsgi or nginx/unicorn, ensuring that issues like changes in security configurations, new security headers, etc., are deployed consistently across applications developed on DXDJ.
- The Attachments package supports a simplified way to add attachments to existing Django models, including support for standard and encrypted attachments.
- The IAM (Identity and Access Management) module creates users and introduces the separation of User (with authentication) and User (or Person) Profile. DXDJ also adds support for role-based permissions, features like tracking the last logged-in timestamp, commonly used features like re-invite User, automatic expiration of user invites after a predetermined time, and a JSON Field to store arbitrary data with a UserProfile.
- The Notification module creates and stores custom notification templates in the database, which can be used to send email notifications. Integrating other notification options like SMS or WhatsApp with minor changes is possible. Notification templates can be created by administrators without any code changes and support HTML mail with custom images, custom CSS, etc.
- The Scheduler module adds Django signals for commonly used intervals like hourly, daily, weekly, etc. DXDJ then generates a crontab file and shell to deploy the crontab or Windows scheduler batch file. A Django management command triggers the signals at various intervals. Developers have to register the signal and implement the signal handler to perform the task.
If you want to use DXDJ for your Django development, we offer the source code for a small licensing fee. DXDJ can lead to massive optimization for your development process. It can significantly benefit startups and other businesses looking to