nkscoder-django-feedback: open-source Django user feedback & AI analytics dashboard by Nitesh Kumar Singh (nkscoder) — forms, ratings, sentiment, and staff insights for any project.
Project description
nkscoder-django-feedback
Open-source Django feedback plugin by Nitesh Kumar Singh (nkscoder)
Collect user feedback (authenticated or anonymous), enforce cooldown rules, and review submissions on an AI analytics dashboard with charts, sentiment keywords, and auto-generated insights.
| Author / Maintainer | Nitesh Kumar Singh (nkscoder) |
| Website | nkscoder.in |
| GitHub | github.com/nkscoder/feedback |
| PyPI | nkscoder-django-feedback |
| Meta install | nkscoder[feedback] on PyPI @nkscoder |
| Django app | feedback |
| Version | 1.0.2 |
| License | MIT |
Screenshots
Feedback form
Embed this form in any Django template (authenticated or guest users, optional rating & category):
AI analytics dashboard
Staff dashboard with charts, sentiment analysis, and auto-generated insights:
Replace screenshots: add your own PNGs under
docs/screenshots/after customizing templates in your project.
Table of contents
- Screenshots
- Features
- Requirements
- Install
- Quick setup
- Configuration
- Submit feedback
- AI dashboard
- SEO & branding templates
- Full documentation
- Troubleshooting
- About the author
- License
Features
- Generic — works in any Django 4.2+ project; no host-app coupling
- Authenticated or anonymous submissions (
user,name,email,session_key) - Star ratings (1–5), category, source (page/route),
link_type/link_id - Cooldown per user or anonymous session (
FEEDBACK_COOLDOWN_DAYS) - Django admin — search, filters, list display
- AI dashboard (staff) — trends, ratings, sentiment, insight bullets, Chart.js
- JSON API —
/feedback/dashboard/api/for external tools - Optional OpenAI summaries (
[ai]extra) - SEO-ready pages — meta tags, Open Graph, JSON-LD (Schema.org), public license page
Requirements
| Package | Version |
|---|---|
| Python | 3.10+ |
| Django | 4.2+ |
Install
From PyPI (recommended)
pip install nkscoder-django-feedback
Via nkscoder meta package
pip install "nkscoder[feedback]"
# or all @nkscoder Django packages:
pip install "nkscoder[all]"
From GitHub
git clone https://github.com/nkscoder/feedback.git
cd feedback
pip install -e .
Optional: OpenAI insight summaries
pip install "nkscoder-django-feedback[ai]"
Quick setup
1. INSTALLED_APPS
INSTALLED_APPS = [
# ...
"feedback",
]
2. Context processor (SEO / branding on dashboard pages)
TEMPLATES = [
{
"BACKEND": "django.template.backends.django.DjangoTemplates",
"OPTIONS": {
"context_processors": [
# ...
"feedback.context_processors.feedback_open_source",
],
},
},
]
3. Migrations
python manage.py migrate feedback
4. URLs
from django.urls import path, include
urlpatterns = [
path("feedback/", include("feedback.urls")),
]
Configuration
All settings use the FEEDBACK_ prefix. Defaults are in feedback/conf.py.
| Setting | Default | Description |
|---|---|---|
FEEDBACK_COOLDOWN_DAYS |
7 |
Days between submissions (0 = no limit) |
FEEDBACK_REQUIRE_AUTH |
False |
Login required to submit |
FEEDBACK_REQUIRE_EMAIL |
False |
Email required for guests |
FEEDBACK_MESSAGE_MAX_LENGTH |
5000 |
Max message length |
FEEDBACK_SUBMIT_REDIRECT |
"/" |
Path or URL name after submit |
FEEDBACK_BASE_TEMPLATE |
feedback/base.html |
Base template for dashboard |
FEEDBACK_LOGIN_URL |
"login" |
Login URL for staff views |
FEEDBACK_DASHBOARD_DAYS |
30 |
Default analytics window |
FEEDBACK_OPENAI_API_KEY |
"" |
Optional LLM summaries |
FEEDBACK_AUTHOR_NAME |
Nitesh Kumar Singh |
Template / SEO author |
FEEDBACK_AUTHOR_HANDLE |
nkscoder |
Brand handle |
FEEDBACK_GITHUB_URL |
https://github.com/nkscoder/feedback |
Repo link |
FEEDBACK_HOMEPAGE_URL |
https://nkscoder.in |
Author site |
FEEDBACK_SEO_DESCRIPTION |
(see conf.py) |
Meta description |
FEEDBACK_SEO_KEYWORDS |
(see conf.py) |
Meta keywords |
Example:
FEEDBACK_COOLDOWN_DAYS = 7
FEEDBACK_SUBMIT_REDIRECT = "home"
FEEDBACK_SEO_DESCRIPTION = (
"Customer feedback for MyApp — powered by nkscoder-django-feedback "
"by Nitesh Kumar Singh (nkscoder)."
)
Submit feedback (HTML form)
Ready-made template (Bootstrap 5):
{% include "feedback/submit_form.html" %}
Minimal HTML:
<form method="post" action="{% url 'feedback:submit_feedback' %}">
{% csrf_token %}
<textarea name="feedback" required placeholder="Your feedback…"></textarea>
<input name="name" placeholder="Name">
<input name="email" type="email" placeholder="Email">
<select name="rating">
<option value="">Rating</option>
<option value="5">5 — Excellent</option>
<option value="4">4</option>
</select>
<input name="category" placeholder="Bug / Feature / Praise">
<button type="submit">Send feedback</button>
</form>
Python helpers:
from feedback.services import is_feedback_allowed, create_feedback
from feedback.views import get_feedback_context
# Template context
context = {**get_feedback_context(request)}
# Programmatic
create_feedback(request, "Great UX!", category="praise", rating=5)
AI dashboard
Staff-only analytics built by Nitesh Kumar Singh (nkscoder).
| URL | Name | Access |
|---|---|---|
/feedback/dashboard/ |
feedback:ai_dashboard |
Staff |
/feedback/dashboard/api/?days=30 |
feedback:ai_dashboard_api |
Staff |
/feedback/license/ |
feedback:license |
Public (SEO) |
Default insights: rule-based (volume, ratings, sentiment keywords, categories).
With OpenAI: FEEDBACK_OPENAI_API_KEY + pip install "nkscoder-django-feedback[ai]".
SEO & branding templates
Included for discoverability and attribution:
feedback/_seo_head.html— description, keywords, author, Open Graph, Twitter Card, JSON-LDSoftwareApplicationfeedback/_opensource_footer.html— links to GitHub, PyPI, License, nkscoder.infeedback/license.html— public MIT license page
Override copy via FEEDBACK_SEO_* and FEEDBACK_AUTHOR_* settings.
Full documentation
See DOCUMENTATION.md for:
- Data model reference
- Services API
- Analytics & AI insight logic
- Admin customization
- Publishing to PyPI
Troubleshooting
| Issue | Fix |
|---|---|
| Empty SEO meta on dashboard | Add feedback.context_processors.feedback_open_source |
TemplateSyntaxError on _seo_head.html |
Same — context processor required |
| Redirect after submit fails | Set FEEDBACK_SUBMIT_REDIRECT to a valid path or URL name |
| Guests submit too often | Lower FEEDBACK_COOLDOWN_DAYS or set FEEDBACK_REQUIRE_AUTH |
| No OpenAI insights | Install [ai] extra and set FEEDBACK_OPENAI_API_KEY |
About the author
Nitesh Kumar Singh (nkscoder) builds reusable Django packages at nkscoder.in — including ticket systems, activity monitors, and this feedback plugin.
- GitHub: https://github.com/nkscoder
- PyPI: https://pypi.org/user/nkscoder/
- LinkedIn: https://www.linkedin.com/in/nitesh-kumar-singh-897437a2/
For integration help, custom dashboards, or enterprise extensions, visit https://nkscoder.in.
License
Copyright © 2020–2026 Nitesh Kumar Singh (nkscoder).
Released under the MIT License. You may use, copy, modify, and distribute this software with attribution to Nitesh Kumar Singh (nkscoder).
Publish to PyPI
Maintainer: nkscoder. See PUBLISHING.md.
pip install build twine
python -m build
twine upload dist/*
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file nkscoder_django_feedback-1.0.2.tar.gz.
File metadata
- Download URL: nkscoder_django_feedback-1.0.2.tar.gz
- Upload date:
- Size: 23.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2055c43a8bbe848ca8e64348bba7630f931a5a9d42bafa4b772665cd83a9e814
|
|
| MD5 |
581620f9b9fb6e19b43b9e2be4472622
|
|
| BLAKE2b-256 |
7144770540bf46ae9edbf73f4dbdca592c007db27e979e9ff067b5a66a438df6
|
File details
Details for the file nkscoder_django_feedback-1.0.2-py3-none-any.whl.
File metadata
- Download URL: nkscoder_django_feedback-1.0.2-py3-none-any.whl
- Upload date:
- Size: 25.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8c51c08b24df25d3b9dc975324a49642c8ee06ca56c5573933fda37443f3d2af
|
|
| MD5 |
b682164c1d80f6ecbeae36cee5414ac4
|
|
| BLAKE2b-256 |
c33345e1c815b7c861526b5542caee0ef825e4a53daddcebfc1ee05e8a33d6ee
|