Django application that provides a simple and modern forum board software for your Django website.
Project description
PunkwebBB
What is PunkwebBB?
PunkwebBB is a Django application that provides a complete forum board solution for Django websites. What sets it apart is its focus on simplicity and independence - it doesn't rely on other Django apps, making it incredibly straightforward to install and configure. The goal? To have a fully functional forum up and running in under a minute.
Check out punkweb.net for documentation, support and a live demonstration of the software.
Requirements
- Python 3.9+
- Django 3.2+
It may work with older versions of Python and Django, but it has not been tested.
Key Features
1. Modern Technology Stack
2. Core Functionality
- User registration and authentication
- Thread and post management
- Real-time shoutbox
- Discord integration
- BBCode and Markdown parsing
- Responsive design
- Admin controls and moderation tools
Getting Started
Installation
pip install punkweb-bb
Configuration
Add to your Django settings:
INSTALLED_APPS = [
...
"punkweb_bb",
]
Optionally: Add the following middleware to your MIDDLEWARE setting, at the end of the list:
MIDDLEWARE = [
...
"punkweb_bb.middleware.ProfileOnlineCacheMiddleware",
]
URL Configuration
from django.urls import path, include
urlpatterns = [
...
path("forum/", include("punkweb_bb.urls")),
]
Customization Options
PunkwebBB comes with a range of configurable settings:
PUNKWEB_BB = {
"SITE_NAME": "Your Site Name",
"SITE_TITLE": "Your Forum Title",
"PARSER": "bbcode", # or "markdown"
"FAVICON": "path/to/favicon.ico",
"OG_IMAGE": None, # Full URL for Open Graph meta tags
"SHOUTBOX_ENABLED": True,
"SHOUTBOX_POLLING_ENABLED": True,
"SHOUTBOX_POLLING_INTERVAL": 30, # seconds
"DISCORD_WIDGET_ENABLED": False,
"DISCORD_WIDGET_THEME": "dark",
"DISCORD_SERVER_ID": None,
}
Why Choose PunkwebBB?
1. Simplicity
The installation process is straightforward, and the default configuration works out of the box. You don't need to be a Django expert to get started.
2. Independence
Unlike many forum solutions that require multiple dependencies, PunkwebBB is self-contained. This means fewer potential points of failure and easier maintenance.
3. Modern Features
From real-time shoutbox to Discord integration, PunkwebBB includes features that modern communities expect.
4. Extensibility
While it's simple to set up, PunkwebBB is also highly customizable. You can extend its functionality to match your specific needs.
5. Performance
Built with efficiency in mind, PunkwebBB handles user interactions smoothly without unnecessary overhead.
Real-World Applications
PunkwebBB is ideal for:
- Gaming communities
- Business support forums
- Educational platforms
- Technical discussion boards
- Fan communities
- Knowledge-sharing platforms
Conclusion
PunkwebBB represents a perfect balance between simplicity and functionality. Whether you're building a small community forum or a large-scale discussion platform, it provides all the essential features while remaining easy to implement and maintain.
The project's focus on independence and straightforward installation makes it an excellent choice for developers who want to add forum functionality to their Django projects without the complexity of larger forum solutions.
Testing
Report:
coverage run && coverage report
HTML:
coverage run && coverage html
Found 59 test(s).
Creating test database for alias 'default'...
System check identified no issues (0 silenced).
...........................................................
----------------------------------------------------------------------
Ran 59 tests in 8.594s
OK
Destroying test database for alias 'default'...
Name Stmts Miss Cover
------------------------------------------------------------------
punkweb_bb/__init__.py 0 0 100%
punkweb_bb/admin.py 42 0 100%
punkweb_bb/admin_forms.py 34 0 100%
punkweb_bb/apps.py 6 0 100%
punkweb_bb/bbcode.py 118 46 61%
punkweb_bb/decorators.py 12 0 100%
punkweb_bb/forms.py 59 0 100%
punkweb_bb/guests.py 13 0 100%
punkweb_bb/middleware.py 27 3 89%
punkweb_bb/mixins.py 11 0 100%
punkweb_bb/models.py 154 1 99%
punkweb_bb/pagination.py 11 4 64%
punkweb_bb/response.py 3 0 100%
punkweb_bb/searching.py 8 5 38%
punkweb_bb/settings.py 13 0 100%
punkweb_bb/signals.py 9 0 100%
punkweb_bb/templatetags/__init__.py 0 0 100%
punkweb_bb/templatetags/can_delete.py 5 0 100%
punkweb_bb/templatetags/can_edit.py 5 0 100%
punkweb_bb/templatetags/can_post.py 5 0 100%
punkweb_bb/templatetags/humanize_int.py 9 5 44%
punkweb_bb/templatetags/punkweb_bb.py 6 0 100%
punkweb_bb/templatetags/render.py 38 16 58%
punkweb_bb/templatetags/styled_group_name.py 7 1 86%
punkweb_bb/templatetags/styled_username.py 6 0 100%
punkweb_bb/tests.py 418 0 100%
punkweb_bb/urls.py 4 0 100%
punkweb_bb/utils.py 44 26 41%
punkweb_bb/views.py 319 123 61%
punkweb_bb/widgets.py 16 2 88%
------------------------------------------------------------------
TOTAL 1402 232 83%
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 punkweb_bb-0.5.2.tar.gz.
File metadata
- Download URL: punkweb_bb-0.5.2.tar.gz
- Upload date:
- Size: 1.2 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4eaff09450be2bd14fc2a021605b74ab195cb42564e2ae97d782a5a1c4036461
|
|
| MD5 |
d0fa5c0ba9c74441e2c2c795b597e15b
|
|
| BLAKE2b-256 |
54ebabbe0994cf4238fcf2c9df62762a00e79f400203c8a7feec1bf021701181
|
File details
Details for the file punkweb_bb-0.5.2-py3-none-any.whl.
File metadata
- Download URL: punkweb_bb-0.5.2-py3-none-any.whl
- Upload date:
- Size: 1.5 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
469be03320998d5d664f04c51bd3960d6fd490e4f855d9e1adb2f53f99004aa0
|
|
| MD5 |
b16813d01eeba543a9a9bff9da47f50d
|
|
| BLAKE2b-256 |
ae8731f8df1bcea16715d7eac5b4ab79167374c378bc30e148c99ee2bf647355
|