mirror of
https://github.com/speatzle/nfsense.git
synced 2025-05-11 19:08:20 +00:00
33 lines
1.8 KiB
Markdown
33 lines
1.8 KiB
Markdown
# nfSense Web Client
|
|
This folder contains the standard client for the nfSense firewall.
|
|
|
|
## Goals and Priorities
|
|
The nfSense web client should be...
|
|
- As reliable as possible
|
|
- Pleasing to the eye and intuitive to new users
|
|
- Fast, and not get in your way.
|
|
|
|
## Technology
|
|
### General Structure
|
|
The nfSense web client is a monolithic Single-Page Web-Application.
|
|
|
|
### Critical Dependencies
|
|
We encourage any potential contributor to familiarize themselves with these tools and libraries before making changes, as they lie at the heart of the project.
|
|
- Vue 3: Frontend Framework
|
|
- Vite: Dev and Build Tool
|
|
- Typescript: Adds Type Information to JS
|
|
- Vue Macros: Replacement for the deprecated experimental Reactivity Transform feature of Vue 3
|
|
|
|
### Important Dependencies
|
|
These libraries aren't mandatory to be able to work on the nfSense web client, this listing is merely meant to pre-empt redundancies.
|
|
- ESLint: The standard JS linter, which we also use to enforce some code style choices.
|
|
- Iconify: Icons (Could be replaced with custom ones)
|
|
- Markdown-It: We prefer markdown for informational texts, and use this to render it on the frontend.
|
|
|
|
### High-Level choices
|
|
We are currently not using a component library to maintain full control over our styling and keep the bundle small and dependencies few.
|
|
|
|
We do not use JavaScript-Based layouting and animations. Components simply render out DOM nodes that are styled and animated with CSS alone.
|
|
|
|
## Building
|
|
We use pnpm as our package manager please follow their documentation to set up a working development environment on the latest stable release of Node. Run `pnpm run dev` to start a development server, or `pnpm run build` to generate distribution files. We're working on including launch tasks to allow seamless debugging within VSCodium.
|