Metadata-Version: 2.4
Name: django-helpapp
Version: 0.1.0
Summary: Drop-in in-app help center for Django projects, designed for Any Project.
Author-email: Mohammed Taha Khamed <khamedkh297@gmail.com>
License: MIT
Project-URL: Homepage, https://github.com/khamedtaha/django-helpapp
Project-URL: Documentation, https://github.com/khamedtaha/django-helpapp
Project-URL: Source, https://github.com/khamedtaha/django-helpapp
Keywords: django,help,documentation,knowledge-base,widget
Classifier: Framework :: Django
Classifier: Framework :: Django :: 5.0
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: Django>=5.0
Requires-Dist: Markdown>=3.5
Requires-Dist: django-froala-editor>=5.3.1
Dynamic: license-file

# django-helpapp

Drop-in in-app help center for Django projects, designed for Any Project.

- Django MVT — plain server-rendered views/templates, no required build step.
- Tailwind CSS — Use the Play CDN to try Tailwind right in the browser without any build step.
- Vanilla JS — a single dependency-free `helpapp.js`. Works with or without a JS framework in your project.
- Embeddable anywhere — a floating help widget, inline contextual hints, and a full standalone help portal.

## Install

```bash
pip install django-helpapp
```

```python
# settings.py
INSTALLED_APPS = [
    ...,
    "froala_editor",
    "helpapp",
]

HELPAPP_SETTINGS = {
    "BRAND_NAME": "Brand Name (Help Center)",
    "PRIMARY_COLOR": "#1c088b",

}
```

```python
# urls.py
from django.urls import include, path

urlpatterns = [
    ...,
    path("froala_editor/", include('froala_editor.urls')),
    path("help/", include("helpapp.urls")),
]
```

```bash
python manage.py migrate
python manage.py seed_helpapp_demo   # optional: loads sample content
```

## Add the floating widget to every page

```html
<!-- base.html -->
{% load helpapp_tags %}
...
  {% helpapp_announcements %}
  {% helpapp_widget %}
</body>
</html>
```

## Use the Play CDN to try Tailwind right in the browser without any build step

```html
<!-- base.html -->
{% load helpapp_tags %}
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>{% block title %}Your Django Project{% endblock %}</title>
  <script src="https://cdn.jsdelivr.net/npm/@tailwindcss/browser@4"></script>
</head>
<body>
...
  {% helpapp_announcements %}
  {% helpapp_widget %}
</body>
</html>
```


## Content authoring

Articles are authored in Django admin (`HelpArticle`), written in Markdown, organized into `HelpCategory`, tagged with `HelpTag`, and can be restricted by `role` (`all`, `user`,  `admin`, `staff`). Visibility is enforced by `helpapp.permissions.can_view_article`, which you can override entirely via `PERMISSION_CALLBACK`.

## Building a custom frontend (API-only mode)

If you don't want the bundled templates, use the JSON endpoints directly:

- `GET /help/api/search/?q=...`
- `GET /help/api/articles/<slug>/`
- `GET /help/api/hints/<key>/`



## Overriding templates

Any template can be overridden by creating a matching path in your project's own `templates/helpapp/` directory (standard Django template-loading precedence), e.g. `templates/helpapp/widget.html`.

## Compatibility

Django 5.0 LTS, 5.x ,6.x; Python 3.10+. SQLite, PostgreSQL, MySQL.

# django-helpapp
