This project delivers an interactive questionnaire that helps teams evaluate their cyber-security maturity against the NIST Cybersecurity Framework (CSF) 2.0. The application focuses on being simple to share and operate: it ships as a single static HTML file that can be opened locally or hosted on any static site provider.
- Dashboard overview – real-time averages by Function and Category, radar and bar charts with target tracking, and progress pills for each CSF Function.
- Guided assessments – pre-filled questions mapped to CSF Functions, with pilot guidance content (roles, processes, tooling) for the first control.
- Autosave and portability – responses persist in the browser via
localStorage, and can be exported/imported as JSON or CSV for collaboration and archiving. - Bilingual experience – toggle between French and English labels, prompts, and helper texts at any time during the assessment.
For privacy and confidentiality reasons, the questionnaire is designed to operate entirely locally and does not perform any network interactions:
- Local execution – the application is a static HTML file that opens directly in the browser, with no application server or remote processing.
- No collection – there are no accounts, authentication, or automatic transmission of responses.
- Local storage – responses are saved in the browser via
localStorageand can be exported/imported manually (JSON/CSV) as needed for archiving. - Data ownership – users retain full control of exported files and can store them on their own systems or secure media.
Although the app requires no build tooling, the repository includes helper workflows for easy hosting.
- Clone the repository.
- Open
index.htmldirectly in your browser, or serve the directory with any static HTTP server (for examplepython -m http.server).
- Push the repository to GitHub and confirm that your default branch is
main(or adjust the workflow trigger). - In GitHub, open Settings → Pages and select GitHub Actions as the source. The included workflow (
.github/workflows/deploy.yml) will be detected automatically. - Push to
mainor trigger Run workflow from the Actions tab. The action uploads the static site and publishes it to GitHub Pages. - Once the workflow finishes, the public URL appears in the workflow summary and under Settings → Pages.
- To deploy a different output directory, edit the
pathin the “Upload artifact” step of.github/workflows/deploy.yml. - To change the trigger branch, update
on.push.branchesin the same workflow file.
- Open the application (locally or via GitHub Pages).
- Click Import JSON, select the previously exported assessment, and accept the confirmation prompt to load the stored metadata and answers.
This project is licensed under the MIT License. See the LICENSE file for details.