Flow now works
This commit is contained in:
@@ -1,6 +1,8 @@
|
||||
package controllers
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"html"
|
||||
"html/template"
|
||||
"log"
|
||||
"net/http"
|
||||
@@ -9,6 +11,13 @@ import (
|
||||
)
|
||||
|
||||
func Index(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
if r.URL.Path != "/" {
|
||||
w.WriteHeader(http.StatusNotFound)
|
||||
fmt.Fprintf(w, "Error: 404 %s not found.", html.EscapeString(r.URL.Path))
|
||||
return
|
||||
}
|
||||
|
||||
lp := filepath.Join("application", "layouts", "main.html")
|
||||
fp := filepath.Join("application", "views", "index.html")
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ import (
|
||||
"risklet/db"
|
||||
)
|
||||
|
||||
func Advanced(w http.ResponseWriter, r *http.Request) {
|
||||
func ThankYou(w http.ResponseWriter, r *http.Request) {
|
||||
if r.Method == "GET" {
|
||||
handleAdvancedGet(w, r)
|
||||
} else if r.Method == "POST" {
|
||||
@@ -43,12 +43,11 @@ func handleAdvancedPost(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
|
||||
func handleAdvancedGet(w http.ResponseWriter, r *http.Request) {
|
||||
companyId := r.PathValue("companyId")
|
||||
|
||||
lp := filepath.Join("application", "layouts", "main.html")
|
||||
fp := filepath.Join("application", "views", "advanced.html")
|
||||
fp := filepath.Join("application", "views", "thankyou.html")
|
||||
|
||||
log.Println("Hitting Advanced")
|
||||
log.Println("Hitting ThankYou")
|
||||
|
||||
// Return a 404 if the template doesn't exist
|
||||
info, err := os.Stat(fp)
|
||||
@@ -74,7 +73,7 @@ func handleAdvancedGet(w http.ResponseWriter, r *http.Request) {
|
||||
return
|
||||
}
|
||||
|
||||
err = tmpl.ExecuteTemplate(w, "main.html", companyId)
|
||||
err = tmpl.ExecuteTemplate(w, "main.html", nil)
|
||||
if err != nil {
|
||||
log.Print(err.Error())
|
||||
http.Error(w, http.StatusText(500), 500)
|
||||
@@ -9,6 +9,6 @@ func SetupAppServer() {
|
||||
fs := http.FileServer(http.Dir("./application/static"))
|
||||
http.Handle("GET /static/", http.StripPrefix("/static/", fs))
|
||||
http.HandleFunc("/signup/", controllers.Signup)
|
||||
http.HandleFunc("/advanced/{companyString}", controllers.Advanced)
|
||||
http.HandleFunc("/thankyou", controllers.ThankYou)
|
||||
http.HandleFunc("/", controllers.Index)
|
||||
}
|
||||
|
||||
@@ -1,4 +1,9 @@
|
||||
|
||||
body {
|
||||
font-family: 'Jost', sans-serif;
|
||||
font-size: var(--bs-body-font-size);
|
||||
}
|
||||
|
||||
:root {
|
||||
--bs-body-font-size: 1.5rem;
|
||||
}
|
||||
43
application/static/img/steps-line.svg
Normal file
43
application/static/img/steps-line.svg
Normal file
@@ -0,0 +1,43 @@
|
||||
<svg width="620" height="89" viewBox="0 0 620 89" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M620 44.1094H76.4492V51.7882H620V44.1094Z" fill="#FDC0C1"/>
|
||||
<path d="M76.5515 21.9563L57.6448 11.124L38.2165 0L29.0872 5.28213L0 22.1298L0.126466 22.2007L0.22922 66.2553L38.3192 88.0697L38.3271 88.2116L38.4457 88.1407L38.5722 88.2116V88.0697L76.5199 66.0976L76.4646 43.7077L76.4171 22.0431" fill="#FFDFDF"/>
|
||||
<path d="M57.6049 55.5352L38.5006 66.604L38.4453 44.5688L57.5575 33.5L57.5812 44.3402L57.6049 55.5352Z" fill="#E0ECFF"/>
|
||||
<path d="M33.8855 25.1176L38.4462 22.4766L48.1683 28.0425L57.6295 33.4587L38.5094 44.5275L19.334 33.5454L33.8855 25.1176Z" fill="white"/>
|
||||
<path d="M19.3965 33.5703L38.5719 44.5524L38.6272 66.6034L19.4518 55.6212L19.3965 33.5703Z" fill="#5498FF"/>
|
||||
<path d="M76.4481 44.3481L67.1054 38.995L57.5098 33.5L53.0045 36.1095L38.6348 44.4348L38.698 44.4663L38.7533 66.2256L57.5652 77.0027V77.0737L57.6284 77.0342L57.6916 77.0737V77.0027L76.4323 66.1467L76.4086 55.0937L76.377 44.3875" fill="#FDA7A9"/>
|
||||
<path d="M57.7721 11.3923L48.3108 5.97611L38.5967 0.410156L34.0281 3.05122L19.4766 11.479L19.5398 11.5184L19.5951 33.5536L38.652 44.4647V44.5357L38.7152 44.5041L38.7705 44.5357V44.4647L57.7563 33.4747L57.7326 22.2798L57.7009 11.4396" fill="#FFDFDF"/>
|
||||
<path d="M38.5415 44.2048L29.0803 38.7886L19.3661 33.2227L14.7975 35.8637L0.253906 44.2915L0.309235 44.3309L0.364564 66.3661L19.4214 77.2772V77.3482L19.4847 77.3088L19.54 77.3482V77.2772L38.5257 66.2872L38.502 55.0844L38.4704 44.2521" fill="#FDB3B5"/>
|
||||
<path d="M57.6049 55.5352L38.5006 66.604L38.4453 44.5688L57.5575 33.5L57.5812 44.3402L57.6049 55.5352Z" fill="#FDC0C1"/>
|
||||
<path d="M33.8855 25.1176L38.4462 22.4766L48.1683 28.0425L57.6295 33.4587L38.5094 44.5275L19.334 33.5454L33.8855 25.1176Z" fill="#FFF1F1"/>
|
||||
<path d="M19.3965 33.5703L38.5719 44.5524L38.6272 66.6034L19.4518 55.6212L19.3965 33.5703Z" fill="#F87E81"/>
|
||||
<path d="M257.706 21.9563L238.791 11.124L219.363 0L210.242 5.28213L181.146 22.1298L181.273 22.2007L181.384 66.2553L219.474 88.0697V88.2116L219.592 88.1407L219.719 88.2116V88.0697L257.666 66.0976L257.619 43.7077L257.564 22.0431" fill="#FFDFDF"/>
|
||||
<path d="M238.759 55.5352L219.655 66.604L219.6 44.5688L238.704 33.5L238.728 44.3402L238.759 55.5352Z" fill="#E0ECFF"/>
|
||||
<path d="M215.032 25.1176L219.601 22.4766L229.315 28.0425L238.776 33.4587L219.656 44.5275L200.48 33.5454L215.032 25.1176Z" fill="white"/>
|
||||
<path d="M200.543 33.5703L219.718 44.5524L219.774 66.6034L200.598 55.6212L200.543 33.5703Z" fill="#5498FF"/>
|
||||
<path d="M257.596 44.3481L248.262 38.995L238.666 33.5L234.161 36.1095L219.791 44.4348L219.854 44.4663L219.902 66.2256L238.714 77.0027L238.721 77.0737L238.777 77.0342L238.84 77.0737V77.0027L257.581 66.1467L257.557 55.0937L257.533 44.3875" fill="#FDA7A9"/>
|
||||
<path d="M238.926 11.3923L229.465 5.97611L219.743 0.410156L215.182 3.05122L200.631 11.479L200.694 11.5184L200.749 33.5536L219.798 44.4647V44.5357L219.862 44.5041L219.925 44.5357V44.4647L238.903 33.4747L238.879 22.2798L238.855 11.4396" fill="#FFDFDF"/>
|
||||
<path d="M219.696 44.2048L210.235 38.7886L200.513 33.2227L195.952 35.8637L181.4 44.2915L181.464 44.3309L181.519 66.3661L200.568 77.2772V77.3482L200.631 77.3088L200.694 77.3482V77.2772L219.672 66.2872L219.648 55.0844L219.625 44.2521" fill="#FDB3B5"/>
|
||||
<path d="M238.759 55.5352L219.655 66.604L219.6 44.5688L238.704 33.5L238.728 44.3402L238.759 55.5352Z" fill="#FDC0C1"/>
|
||||
<path d="M215.032 25.1176L219.601 22.4766L229.315 28.0425L238.776 33.4587L219.656 44.5275L200.48 33.5454L215.032 25.1176Z" fill="#FFF1F1"/>
|
||||
<path d="M200.543 33.5703L219.718 44.5524L219.774 66.6034L200.598 55.6212L200.543 33.5703Z" fill="#F87E81"/>
|
||||
<path d="M438.852 22.7454L419.946 11.9131L400.517 0.789062L391.388 6.0712L362.301 22.9188L362.427 22.9898L362.53 67.0444L400.62 88.8588V89.0007L400.746 88.9297L400.873 89.0007L400.865 88.8588L438.821 66.8867L438.765 44.4967L438.71 22.8321" fill="#FFDFDF"/>
|
||||
<path d="M419.908 56.3203L400.803 67.3892L400.748 45.354L419.852 34.2852L419.884 45.1254L419.908 56.3203Z" fill="#E0ECFF"/>
|
||||
<path d="M396.186 25.9067L400.747 23.2656L410.469 28.8316L419.922 34.2477L400.81 45.3166L381.635 34.3345L396.186 25.9067Z" fill="white"/>
|
||||
<path d="M381.699 34.3594L400.875 45.3415L400.93 67.3924L381.747 56.4103L381.699 34.3594Z" fill="#5498FF"/>
|
||||
<path d="M438.751 45.1332L429.408 39.7801L419.813 34.2852L415.307 36.8947L400.938 45.22L401.001 45.2515L401.056 67.0107L419.868 77.7879V77.8588L419.931 77.8194L419.986 77.8588V77.7879L438.735 66.9319L438.703 55.8788L438.68 45.1727" fill="#FDA7A9"/>
|
||||
<path d="M420.073 12.1813L410.612 6.76517L400.897 1.19922L396.329 3.84029L381.777 12.268L381.841 12.3075L381.896 34.3426L400.945 45.2538L400.953 45.3247L401.008 45.2932L401.071 45.3247V45.2538L420.057 34.2638L420.025 23.0688L420.002 12.2286" fill="#FFDFDF"/>
|
||||
<path d="M400.842 44.9938L391.381 39.5777L381.667 34.0117L377.098 36.6528L362.547 45.0805L362.61 45.12L362.665 67.1551L381.722 78.0663V78.1372L381.778 78.0978L381.841 78.1372V78.0663L400.827 67.0763L400.795 55.8734L400.771 45.0411" fill="#FDB3B5"/>
|
||||
<path d="M419.908 56.3203L400.803 67.3892L400.748 45.354L419.852 34.2852L419.884 45.1254L419.908 56.3203Z" fill="#FDC0C1"/>
|
||||
<path d="M396.186 25.9067L400.747 23.2656L410.469 28.8316L419.922 34.2477L400.81 45.3166L381.635 34.3345L396.186 25.9067Z" fill="#FFF1F1"/>
|
||||
<path d="M381.699 34.3594L400.875 45.3415L400.93 67.3924L381.747 56.4103L381.699 34.3594Z" fill="#F87E81"/>
|
||||
<path d="M620.001 22.7454L601.094 11.9131L581.666 0.789062L572.536 6.0712L543.449 22.9188L543.576 22.9898L543.678 67.0444L581.776 88.8588V89.0007L581.895 88.9297L582.021 89.0007V88.8588L619.969 66.8867L619.914 44.4967L619.866 22.8321" fill="#FFDFDF"/>
|
||||
<path d="M601.062 56.3203L581.95 67.3892L581.902 45.354L601.007 34.2852L601.03 45.1254L601.062 56.3203Z" fill="#E0ECFF"/>
|
||||
<path d="M577.333 25.9067L581.893 23.2656L591.616 28.8316L601.077 34.2477L581.957 45.3166L562.781 34.3345L577.333 25.9067Z" fill="white"/>
|
||||
<path d="M562.846 34.3594L582.021 45.3415L582.076 67.3924L562.901 56.4103L562.846 34.3594Z" fill="#5498FF"/>
|
||||
<path d="M619.897 45.1332L610.563 39.7801L600.967 34.2852L596.454 36.8947L582.084 45.22L582.147 45.2515L582.203 67.0107L601.014 77.7879V77.8588L601.078 77.8194L601.141 77.8588V77.7879L619.882 66.9319L619.858 55.8788L619.834 45.1727" fill="#FDA7A9"/>
|
||||
<path d="M601.219 12.1813L591.766 6.76517L582.044 1.19922L577.483 3.84029L562.932 12.268L562.995 12.3075L563.042 34.3426L582.099 45.2538V45.3247L582.162 45.2932L582.226 45.3247L582.218 45.2538L601.203 34.2638L601.18 23.0688L601.148 12.2286" fill="#FFDFDF"/>
|
||||
<path d="M581.989 44.9938L572.535 39.5777L562.813 34.0117L558.253 36.6528L543.701 45.0805L543.764 45.12L543.812 67.1551L562.869 78.0663V78.1372L562.932 78.0978L562.995 78.1372V78.0663L581.973 67.0763L581.949 55.8734L581.918 45.0411" fill="#FDB3B5"/>
|
||||
<path d="M601.062 56.3203L581.95 67.3892L581.902 45.354L601.007 34.2852L601.03 45.1254L601.062 56.3203Z" fill="#FDC0C1"/>
|
||||
<path d="M577.333 25.9067L581.893 23.2656L591.616 28.8316L601.077 34.2477L581.957 45.3166L562.781 34.3345L577.333 25.9067Z" fill="#FFF1F1"/>
|
||||
<path d="M562.846 34.3594L582.021 45.3415L582.076 67.3924L562.901 56.4103L562.846 34.3594Z" fill="#F87E81"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 7.0 KiB |
@@ -1,198 +0,0 @@
|
||||
{{define "content"}}
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<h1 class="pt-4 mt-5 mb-4">Advanced Risk Assessment</h1>
|
||||
<hr>
|
||||
<form method="post">
|
||||
<!-- Geographic Operational Scope -->
|
||||
<div class="mb-3 question" id="q1">
|
||||
<label for="geo-scope" class="form-label mt-3">What is your organization's geographic operational scope?</label>
|
||||
<hr>
|
||||
<select class="form-select" id="geo-scope" name="GeoScope" required>
|
||||
<option value="single-country">Single country</option>
|
||||
<option value="single-region">Multiple countries - Single region</option>
|
||||
<option value="multiple-regions">Multiple countries - Multiple regions</option>
|
||||
<option value="global">Global operations</option>
|
||||
</select>
|
||||
<small class="form-text text-muted py-3">Determines exposure to different cybersecurity regulations.</small>
|
||||
</div>
|
||||
|
||||
<!-- Customer Base Distribution -->
|
||||
<div class="mb-3 question" id="q2">
|
||||
<label for="customer-base" class="form-label mt-3">How would you characterize your customer base distribution?</label>
|
||||
<hr>
|
||||
<select class="form-select" id="customer-base" name="CustomerBase" required>
|
||||
<option value="few-key">Few key clients (1-5)</option>
|
||||
<option value="moderate">Moderate concentration (6-20)</option>
|
||||
<option value="diverse">Diverse customer base (20+)</option>
|
||||
</select>
|
||||
<small class="form-text text-muted py-3">Assesses potential impact of data breaches.</small>
|
||||
</div>
|
||||
|
||||
<!-- Primary Customer Type -->
|
||||
<div class="mb-3 question" id="q3">
|
||||
<label for="customer-type" class="form-label mt-3">What is your primary customer type?</label>
|
||||
<hr>
|
||||
<select class="form-select" id="customer-type" name="CustomerType" required>
|
||||
<option value="b2b">Primarily B2B</option>
|
||||
<option value="b2c">Primarily B2C</option>
|
||||
<option value="mixed">Mixed B2B/B2C</option>
|
||||
</select>
|
||||
<small class="form-text text-muted py-3">Defines data protection requirements.</small>
|
||||
</div>
|
||||
|
||||
<!-- Product/Service Portfolio -->
|
||||
<div class="mb-3 question" id="q4">
|
||||
<label for="product-portfolio" class="form-label mt-3">How diversified is your product/service portfolio?</label>
|
||||
<hr>
|
||||
<select class="form-select" id="product-portfolio" name="ProductPortfolio" required>
|
||||
<option value="single">Single product/service</option>
|
||||
<option value="2-5">2-5 products/services</option>
|
||||
<option value="more-than-5">More than 5 products/services</option>
|
||||
</select>
|
||||
<small class="form-text text-muted py-3">Indicates the variety of systems requiring protection.</small>
|
||||
</div>
|
||||
|
||||
<!-- Supplier Base Structure -->
|
||||
<div class="mb-3 question" id="q5">
|
||||
<label for="supplier-base" class="form-label mt-3">What is your supplier base structure?</label>
|
||||
<hr>
|
||||
<select class="form-select" id="supplier-base" name="SupplierBase" required>
|
||||
<option value="single-critical">Single/few critical suppliers</option>
|
||||
<option value="moderate">Moderate supplier base</option>
|
||||
<option value="highly-diverse">Highly diverse supplier base</option>
|
||||
</select>
|
||||
<small class="form-text text-muted py-3">Assesses third-party cybersecurity risks.</small>
|
||||
</div>
|
||||
|
||||
<!-- IT Infrastructure Model -->
|
||||
<div class="mb-3 question" id="q6">
|
||||
<label class="form-label mt-3">What is your primary IT infrastructure model?</label>
|
||||
<hr>
|
||||
<div>
|
||||
<div class="form-check">
|
||||
<input class="form-check-input" type="checkbox" name="ITInfrastructure" id="it-on-prem" value="on-premises">
|
||||
<label class="form-check-label" for="it-on-prem">On-premises systems</label>
|
||||
</div>
|
||||
<div class="form-check">
|
||||
<input class="form-check-input" type="checkbox" name="ITInfrastructure" id="it-cloud" value="cloud-based">
|
||||
<label class="form-check-label" for="it-cloud">Cloud-based systems</label>
|
||||
</div>
|
||||
<div class="form-check">
|
||||
<input class="form-check-input" type="checkbox" name="ITInfrastructure" id="it-hybrid" value="hybrid">
|
||||
<label class="form-check-label" for="it-hybrid">Hybrid infrastructure</label>
|
||||
</div>
|
||||
<div class="form-check">
|
||||
<input class="form-check-input" type="checkbox" name="ITInfrastructure" id="it-legacy" value="legacy">
|
||||
<label class="form-check-label" for="it-legacy">Legacy systems</label>
|
||||
</div>
|
||||
<div class="form-check">
|
||||
<input class="form-check-input" type="checkbox" name="ITInfrastructure" id="it-modern" value="modern">
|
||||
<label class="form-check-label" for="it-modern">Modern architecture</label>
|
||||
</div>
|
||||
</div>
|
||||
<small class="form-text text-muted py-3">Determines specific cybersecurity controls.</small>
|
||||
</div>
|
||||
|
||||
<!-- Intellectual Property Protection -->
|
||||
<div class="mb-3 question" id="q7">
|
||||
<label class="form-label mt-3">How does your organization protect and manage intellectual property?</label>
|
||||
<hr>
|
||||
<div>
|
||||
<div class="form-check">
|
||||
<input class="form-check-input" type="checkbox" name="IPProtection" id="ip-patents" value="patents">
|
||||
<label class="form-check-label" for="ip-patents">Patents owned</label>
|
||||
</div>
|
||||
<div class="form-check">
|
||||
<input class="form-check-input" type="checkbox" name="IPProtection" id="ip-licensed" value="licensed-ip">
|
||||
<label class="form-check-label" for="ip-licensed">Licensed IP from others</label>
|
||||
</div>
|
||||
<div class="form-check">
|
||||
<input class="form-check-input" type="checkbox" name="IPProtection" id="ip-trade-secrets" value="trade-secrets">
|
||||
<label class="form-check-label" for="ip-trade-secrets">Trade secrets</label>
|
||||
</div>
|
||||
<div class="form-check">
|
||||
<input class="form-check-input" type="checkbox" name="IPProtection" id="ip-joint" value="joint-ip">
|
||||
<label class="form-check-label" for="ip-joint">Joint IP ownership</label>
|
||||
</div>
|
||||
<div class="form-check">
|
||||
<input class="form-check-input" type="checkbox" name="IPProtection" id="ip-none" value="no-ip">
|
||||
<label class="form-check-label" for="ip-none">No significant IP</label>
|
||||
</div>
|
||||
</div>
|
||||
<small class="form-text text-muted py-3">Evaluates cybersecurity needs based on IP ownership.</small>
|
||||
</div>
|
||||
|
||||
<!-- Sensitive Data -->
|
||||
<div class="mb-3 question" id="q8">
|
||||
<label class="form-label mt-3">What type of sensitive data does your organization handle?</label>
|
||||
<hr>
|
||||
<div>
|
||||
<div class="form-check">
|
||||
<input class="form-check-input" type="checkbox" name="SensitiveData" id="data-personal" value="personal">
|
||||
<label class="form-check-label" for="data-personal">Personal customer data</label>
|
||||
</div>
|
||||
<div class="form-check">
|
||||
<input class="form-check-input" type="checkbox" name="SensitiveData" id="data-financial" value="financial">
|
||||
<label class="form-check-label" for="data-financial">Financial records</label>
|
||||
</div>
|
||||
<div class="form-check">
|
||||
<input class="form-check-input" type="checkbox" name="SensitiveData" id="data-healthcare" value="healthcare">
|
||||
<label class="form-check-label" for="data-healthcare">Healthcare information</label>
|
||||
</div>
|
||||
<div class="form-check">
|
||||
<input class="form-check-input" type="checkbox" name="SensitiveData" id="data-ip" value="ip">
|
||||
<label class="form-check-label" for="data-ip">Intellectual property</label>
|
||||
</div>
|
||||
<div class="form-check">
|
||||
<input class="form-check-input" type="checkbox" name="SensitiveData" id="data-gov" value="government">
|
||||
<label class="form-check-label" for="data-gov">Government data</label>
|
||||
</div>
|
||||
<div class="form-check">
|
||||
<input class="form-check-input" type="checkbox" name="SensitiveData" id="data-payment" value="payment">
|
||||
<label class="form-check-label" for="data-payment">Payment card data</label>
|
||||
</div>
|
||||
</div>
|
||||
<small class="form-text text-muted py-3">Identifies required compliance frameworks.</small>
|
||||
</div>
|
||||
|
||||
<!-- Critical Business Systems -->
|
||||
<div class="mb-3 question" id="q9">
|
||||
<label for="integration-level" class="form-label mt-3">How integrated are your critical business systems?</label>
|
||||
<hr>
|
||||
<select class="form-select" id="integration-level" name="IntegrationLevel" required>
|
||||
<option value="fully-integrated">Fully integrated</option>
|
||||
<option value="partially-integrated">Partially integrated</option>
|
||||
<option value="mostly-separate">Mostly separate</option>
|
||||
<option value="completely-isolated">Completely isolated</option>
|
||||
</select>
|
||||
<small class="form-text text-muted py-3">Evaluates potential for cascade failures.</small>
|
||||
</div>
|
||||
|
||||
<!-- Remote Work Policy -->
|
||||
<div class="mb-3 question" id="q10">
|
||||
<label for="remote-policy" class="form-label mt-3">What is your organization's remote work policy?</label>
|
||||
<hr>
|
||||
<select class="form-select" id="remote-policy" name="RemotePolicy" required>
|
||||
<option value="no-remote">No remote work allowed</option>
|
||||
<option value="limited-remote">Limited remote work options</option>
|
||||
<option value="hybrid">Hybrid work model</option>
|
||||
<option value="fully-remote">Fully remote operations available</option>
|
||||
</select>
|
||||
<small class="form-text text-muted py-3">Determines the scope of remote access security requirements.</small>
|
||||
</div>
|
||||
|
||||
<div class="d-flex justify-content-end mt-4">
|
||||
<button type="button" class="btn btn-lg btn-outline-secondary me-3" id="back">Back</button>
|
||||
<button type="submit" class="btn btn-primary btn-lg" id="submit">Next</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{end}}
|
||||
|
||||
{{define "bottom"}}
|
||||
<script src="/static/js/formHandling.js"></script>
|
||||
{{end}}
|
||||
@@ -2,14 +2,19 @@
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<h1 class="pt-4 mt-5 mb-4">Risk Assessment Questions</h1>
|
||||
<div class="text-center">
|
||||
<img src="/static/img/steps-line.svg" class="img-fluid mt-3" alt="Steps image">
|
||||
</div>
|
||||
<h1 class="pt-4 mb-4">Risk Assessment Questions</h1>
|
||||
<hr>
|
||||
<form method="post">
|
||||
<!-- Organization Name -->
|
||||
<div class="mb-3 question" id="q0">
|
||||
<label for="name" class="form-label mt-3">What is the name of your organization?</label>
|
||||
<hr>
|
||||
<input type="text" class="form-control" id="name" name="Name" required>
|
||||
<div class="pb-3">
|
||||
<input type="text" class="form-control" id="name" name="Name" required>
|
||||
</div>
|
||||
<small class="form-text text-muted py-3">Name of the Organization that will appear in the
|
||||
report.</small>
|
||||
</div>
|
||||
@@ -18,8 +23,11 @@
|
||||
<div class="mb-3 question" id="q1">
|
||||
<label for="email" class="form-label mt-3">What is your email?</label>
|
||||
<hr>
|
||||
<input type="email" class="form-control" id="email" name="Email" required>
|
||||
<small class="form-text text-muted py-3">Email of the person responsible for using Risklet. Report
|
||||
<div class="pb-3">
|
||||
<input type="email" class="form-control" id="email" name="Email" required>
|
||||
</div>
|
||||
<small class="form-text text-muted py-3">Email of the person responsible for using Risklet.
|
||||
Report
|
||||
and
|
||||
magic link for login will be sent to this email.</small>
|
||||
</div>
|
||||
@@ -28,7 +36,7 @@
|
||||
<div class="mb-3 question" id="q2">
|
||||
<label class="form-label mt-3">What is your organization's current employee headcount?</label>
|
||||
<hr>
|
||||
<div>
|
||||
<div class="pb-3">
|
||||
<div class="form-check">
|
||||
<input class="form-check-input" type="radio" name="Employees" id="employees-1-10"
|
||||
value="1-10" required>
|
||||
@@ -58,7 +66,7 @@
|
||||
<div class="mb-3 question" id="q3">
|
||||
<label class="form-label mt-3">What is your organization's annual revenue range?</label>
|
||||
<hr>
|
||||
<div>
|
||||
<div class="pb-3">
|
||||
<div class="form-check">
|
||||
<input class="form-check-input" type="radio" name="Revenue" id="revenue-under-1m"
|
||||
value="under-1m" required>
|
||||
@@ -90,7 +98,7 @@
|
||||
<label class="form-label mt-3">How many critical business applications do your employees use
|
||||
daily?</label>
|
||||
<hr>
|
||||
<div>
|
||||
<div class="pb-3">
|
||||
<div class="form-check">
|
||||
<input class="form-check-input" type="radio" name="Applications" id="apps-1-5" value="1-5"
|
||||
required>
|
||||
@@ -121,7 +129,7 @@
|
||||
<label class="form-label mt-3">Which regulatory frameworks is your organization required to comply
|
||||
with?</label>
|
||||
<hr>
|
||||
<div>
|
||||
<div class="pb-3">
|
||||
<div class="form-check">
|
||||
<input class="form-check-input" type="checkbox" name="Compliance" id="compliance-gdpr"
|
||||
value="gdpr">
|
||||
@@ -216,8 +224,8 @@
|
||||
<input type="range" class="form-range" id="it-dependency" name="ITDependency" min="1" max="10"
|
||||
required>
|
||||
<div class="d-flex justify-content-between">
|
||||
<span>Not dependent at all</span>
|
||||
<span>Heavily dependent</span>
|
||||
<span class="text-muted">Not dependent at all</span>
|
||||
<span class="text-muted text-end">Heavily dependent</span>
|
||||
</div>
|
||||
<small class="form-text text-muted py-3">Measures the potential business impact of IT disruptions
|
||||
and
|
||||
@@ -228,7 +236,7 @@
|
||||
<div class="mb-3 question" id="q8">
|
||||
<label class="form-label mt-3">What level of sensitive data does your organization process?</label>
|
||||
<hr>
|
||||
<div>
|
||||
<div class="pb-3">
|
||||
<div class="form-check">
|
||||
<input class="form-check-input" type="radio" name="DataSensitivity" id="data-public"
|
||||
value="public" required>
|
||||
@@ -265,7 +273,7 @@
|
||||
<label class="form-label mt-3">What best describes your organization's network infrastructure
|
||||
model?</label>
|
||||
<hr>
|
||||
<div>
|
||||
<div class="pb-3">
|
||||
<div class="form-check">
|
||||
<input class="form-check-input" type="radio" name="NetworkSegmentation" id="network-flat"
|
||||
value="flat" required>
|
||||
@@ -296,7 +304,7 @@
|
||||
<div class="mb-3 question" id="q10">
|
||||
<label class="form-label mt-3">What percentage of your workforce operates remotely?</label>
|
||||
<hr>
|
||||
<div>
|
||||
<div class="pb-3">
|
||||
<div class="form-check">
|
||||
<input class="form-check-input" type="radio" name="RemoteWork" id="remote-none" value="none"
|
||||
required>
|
||||
@@ -326,7 +334,7 @@
|
||||
<div class="mb-3 question" id="q11">
|
||||
<label class="form-label mt-3">How many third-party vendors have access to your systems?</label>
|
||||
<hr>
|
||||
<div>
|
||||
<div class="pb-3">
|
||||
<div class="form-check">
|
||||
<input class="form-check-input" type="radio" name="VendorAccess" id="vendor-none"
|
||||
value="none" required>
|
||||
@@ -357,7 +365,7 @@
|
||||
<label class="form-label mt-3">What is the extent of your internal software development
|
||||
activities?</label>
|
||||
<hr>
|
||||
<div>
|
||||
<div class="pb-3">
|
||||
<div class="form-check">
|
||||
<input class="form-check-input" type="radio" name="InternalDev" id="dev-none" value="none"
|
||||
required>
|
||||
@@ -384,16 +392,37 @@
|
||||
</div>
|
||||
|
||||
|
||||
<div class="mb-3 question" id="q13">
|
||||
|
||||
|
||||
<label class="form-label mt-3">We have enough information for a basic report. Would you like to
|
||||
provide more
|
||||
details ?</label>
|
||||
<hr>
|
||||
<div class="text-center">
|
||||
<div class="text-center pb-3">
|
||||
<input class="btn btn-warning btn-lg" type="submit" name="HalfSubmit" id="halfsubmit"
|
||||
value="Generate report with basic data. ">
|
||||
</div>
|
||||
</div>
|
||||
<small class="form-text text-muted py-3">Click Next if you want to provide more details. Each
|
||||
question is
|
||||
optional.</small>
|
||||
</div>
|
||||
|
||||
|
||||
<!-- skip rest if needed -->
|
||||
|
||||
<!-- Geographic Operational Scope -->
|
||||
<div class="mb-3 question" id="q13">
|
||||
<div class="mb-3 question" id="q14">
|
||||
|
||||
|
||||
<label class="form-label mt-3">What is your organization's geographic operational scope?</label>
|
||||
<hr>
|
||||
<div>
|
||||
<div class="pb-3">
|
||||
<div class="form-check">
|
||||
<input class="form-check-input" type="radio" name="GeoScope" id="geo-single-country"
|
||||
value="single-country" required>
|
||||
value="single-country">
|
||||
<label class="form-check-label" for="geo-single-country">Single country</label>
|
||||
</div>
|
||||
<div class="form-check">
|
||||
@@ -418,13 +447,13 @@
|
||||
</div>
|
||||
|
||||
|
||||
<div class="mb-3 question" id="q14">
|
||||
<div class="mb-3 question" id="q15">
|
||||
<label class="form-label mt-3">How would you characterize your customer base distribution?</label>
|
||||
<hr>
|
||||
<div>
|
||||
<div class="pb-3">
|
||||
<div class="form-check">
|
||||
<input class="form-check-input" type="radio" name="CustomerBase" id="customer-few-key"
|
||||
value="few-key" required>
|
||||
value="few-key">
|
||||
<label class="form-check-label" for="customer-few-key">Few key clients (1-5)</label>
|
||||
</div>
|
||||
<div class="form-check">
|
||||
@@ -444,13 +473,13 @@
|
||||
|
||||
|
||||
<!-- Primary Customer Type -->
|
||||
<div class="mb-3 question" id="q15">
|
||||
<div class="mb-3 question" id="q16">
|
||||
<label class="form-label mt-3">What is your primary customer type?</label>
|
||||
<hr>
|
||||
<div>
|
||||
<div class="pb-3">
|
||||
<div class="form-check">
|
||||
<input class="form-check-input" type="radio" name="CustomerType" id="customer-b2b"
|
||||
value="b2b" required>
|
||||
value="b2b">
|
||||
<label class="form-check-label" for="customer-b2b">Primarily B2B</label>
|
||||
</div>
|
||||
<div class="form-check">
|
||||
@@ -469,13 +498,13 @@
|
||||
|
||||
|
||||
<!-- Product/Service Portfolio -->
|
||||
<div class="mb-3 question" id="q16">
|
||||
<div class="mb-3 question" id="q17">
|
||||
<label class="form-label mt-3">How diversified is your product/service portfolio?</label>
|
||||
<hr>
|
||||
<div>
|
||||
<div class="pb-3">
|
||||
<div class="form-check">
|
||||
<input class="form-check-input" type="radio" name="ProductPortfolio" id="portfolio-single"
|
||||
value="single" required>
|
||||
value="single">
|
||||
<label class="form-check-label" for="portfolio-single">Single product/service</label>
|
||||
</div>
|
||||
<div class="form-check">
|
||||
@@ -495,13 +524,13 @@
|
||||
</div>
|
||||
|
||||
<!-- Supplier Base Structure -->
|
||||
<div class="mb-3 question" id="q17">
|
||||
<div class="mb-3 question" id="q18">
|
||||
<label class="form-label mt-3">What is your supplier base structure?</label>
|
||||
<hr>
|
||||
<div>
|
||||
<div class="pb-3">
|
||||
<div class="form-check">
|
||||
<input class="form-check-input" type="radio" name="SupplierBase"
|
||||
id="supplier-single-critical" value="single-critical" required>
|
||||
id="supplier-single-critical" value="single-critical">
|
||||
<label class="form-check-label" for="supplier-single-critical">Single/few critical
|
||||
suppliers</label>
|
||||
</div>
|
||||
@@ -521,10 +550,10 @@
|
||||
</div>
|
||||
|
||||
<!-- IT Infrastructure Model -->
|
||||
<div class="mb-3 question" id="q18">
|
||||
<div class="mb-3 question" id="q19">
|
||||
<label class="form-label mt-3">What is your primary IT infrastructure model?</label>
|
||||
<hr>
|
||||
<div>
|
||||
<div class="pb-3">
|
||||
<div class="form-check">
|
||||
<input class="form-check-input" type="checkbox" name="ITInfrastructure" id="it-on-prem"
|
||||
value="on-premises">
|
||||
@@ -555,11 +584,11 @@
|
||||
</div>
|
||||
|
||||
<!-- Intellectual Property Protection -->
|
||||
<div class="mb-3 question" id="q19">
|
||||
<div class="mb-3 question" id="q20">
|
||||
<label class="form-label mt-3">How does your organization protect and manage intellectual
|
||||
property?</label>
|
||||
<hr>
|
||||
<div>
|
||||
<div class="pb-3">
|
||||
<div class="form-check">
|
||||
<input class="form-check-input" type="checkbox" name="IPProtection" id="ip-patents"
|
||||
value="patents">
|
||||
@@ -591,10 +620,10 @@
|
||||
</div>
|
||||
|
||||
<!-- Sensitive Data -->
|
||||
<div class="mb-3 question" id="q20">
|
||||
<div class="mb-3 question" id="q21">
|
||||
<label class="form-label mt-3">What type of sensitive data does your organization handle?</label>
|
||||
<hr>
|
||||
<div>
|
||||
<div class="pb-3">
|
||||
<div class="form-check">
|
||||
<input class="form-check-input" type="checkbox" name="SensitiveData" id="data-personal"
|
||||
value="personal">
|
||||
@@ -626,17 +655,17 @@
|
||||
<label class="form-check-label" for="data-payment">Payment card data</label>
|
||||
</div>
|
||||
</div>
|
||||
<small class="form-text text-muted py-3">Identifies required compliance frameworks.</small>
|
||||
<small class="form-text text-muted py-3">Identifies compliance frameworks.</small>
|
||||
</div>
|
||||
|
||||
<!-- Critical Business Systems -->
|
||||
<div class="mb-3 question" id="q21">
|
||||
<div class="mb-3 question" id="q22">
|
||||
<label class="form-label mt-3">How integrated are your critical business systems?</label>
|
||||
<hr>
|
||||
<div>
|
||||
<div class="pb-3">
|
||||
<div class="form-check">
|
||||
<input class="form-check-input" type="radio" name="IntegrationLevel"
|
||||
id="integration-fully-integrated" value="fully-integrated" required>
|
||||
id="integration-fully-integrated" value="fully-integrated">
|
||||
<label class="form-check-label" for="integration-fully-integrated">Fully integrated</label>
|
||||
</div>
|
||||
<div class="form-check">
|
||||
@@ -660,38 +689,6 @@
|
||||
<small class="form-text text-muted py-3">Evaluates potential for cascade failures.</small>
|
||||
</div>
|
||||
|
||||
<!-- Remote Work Policy -->
|
||||
<div class="mb-3 question" id="q22">
|
||||
<label class="form-label mt-3">What is your organization's remote work policy?</label>
|
||||
<hr>
|
||||
<div>
|
||||
<div class="form-check">
|
||||
<input class="form-check-input" type="radio" name="RemotePolicy" id="remote-no-remote"
|
||||
value="no-remote" required>
|
||||
<label class="form-check-label" for="remote-no-remote">No remote work allowed</label>
|
||||
</div>
|
||||
<div class="form-check">
|
||||
<input class="form-check-input" type="radio" name="RemotePolicy" id="remote-limited-remote"
|
||||
value="limited-remote">
|
||||
<label class="form-check-label" for="remote-limited-remote">Limited remote work
|
||||
options</label>
|
||||
</div>
|
||||
<div class="form-check">
|
||||
<input class="form-check-input" type="radio" name="RemotePolicy" id="remote-hybrid"
|
||||
value="hybrid">
|
||||
<label class="form-check-label" for="remote-hybrid">Hybrid work model</label>
|
||||
</div>
|
||||
<div class="form-check">
|
||||
<input class="form-check-input" type="radio" name="RemotePolicy" id="remote-fully-remote"
|
||||
value="fully-remote">
|
||||
<label class="form-check-label" for="remote-fully-remote">Fully remote operations
|
||||
available</label>
|
||||
</div>
|
||||
</div>
|
||||
<small class="form-text text-muted py-3">Determines the scope of remote access security
|
||||
requirements.</small>
|
||||
</div>
|
||||
|
||||
<div class="d-flex justify-content-end mt-4">
|
||||
<button type="button" class="btn btn-lg btn-outline-secondary me-3" id="back">Back</button>
|
||||
<button type="submit" class="btn btn-primary btn-lg" id="submit">Next</button>
|
||||
|
||||
13
application/views/thankyou.html
Normal file
13
application/views/thankyou.html
Normal file
@@ -0,0 +1,13 @@
|
||||
{{define "content"}}
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<h1 class="pt-4 mt-5 mb-4">Thank you</h1>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{end}}
|
||||
|
||||
{{define "bottom"}}
|
||||
<script src="/static/js/formHandling.js"></script>
|
||||
{{end}}
|
||||
Reference in New Issue
Block a user