Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

punkweb_bb-0.5.2.tar.gz (1.2 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

punkweb_bb-0.5.2-py3-none-any.whl (1.5 MB view details)

Uploaded Python 3

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

Hashes for punkweb_bb-0.5.2.tar.gz
Algorithm Hash digest
SHA256 4eaff09450be2bd14fc2a021605b74ab195cb42564e2ae97d782a5a1c4036461
MD5 d0fa5c0ba9c74441e2c2c795b597e15b
BLAKE2b-256 54ebabbe0994cf4238fcf2c9df62762a00e79f400203c8a7feec1bf021701181

See more details on using hashes here.

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

Hashes for punkweb_bb-0.5.2-py3-none-any.whl
Algorithm Hash digest
SHA256 469be03320998d5d664f04c51bd3960d6fd490e4f855d9e1adb2f53f99004aa0
MD5 b16813d01eeba543a9a9bff9da47f50d
BLAKE2b-256 ae8731f8df1bcea16715d7eac5b4ab79167374c378bc30e148c99ee2bf647355

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page