# Django ReportCraft
A Django reusable App for dynamically designing and generating data visualization and
business intelligence reports
## Summary of Features
### Report Creation
- Create and manage reports through a graphical designer.
- Easily add new report entries using the intuitive interface.
### Data Sources & Models
- **Data Sources:** Configure models that provide data for reports.
- Define the data source name, grouping fields, and record limit.
- **Data Source Models:**
- Add models to a data source.
- Specify group expressions for data aggregation.
### Data Fields & Expressions
- Configure fields with attributes such as name, label, default value, and precision.
- **Expressions:**
- Use arithmetic operators (`+`, `-`, `*`, `/`, unary negation).
- Reference Django field names using CamelCase and related fields with the `.` operator.
- Group and nest expressions using parentheses.
- Use string literals enclosed in quotes.
- **Supported Functions:**
- Django database functions (e.g., `Sum`, `Avg`, `Count`, etc.)
- Custom functions (e.g., `ShiftStart`, `ShiftEnd`, `Hours`, `Minutes`, `DisplayName`).
### Report Entry Types & Configurations
- **Table Entry:**
- Configure rows, columns, values, column totals, row totals, and transpose option.
- **Bar Chart Entry:**
- Set the X-axis and one or more Y-axis fields.
- Options for sorting, color schemes, stacking, label wrapping, and orientation.
- **Pie Chart Entry:**
- Define value and label fields for pie slices with color customization.
- **XY Plot Entry:**
- Configure dual Y-axes for left (Y1) and right (Y2).
- Supports both line and scatter plot options.
- **List Entry:**
- Define multiple columns with sorting and ordering features.
- **Histogram Entry:**
- Choose a numeric field, configure the number of bins, and select a color scheme.
- **Text & Rich Text Entries:**
- Display plain text or markdown formatted rich text.
### Demo Application
A demo site showcasing an example configuration of various features is available in the repository. After cloning
the repository,
poetry install
./manage.py migrate
./manage.py loaddata initial-data
./manage.py createsuperuser
./manage.py runserver
Open the browser to http://localhost:8000/admin and log in with the superuser credentials created in the previous step.
Click the "View Site" link in the top right corner of the page to access the main page, also accessible
from http://localhost:8000.
### Documentation
Detailed documentation and screenshots are available at https://michel4j.github.io/django-reportcraft/.
Raw data
{
"_id": null,
"home_page": "https://github.com/michel4j/django-reportcraft",
"name": "django-reportcraft",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": null,
"keywords": null,
"author": "Michel Fodje",
"author_email": "michel4j@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/86/a4/7b85e01a6058ca3535ceacf716b3347fc6879a556136310d7ee499bf7297/django_reportcraft-2025.7.26.tar.gz",
"platform": null,
"description": "# Django ReportCraft\nA Django reusable App for dynamically designing and generating data visualization and \nbusiness intelligence reports\n\n## Summary of Features\n\n### Report Creation\n- Create and manage reports through a graphical designer.\n- Easily add new report entries using the intuitive interface.\n\n### Data Sources & Models\n- **Data Sources:** Configure models that provide data for reports. \n - Define the data source name, grouping fields, and record limit.\n- **Data Source Models:** \n - Add models to a data source.\n - Specify group expressions for data aggregation.\n\n### Data Fields & Expressions\n- Configure fields with attributes such as name, label, default value, and precision.\n- **Expressions:** \n - Use arithmetic operators (`+`, `-`, `*`, `/`, unary negation).\n - Reference Django field names using CamelCase and related fields with the `.` operator.\n - Group and nest expressions using parentheses.\n - Use string literals enclosed in quotes.\n- **Supported Functions:** \n - Django database functions (e.g., `Sum`, `Avg`, `Count`, etc.)\n - Custom functions (e.g., `ShiftStart`, `ShiftEnd`, `Hours`, `Minutes`, `DisplayName`).\n\n### Report Entry Types & Configurations\n- **Table Entry:** \n - Configure rows, columns, values, column totals, row totals, and transpose option.\n- **Bar Chart Entry:** \n - Set the X-axis and one or more Y-axis fields.\n - Options for sorting, color schemes, stacking, label wrapping, and orientation.\n- **Pie Chart Entry:** \n - Define value and label fields for pie slices with color customization.\n- **XY Plot Entry:** \n - Configure dual Y-axes for left (Y1) and right (Y2).\n - Supports both line and scatter plot options.\n- **List Entry:** \n - Define multiple columns with sorting and ordering features.\n- **Histogram Entry:** \n - Choose a numeric field, configure the number of bins, and select a color scheme.\n- **Text & Rich Text Entries:** \n - Display plain text or markdown formatted rich text.\n\n### Demo Application\nA demo site showcasing an example configuration of various features is available in the repository. After cloning\nthe repository,\n\n poetry install\n ./manage.py migrate\n ./manage.py loaddata initial-data\n ./manage.py createsuperuser\n ./manage.py runserver\n \n Open the browser to http://localhost:8000/admin and log in with the superuser credentials created in the previous step.\n Click the \"View Site\" link in the top right corner of the page to access the main page, also accessible \n from http://localhost:8000.\n \n### Documentation\nDetailed documentation and screenshots are available at https://michel4j.github.io/django-reportcraft/. ",
"bugtrack_url": null,
"license": "MIT",
"summary": "A Django reusable App for dynamically designing and generating reports for business intelligence.",
"version": "2025.7.26",
"project_urls": {
"Documentation": "https://michel4j.github.io/django-reportcraft/",
"Homepage": "https://github.com/michel4j/django-reportcraft",
"Issues": "https://github.com/michel4j/django-reportcraft/issues"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "ccc007153bd35cee9afbfd7d48bb5e85b008a5160b0214d98779cc0ab7b5d19a",
"md5": "8b9e26237f1a3f74f3ada63fcaf65233",
"sha256": "3c4e38ab691272a732755eee0704a5aaff59d005203a33f0f37d452c79041077"
},
"downloads": -1,
"filename": "django_reportcraft-2025.7.26-py3-none-any.whl",
"has_sig": false,
"md5_digest": "8b9e26237f1a3f74f3ada63fcaf65233",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 71468,
"upload_time": "2025-08-11T14:16:54",
"upload_time_iso_8601": "2025-08-11T14:16:54.046294Z",
"url": "https://files.pythonhosted.org/packages/cc/c0/07153bd35cee9afbfd7d48bb5e85b008a5160b0214d98779cc0ab7b5d19a/django_reportcraft-2025.7.26-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "86a47b85e01a6058ca3535ceacf716b3347fc6879a556136310d7ee499bf7297",
"md5": "5a90de986503a873fd28bb1cdf474ad2",
"sha256": "22994b32b1c0658ba154ebcd8bea2aef62a359156bb5e6169f31263d95d87e0c"
},
"downloads": -1,
"filename": "django_reportcraft-2025.7.26.tar.gz",
"has_sig": false,
"md5_digest": "5a90de986503a873fd28bb1cdf474ad2",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 61014,
"upload_time": "2025-08-11T14:16:55",
"upload_time_iso_8601": "2025-08-11T14:16:55.122242Z",
"url": "https://files.pythonhosted.org/packages/86/a4/7b85e01a6058ca3535ceacf716b3347fc6879a556136310d7ee499bf7297/django_reportcraft-2025.7.26.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-11 14:16:55",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "michel4j",
"github_project": "django-reportcraft",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "django-reportcraft"
}