nfsense/client/README.md
adro 1fb4fc89f2 Minor Type error fix
- Added additional readme information
2023-11-07 14:21:01 +01:00

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.