Skip to content

n-side-dev/wefa

N-SIDE WeFa (Web Factory)

security: bandit Release GitHub Releases npm version PyPI version License

N-SIDE WeFa (Web Factory) is an open-source toolkit for building full-stack, product-ready web experiences. It brings together:

  • WeFa Django Toolkit – reusable Django apps for authentication, consent management, and shared utilities (django/)
  • WeFa Frontend Library – a Vue 3 component system, CLI helpers, and Storybook demos (vue/)

Documentation

Explore the interactive documentation for the Django and Vue packages.

Packages at a Glance

  • django/ – source code for the Django distribution published as nside-wefa. Includes the demo project in django/demo.
  • vue/ – source code for the Vue library published as @nside/wefa, plus a demo/Storybook playground.
  • utils/, scripts/, etc. – helper modules shared inside their respective workspaces.

Each package comes with its own README describing features and local workflows plus a CONTRIBUTE if you want to support the development of this project.

Quick Start

Backend (Django)

pip install nside-wefa
INSTALLED_APPS = [
    # ...your apps
    "nside_wefa.common",
    "nside_wefa.authentication",
    "nside_wefa.legal_consent",
]

Check the Django README for configuration examples, migrations, and development commands.

Frontend (Vue)

npm install @nside/wefa
import { WefaButton } from "@nside/wefa";
import "@nside/wefa/style";

See the Vue README for build scripts, Storybook, and component authoring guidelines.

Local Development

  • Backendcd django, create a virtual environment (or use uv), install dependencies (pip install -e .[dev]), then run python manage.py migrate and pytest.
  • Frontendcd vue, run npm install, then use npm run dev for the demo playground or npm run storybook for docs.

The demo apps in both workspaces illustrate how to compose the packages together.

Release Versioning

This monorepo uses one shared version across vue/, django/, and bff/. Use the root orchestrator script for any version change:

python3 scripts/wefa_version.py -h
python3 scripts/wefa_version.py show
python3 scripts/wefa_version.py check --expect <x.y.z[-prerelease]>
python3 scripts/wefa_version.py bump patch
python3 scripts/wefa_version.py set 1.0.0-rc.1

Use --dry-run to preview changes and --allow-dirty-version-files only when you intentionally need to override preflight checks.

Use SemVer for CLI inputs and release tags (for example 1.2.3-rc.1). For prereleases, only alpha.<N>, beta.<N>, and rc.<N> are supported. Python project files are written in PEP 440 equivalent form (1.2.3a1, 1.2.3b1, 1.2.3rc1) by the orchestrator.

BFF Container Image

When a GitHub release is published, CI builds and pushes the BFF Docker image to GitHub Container Registry (GHCR):

  • ghcr.io/n-side-dev/wefa/bff:<release-tag>
  • ghcr.io/n-side-dev/wefa/bff:latest for non-prerelease tags only
  • Multi-arch manifest for linux/amd64 and linux/arm64

Contributing

Contributions are welcome! Start with open issues or propose new ideas through GitHub discussions. Please read Django CONTRIBUTE and/or Vue CONTRIBUTE for the current contribution workflow.

Before opening a pull request:

  • follow the linting and testing commands documented in each package
  • document new features or breaking changes in the relevant README or package CHANGELOG (when available)

License

WeFa is released under the Apache-2.0 license.

Project Status

The project is in active development and still stabilising APIs. While the development team will try to avoid as much as possible, breaking changes may occur with the addition of new features.

Developed by N-Side - Website | GitHub

About

N-SIDE Energy Web Factory libraries

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors