Skip to content
Snippets Groups Projects
Commit ede9a55f authored by Remco Tukker's avatar Remco Tukker
Browse files

basic survey frontend

parent f199338d
No related branches found
No related tags found
No related merge requests found
{
"presets": [
"@babel/preset-env",
"@babel/preset-react",
"@babel/preset-typescript"
],
"plugins": [
[
"@babel/plugin-transform-runtime",
{
"regenerator": true
}
],
"@babel/plugin-proposal-class-properties"
]
}
**/*.css
**/*.scss
{
"parser": "@typescript-eslint/parser",
"parserOptions": {
"ecmaVersion": 2018,
"sourceType": "module"
},
"plugins": [
"@typescript-eslint",
"react-hooks"
],
"extends": [
"eslint:recommended",
"plugin:react/recommended",
"plugin:@typescript-eslint/recommended"
],
"rules": {
"react-hooks/rules-of-hooks": "error",
"react-hooks/exhaustive-deps": "warn",
"react/prop-types": "off",
"@typescript-eslint/no-unused-vars": [
"warn", { "argsIgnorePattern": "^_" }
]
},
"settings": {
"react": {
"pragma": "React",
"version": "detect"
}
}
}
\ No newline at end of file
Source diff could not be displayed: it is too large. Options to address this: view the blob.
{
"devDependencies": {
"@babel/core": "^7.22.1",
"@babel/plugin-proposal-class-properties": "^7.18.6",
"@babel/plugin-transform-runtime": "^7.22.4",
"@babel/preset-env": "^7.22.4",
"@babel/preset-react": "^7.22.3",
"@babel/preset-typescript": "^7.21.5",
"@babel/runtime": "^7.22.3",
"@types/react": "^18.2.8",
"@types/react-dom": "^18.2.4",
"@types/react-router-dom": "^5.3.3",
"@types/webpack": "^5.28.1",
"@typescript-eslint/eslint-plugin": "^5.59.8",
"@typescript-eslint/parser": "^5.59.8",
"babel-loader": "^9.1.2",
"css-loader": "^6.8.1",
"eslint": "^8.42.0",
"eslint-plugin-react": "^7.32.2",
"eslint-plugin-react-hooks": "^4.6.0",
"fork-ts-checker-webpack-plugin": "^8.0.0",
"image-webpack-loader": "^8.1.0",
"sass": "^1.62.1",
"sass-loader": "^13.3.1",
"style-loader": "^3.3.3",
"ts-node": "^10.9.1",
"typescript": "^5.1.3",
"url-loader": "^4.1.1",
"webpack": "^5.85.0",
"webpack-cli": "^5.1.2",
"webpack-dev-server": "^4.15.0"
},
"resolutions": {
"@types/webpack": "^5.28.0",
"@types/webpack-dev-server": "^4.7.2"
},
"scripts": {
"start": "webpack serve --mode development --open --port 4000",
"build": "webpack --mode production"
},
"dependencies": {
"bootstrap": "^5.3.0",
"react": "^18.2.0",
"react-bootstrap": "^2.7.4",
"react-dom": "^18.2.0",
"react-icons": "^4.9.0",
"react-router-dom": "^6.11.2",
"survey-react-ui": "^1.9.90"
}
}
import React, { useCallback } from 'react';
import { createRoot } from 'react-dom/client';
//import 'bootstrap/dist/css/bootstrap.min.css';
import 'survey-core/defaultV2.min.css';
import surveyJson from './survey_model.json';
import { Model } from 'survey-core';
import { Survey } from 'survey-react-ui';
const container = document.getElementById('root') as HTMLElement;
const root = createRoot(container);
const survey = new Model(surveyJson);
// const surveyComplete = useCallback((sender) => {
// console.log(sender.data);
// }, []);
survey.onComplete.add((sender) => { console.log(sender.data) });
root.render(
<React.StrictMode>
<Survey model={survey} />
</React.StrictMode>
)
\ No newline at end of file
{
"title": "Compendium",
"logoPosition": "right",
"pages": [
{
"name": "organization",
"elements": [
{
"type": "panel",
"name": "panel1",
"elements": [
{
"type": "text",
"name": "budget",
"title": "What is your NRENs budget for 2023 or 2023/2024 in million euro?",
"description": "If your budget is not per calendar year, please provide figures for the budget that covers the largest part of 2023 including GEANT subsidy.",
"inputType": "number"
},
{
"type": "multipletext",
"name": "income_sources",
"title": "Estimate (in % of income) the sources of your NREN-related income for 2023 or 2023/2024.",
"description": "European Funding should include GÉANT funding.",
"items": [
{
"name": "client_institutions",
"inputType": "number",
"title": "Client institutions (universities/schools/research institutes/commercial/other)"
},
{
"name": "gov_public_bodies",
"inputType": "number",
"title": "Government/public bodies"
},
{
"name": "european_funding",
"inputType": "number",
"title": "European funding"
},
{
"name": "commercial",
"inputType": "number",
"title": "Commercial services (e.g. domain reg, security)"
},
{
"name": "other",
"inputType": "number",
"title": "Other"
}
]
},
{
"type": "dropdown",
"name": "charging_mechanism",
"title": "How do you charge your client institutions?",
"choices": [
{
"value": "no_charge",
"text": "We do not charge them directly"
},
{
"value": "flat_fee",
"text": "We charge a flat fee, based on bandwidth"
},
{
"value": "usage_based_fee",
"text": "We charge a usage-based fee"
},
{
"value": "combination",
"text": "We use a combination of flat fee and usage-based fee"
},
{
"value": "other",
"text": "Other"
}
]
}
],
"title": "Budget, Income and Billing"
},
{
"type": "panel",
"name": "staff",
"elements": [
{
"type": "multipletext",
"name": "staff_employment_type",
"title": "What is the number of staff engaged in the NREN activities? ",
"description": "Please distinguish permanent\f and subcontracted using the boxes below. Please put answer in Full Time Equivalent (FTE's).",
"items": [
{
"name": "permanent_fte",
"inputType": "number",
"title": "Permanent staff"
},
{
"name": "subcontracted_fte",
"inputType": "number",
"title": "Subcontracted staff"
}
]
},
{
"type": "multipletext",
"name": "staff_roles",
"title": "5. Which of the following functional areas does your NREN have and how much FTE is dedicated to each? ",
"items": [
{
"name": "technical_fte",
"title": "Technical roles"
},
{
"name": "nontechnical_fte",
"title": "Non-technical roles"
}
]
},
{
"type": "boolean",
"name": "parent_organization",
"title": "Is your NREN part of a larger organisation (e.g. ministry, university)?"
},
{
"type": "text",
"name": "parent_organization_name",
"visible": false,
"visibleIf": "{parent_organization} = true",
"title": "What is the name of this larger organisation?"
},
{
"type": "boolean",
"name": "suborganizations",
"title": "Does your NREN have sub-organisations?"
},
{
"type": "matrixdynamic",
"name": "suborganization_details",
"visible": false,
"visibleIf": "{suborganizations} = true",
"title": "Please fill in the details:",
"columns": [
{
"name": "suborganization_name",
"title": "Name of your sub-organisation?",
"cellType": "text",
"isRequired": true
},
{
"name": "suborganization_role",
"title": "Role of your sub-organisation?",
"cellType": "dropdown",
"choices": [
"todo"
],
"showOtherItem": true
}
],
"choices": [
1,
2,
3,
4,
5
],
"rowCount": 1,
"minRowCount": 1,
"maxRowCount": 30
},
{
"type": "boolean",
"name": "ec_projects",
"title": "Other than GÉANT, is your NREN involved in other EC projects?"
},
{
"type": "matrixdynamic",
"name": "ec_project_names",
"visible": false,
"visibleIf": "{ec_projects} = true",
"title": "Please list the name of the projects\n",
"description": "Use one line per project.",
"columns": [
{
"name": "ec_project_name",
"title": "Project name",
"cellType": "text"
}
],
"choices": [
1,
2,
3,
4,
5
],
"rowCount": 1,
"minRowCount": 1
}
],
"title": "Staff and Projects"
},
{
"type": "panel",
"name": "basic_information",
"elements": [
{
"type": "text",
"name": "full_name_english",
"title": "Full name of the organisation (in English):"
},
{
"type": "text",
"name": "full_name_national_languages",
"title": "Full name of the organisation in the national language(s):",
"description": "Please use the Latin alphabet."
},
{
"type": "text",
"name": "abbreviation_english",
"title": "Abbreviation in English (if applicable):",
"description": "Please always provide this information."
},
{
"type": "text",
"name": "abbreviation_local_languages",
"title": "Abbreviation in the national language(s) (if applicable):",
"description": "Please always provide this information. Please use the Latin alphabet."
},
{
"type": "text",
"name": "street_name_and_number",
"title": "Number and street name:"
},
{
"type": "text",
"name": "city",
"title": "Postal town (county):"
},
{
"type": "text",
"name": "postal_code",
"title": "Postal Code:"
},
{
"type": "dropdown",
"name": "country",
"title": "Country:",
"isRequired": true,
"choices": [
"TODO"
]
},
{
"type": "text",
"name": "phone_number",
"title": "Phone number:",
"inputType": "tel"
},
{
"type": "text",
"name": "email_address",
"title": "General email address:",
"inputType": "email"
},
{
"type": "text",
"name": "website",
"title": "Website:",
"inputType": "url"
}
],
"title": "Basic Information"
},
{
"type": "comment",
"name": "organization_comments",
"title": "Comments regarding this section:"
}
],
"title": "Organisation"
},
{
"name": "policies",
"elements": [
{
"type": "panel",
"name": "policy",
"elements": [
{
"type": "radiogroup",
"name": "corporate_strategy",
"title": "Have you made any updates to your corporate strategy over the last year?",
"choices": [
{
"value": "yes",
"text": "Yes"
},
{
"value": "no",
"text": "No"
}
]
},
{
"type": "text",
"name": "corporate_strategy_url",
"title": "Please provide the URL for your latest corporate strategic plan?",
"inputType": "url"
},
{
"type": "radiogroup",
"name": "environmental_policy",
"title": "Does your NREN have an Environmental Policy?",
"choices": [
{
"value": "yes",
"text": "Yes"
},
{
"value": "no",
"text": "No"
},
{
"value": "item1",
"text": "TODO more?"
}
]
},
{
"type": "text",
"name": "environmental_policy_url",
"visible": false,
"visibleIf": "{environmental_policy} = 'yes'",
"indent": 1,
"title": "Please provide the URL",
"inputType": "url"
},
{
"type": "radiogroup",
"name": "equal_opportunity_policy",
"title": "Does your NREN have an Equality Opportunity Policy?",
"choices": [
{
"value": "yes",
"text": "Yes"
},
{
"value": "no",
"text": "No"
},
{
"value": "Item 3",
"text": "TODO more?"
}
]
},
{
"type": "text",
"name": "equal_opportunity_url",
"visible": false,
"visibleIf": "{equal_opportunity_policy} = 'yes'",
"indent": 1,
"title": "Please provide the URL",
"inputType": "url"
},
{
"type": "radiogroup",
"name": "gender_equality_policy",
"title": "Does your NREN have a Gender Equality Policy?",
"choices": [
{
"value": "yes",
"text": "Yes"
},
"No",
{
"value": "Item 3",
"text": "TODO more?"
}
]
},
{
"type": "text",
"name": "gender_equality_url",
"visible": false,
"visibleIf": "{gender_equality_policy} = 'yes'",
"indent": 1,
"title": "Please provide the URL",
"inputType": "url"
},
{
"type": "radiogroup",
"name": "connectivity_policy",
"title": "Does your NREN have a connectivity policy?",
"choices": [
{
"value": "yes",
"text": "Yes"
},
{
"value": "no",
"text": "No"
},
{
"value": "Item 3",
"text": "TODO more?"
}
]
},
{
"type": "text",
"name": "connectivity_policy_url",
"visible": false,
"visibleIf": "{connectivity_policy} = 'yes'",
"indent": 1,
"title": "Please provide the URL",
"inputType": "url"
},
{
"type": "radiogroup",
"name": "acceptable_use_policy",
"title": "Does your NREN have an acceptable use policy (AUP)?",
"choices": [
{
"value": "yes",
"text": "Yes"
},
{
"value": "no",
"text": "No"
},
{
"value": "Item 3",
"text": "TODO more?"
}
]
},
{
"type": "text",
"name": "question2",
"visible": false,
"visibleIf": "{acceptable_use_policy} = 'yes'",
"indent": 1,
"title": "Please provide the URL",
"inputType": "url"
},
{
"type": "radiogroup",
"name": "privacy_notice",
"title": "Do you have an organisational privacy notice?",
"choices": [
{
"value": "yes",
"text": "Yes"
},
{
"value": "no",
"text": "No"
},
{
"value": "Item 3",
"text": "TODO more?"
}
]
},
{
"type": "text",
"name": "privacy_notice_url",
"visible": false,
"visibleIf": "{privacy_notice} = 'yes'",
"indent": 1,
"title": "Please provide the URL",
"inputType": "url"
},
{
"type": "radiogroup",
"name": "data_protection_contact",
"title": "Do you have a dedicated contact for data protection, privacy or GDPR queries?",
"choices": [
{
"value": "yes",
"text": "Yes"
},
{
"value": "no",
"text": "No"
},
{
"value": "Item 3",
"text": "TODO more?"
}
]
},
{
"type": "text",
"name": "data_protection_url",
"visibleIf": "{data_protection_contact} = 'yes'",
"indent": 1,
"title": "Please provide the URL",
"inputType": "url"
},
{
"type": "radiogroup",
"name": "central_software_procurement",
"title": "Do you centrally procure software for your customers?",
"choices": [
{
"value": "yes",
"text": "Yes"
},
{
"value": "no",
"text": "No"
},
{
"value": "Item 3",
"text": "TODO more?"
}
]
},
{
"type": "text",
"name": "central_procurement_amount",
"visible": false,
"visibleIf": "{central_software_procurement} = 'yes'",
"indent": 1,
"title": "What is the total amount (in Euro) that you procured in 2021 or 2021/2022 on behalf of your customers?",
"inputType": "number"
},
{
"type": "radiogroup",
"name": "formal_service_management_framework",
"title": "Does your NREN operate a formal service management framework for all of your services?",
"choices": [
{
"value": "yes",
"text": "Yes"
},
{
"value": "no",
"text": "No"
},
{
"value": "Item 3",
"text": "TODO more?"
}
]
},
{
"type": "radiogroup",
"name": "service_level_targets",
"title": "Are Service Level Targets available for your NREN services?",
"choices": [
{
"value": "yes",
"text": "Yes"
},
{
"value": "no",
"text": "No"
},
{
"value": "Item 3",
"text": "TODO more?"
}
]
},
{
"type": "boolean",
"name": "service_portfolio_changes",
"title": "Has your NREN made any changes to its service portfolio for its users?",
"description": "Please note any changes here and amend the Service Matrix directly at https://compendiumdatabase.geant.org/reports/nrens_services"
},
{
"type": "matrixdropdown",
"name": "service_matrix",
"title": "Which service types are available for which user types?",
"columns": [
{
"name": "Column 1",
"title": "User types",
"cellType": "checkbox",
"choices": [
{
"value": "item1",
"text": "Universities"
},
{
"value": "item2",
"text": "Further education"
},
{
"value": "item3",
"text": "Research institutes"
},
{
"value": "item4",
"text": "International Research Organisations"
},
{
"value": "item5",
"text": "Primary Schools"
},
{
"value": "item6",
"text": "Secondary Schools"
},
{
"value": "item7",
"text": "Cultural Institutions"
},
{
"value": "item8",
"text": "(Non-research) hospitals"
},
{
"value": "item9",
"text": "Government"
},
{
"value": "item10",
"text": "For profit organisations"
}
]
}
],
"choices": [
1,
2,
3,
4,
5
],
"rows": [
{
"value": "Row 1",
"text": "Network services"
},
{
"value": "Row 2",
"text": "ISP support"
},
{
"value": "Row 3",
"text": "Security"
},
{
"value": "Row 4",
"text": "Identity/T&I"
},
{
"value": "Row 5",
"text": "Collaboration"
},
{
"value": "Row 6",
"text": "Multimedia"
},
{
"value": "Row 7",
"text": "Storage and Hosting"
},
{
"value": "Row 8",
"text": "Professional services"
}
]
},
{
"type": "boolean",
"name": "service_portfolio_eosc_portal",
"title": "Are any of the services in your service portfolio listed on the EOSC portal?"
},
{
"type": "matrixdynamic",
"name": "services_on_eosc_portal_list",
"visible": false,
"visibleIf": "{service_portfolio_eosc_portal} = true",
"indent": 1,
"title": "Can you list them?",
"columns": [
{
"name": "Column 1",
"title": "Service name",
"cellType": "text"
}
],
"choices": [
1,
2,
3,
4,
5
],
"cellType": "text",
"rowCount": 1,
"minRowCount": 1,
"maxRowCount": 50
}
],
"title": "Policy & Portfolio"
},
{
"type": "panel",
"name": "standards",
"elements": [
{
"type": "radiogroup",
"name": "audits",
"title": "Do you have external or internal audits of your information security management systems e.g. risk management and policies?",
"choices": [
{
"value": "yes",
"text": "Yes"
},
{
"value": "no",
"text": "No"
},
{
"value": "Item 3",
"text": "TODO more?"
}
]
},
{
"type": "text",
"name": "audit_specifics",
"visible": false,
"visibleIf": "{audits} = 'yes'",
"indent": 1,
"title": "Please specify ( for example a certified security auditor on ISO 27001 is performing the audits):"
},
{
"type": "radiogroup",
"name": "business_continuity_plans",
"title": "Do you have Business Continuity plans in place to ensure business continuation and operations?",
"choices": [
{
"value": "yes",
"text": "Yes"
},
{
"value": "no",
"text": "No"
},
{
"value": "Item 3",
"text": "TODO more?"
}
]
},
{
"type": "text",
"name": "business_continuity_plans_specifics",
"visible": false,
"visibleIf": "{business_continuity_plans} = 'yes'",
"indent": 1,
"title": "Please specify if you comply with any international standard and if you test the continuity plans regularly."
},
{
"type": "radiogroup",
"name": "crisis_management_procedure",
"title": "Does your NREN have a formal crisis management procedure?",
"choices": [
{
"value": "yes",
"text": "Yes"
},
{
"value": "no",
"text": "No"
},
{
"value": "Item 3",
"text": "TODO more?"
}
]
},
{
"type": "checkbox",
"name": "crisis_exercises",
"title": "Does your NREN run or participate in crisis exercises to test procedures and train employees?",
"description": "Multiple answers possible, in the last 12 months",
"choices": [
{
"value": "Item 1",
"text": "We participate in GEANT Crisis workshops such as CLAW"
},
{
"value": "Item 2",
"text": "We participated in National crisis exercises "
},
{
"value": "Item 3",
"text": "We run our own tabletop exercises"
},
{
"value": "Item 4",
"text": "We run our own simulation exercises"
},
{
"value": "Item 5",
"text": " We have done/participated in other exercises or trainings"
},
{
"value": "Item 6",
"text": "We had a real crisis"
},
{
"value": "Item 7",
"text": "No, we have not done any crisis exercises or trainings"
}
]
},
{
"type": "checkbox",
"name": "security_controls",
"title": "Do you utilise security controls such as anti-virus, integrity checkers and systemic firewalls to protect your assets?",
"choices": [
{
"value": "Item 1",
"text": "Anti Virus"
},
{
"value": "Item 2",
"text": "Anti-Spam"
},
{
"value": "Item 3",
"text": "Firewall"
},
{
"value": "Item 4",
"text": "DDoS mitigation"
},
{
"value": "Item 5",
"text": "Network monitoring"
},
{
"value": "Item 6",
"text": "IPS/IDS"
},
{
"value": "Item 7",
"text": "ACL"
},
{
"value": "Item 8",
"text": "Network segmentation"
},
{
"value": "Item 9",
"text": " Integrity checking"
}
],
"showOtherItem": true
}
],
"title": "Standards"
},
{
"type": "comment",
"name": "policy_comments",
"title": "Comments regarding this section:"
}
],
"title": "Standards & Policies"
},
{
"name": "connected_users",
"elements": [
{
"type": "panel",
"name": "panel2",
"elements": [
{
"type": "text",
"name": "connected_sites_list",
"title": "Please provide a URL that lists the sites that are connected to the NREN, if available:",
"inputType": "url"
},
{
"type": "matrixdropdown",
"name": "connectivity_proportions",
"title": "Please give an estimate of the proportion of the institutions in each category for which your NREN provides IP connectivity: ",
"description": "or the questions in this section, please use the ISCED 2011 classification system (the UNESCO scheme for International Standard Classification of Education) as follows: * Level 8 - Doctorate or equivalent level * Level 7 - Masters or equivalent level * Level 6 - Bachelors or equivalent level * Level 5 - Short-cycle tertiary education * Level 4 - Post-secondary non-tertiary education. This can include, for example, short vocational training programmes * Levels 2 and 3: Secondary education * Level 1: Primary or basic education * Level 0: Pre-primary education",
"columns": [
{
"name": "covered",
"title": "Does your remit cover connectivity to this institution type:",
"cellType": "dropdown",
"choices": [
{
"value": "item1",
"text": "TODO"
},
{
"value": "item2",
"text": "Yes - TODO"
},
{
"value": "item3",
"text": "In some circumstances"
},
{
"value": "item4",
"text": "No - TODO"
}
]
},
{
"name": "nr_connected",
"title": "Number of institutions connected in this category (actual number):",
"cellType": "text",
"inputType": "number",
"min": 0
},
{
"name": "market_share_percentage",
"title": "% market share of institutions connected in this category:",
"cellType": "text",
"inputType": "number",
"min": 0,
"max": 100,
"step": 1
},
{
"name": "nr_of_users",
"title": "Number of users served in this category (actual number):",
"cellType": "text",
"inputType": "number",
"min": 0
}
],
"choices": [
1,
2,
3,
4,
5
],
"cellType": "text",
"rows": [
{
"value": "Row 1",
"text": "Universities & Other (ISCED 6-8)"
},
{
"value": "Row 2",
"text": "Further education (ISCED 4-5)"
},
{
"value": "Row 3",
"text": "Secondary schools (ISCED 2-3)"
},
{
"value": "Row 4",
"text": "Primary schools (ISCED 1)"
},
{
"value": "Row 5",
"text": "Research Institutes"
},
{
"value": "Row 6",
"text": "Libraries, Museums, Archives, Cultural institutions"
},
{
"value": "Row 7",
"text": "Non-university public Hospitals "
},
{
"value": "Row 8",
"text": "Government departments (national, regional, local)"
},
{
"value": "Row 9",
"text": "International (virtual) research organisations"
},
{
"value": "Row 10",
"text": "For-profit organisations \t"
}
]
},
{
"type": "matrixdropdown",
"name": "connectivity_level",
"title": "Level of IP connectivity by Institution type:",
"description": "This table explores the average level of connectivity for each type of institution to the NREN. Please enter the typical and the highest capacity at which institutions in this category are connected ( in Mbit/s). As a minimum, please provide this information for Universities and Research institutes.",
"columns": [
{
"name": "Column 1",
"title": "Typical link speed (Mbit/s):",
"cellType": "text",
"inputType": "number",
"min": 0
},
{
"name": "Column 2",
"title": "Highest speed link (Mbit/s):",
"cellType": "text",
"inputType": "number",
"min": 0
},
{
"name": "Column 3",
"title": "Proportionally how many institutions in this category are connected at the highest capacity? (%):",
"cellType": "text",
"inputType": "number",
"min": 0,
"max": 100
}
],
"choices": [
1,
2,
3,
4,
5
],
"cellType": "text",
"rows": [
{
"value": "Row 1",
"text": "Universities & Other (ISCED 6-8)"
},
{
"value": "Row 2",
"text": "Further education (ISCED 4-5) \t"
},
{
"value": "Row 3",
"text": "Secondary schools (ISCED 2-3)"
},
{
"value": "Row 4",
"text": "Primary schools (ISCED 1)"
},
{
"value": "Row 5",
"text": "Research Institutes"
},
{
"value": "Row 6",
"text": "Libraries, Museums, Archives, Cultural institutions"
},
{
"value": "Row 7",
"text": "Non-university Hospitals (public)"
},
{
"value": "Row 8",
"text": "Government departments (national, regional, local)"
},
{
"value": "Row 9",
"text": "International (virtual) research organisations"
},
{
"value": "Row 10",
"text": "For-profit organisations"
}
]
},
{
"type": "matrixdropdown",
"name": "traffic_carriers",
"title": "How is the traffic carried?",
"columns": [
{
"name": "Column 1",
"title": "Carry mechanism",
"cellType": "dropdown",
"choices": [
{
"value": "item1",
"text": "TODO"
},
{
"value": "item2",
"text": "NREN provides the local loops"
},
{
"value": "item3",
"text": "Traffic carried to the backbone by commercial TODO"
}
]
}
],
"rows": [
{
"value": "Row 1",
"text": "Universities & Other (ISCED 6-8)"
},
{
"value": "Row 2",
"text": "Further education (ISCED 4-5) \t"
},
{
"value": "Row 3",
"text": "Secondary schools (ISCED 2-3)"
},
{
"value": "Row 4",
"text": "Primary schools (ISCED 1)"
},
{
"value": "Row 5",
"text": "Research Institutes"
},
{
"value": "Row 6",
"text": "Libraries, Museums, Archives, Cultural institutions"
},
{
"value": "Row 7",
"text": "Non-university Hospitals (public)"
},
{
"value": "Row 8",
"text": "Government departments (national, regional, local)"
},
{
"value": "Row 9",
"text": "International (virtual) research organisations"
},
{
"value": "Row 10",
"text": "For-profit organisations"
}
]
},
{
"type": "matrixdropdown",
"name": "average_traffic",
"title": "What are the average traffic loads in Mbit/s?",
"columns": [
{
"name": "Column 1",
"title": "From institutions to the network",
"cellType": "text",
"inputType": "number",
"min": 0
},
{
"name": "Column 2",
"title": "To institutions from the network",
"cellType": "text",
"inputType": "number",
"min": 0
}
],
"choices": [
1,
2,
3,
4,
5
],
"cellType": "text",
"rows": [
{
"value": "Row 1",
"text": "Universities & Other (ISCED 6-8)"
},
{
"value": "Row 2",
"text": "Further education (ISCED 4-5) \t"
},
{
"value": "Row 3",
"text": "Secondary schools (ISCED 2-3)"
},
{
"value": "Row 4",
"text": "Primary schools (ISCED 1)"
},
{
"value": "Row 5",
"text": "Research Institutes"
},
{
"value": "Row 6",
"text": "Libraries, Museums, Archives, Cultural institutions"
},
{
"value": "Row 7",
"text": "Non-university Hospitals (public)"
},
{
"value": "Row 8",
"text": "Government departments (national, regional, local)"
},
{
"value": "Row 9",
"text": "International (virtual) research organisations"
},
{
"value": "Row 10",
"text": "For-profit organisations"
}
]
},
{
"type": "matrixdropdown",
"name": "peak_traffic",
"title": "What are the peak traffic loads in Mbit/s?",
"columns": [
{
"name": "Column 1",
"title": "From institutions to the network",
"cellType": "text",
"inputType": "number",
"min": 0
},
{
"name": "Column 2",
"title": "To institutions from the network",
"cellType": "text",
"inputType": "number",
"min": 0
}
],
"choices": [
1,
2,
3,
4,
5
],
"rows": [
{
"value": "Row 1",
"text": "Universities & Other (ISCED 6-8)"
},
{
"value": "Row 2",
"text": "Further education (ISCED 4-5) \t"
},
{
"value": "Row 3",
"text": "Secondary schools (ISCED 2-3)"
},
{
"value": "Row 4",
"text": "Primary schools (ISCED 1)"
},
{
"value": "Row 5",
"text": "Research Institutes"
},
{
"value": "Row 6",
"text": "Libraries, Museums, Archives, Cultural institutions"
},
{
"value": "Row 7",
"text": "Non-university Hospitals (public)"
},
{
"value": "Row 8",
"text": "Government departments (national, regional, local)"
},
{
"value": "Row 9",
"text": "International (virtual) research organisations"
},
{
"value": "Row 10",
"text": "For-profit organisations"
}
]
},
{
"type": "matrixdropdown",
"name": "traffic_growth",
"title": "What do you expect the traffic growth to be in the next 3 years?",
"columns": [
{
"name": "Column 1",
"title": "% growth rate",
"cellType": "text",
"inputType": "number"
}
],
"choices": [
1,
2,
3,
4,
5
],
"cellType": "text",
"rows": [
{
"value": "Row 1",
"text": "Universities & Other (ISCED 6-8)"
},
{
"value": "Row 2",
"text": "Further education (ISCED 4-5) \t"
},
{
"value": "Row 3",
"text": "Secondary schools (ISCED 2-3)"
},
{
"value": "Row 4",
"text": "Primary schools (ISCED 1)"
},
{
"value": "Row 5",
"text": "Research Institutes"
},
{
"value": "Row 6",
"text": "Libraries, Museums, Archives, Cultural institutions"
},
{
"value": "Row 7",
"text": "Non-university Hospitals (public)"
},
{
"value": "Row 8",
"text": "Government departments (national, regional, local)"
},
{
"value": "Row 9",
"text": "International (virtual) research organisations"
},
{
"value": "Row 10",
"text": "For-profit organisations"
}
]
}
],
"title": "CONNECTED USERS"
},
{
"type": "panel",
"name": "connected_users_commercial",
"elements": [
{
"type": "matrixdropdown",
"name": "commercial_organizations",
"title": "What types of commercial organisations do you connect?",
"columns": [
{
"name": "Column 1",
"title": "Connection",
"cellType": "dropdown",
"choices": [
{
"value": "item1",
"text": "Yes - Including transit to other networks"
},
{
"value": "item2",
"text": "Yes - National NREN access only"
},
{
"value": "item3",
"text": "No - Not eligible for policy reasons"
},
{
"value": "item4",
"text": "TODO1"
}
]
}
],
"choices": [
1,
2,
3,
4,
5
],
"rows": [
{
"value": "Row 1",
"text": "Commercial R&E traffic only"
},
{
"value": "Row 2",
"text": "Commercial general"
},
{
"value": "Row 3",
"text": "Commercial for collaboration only (project/time limited)"
},
{
"value": "Row 4",
"text": "Commercial Service Provider"
},
{
"value": "Row 5",
"text": "University Spin Off/Incubator"
}
]
},
{
"type": "matrixdropdown",
"name": "commercial_charging_levels",
"title": "What are the typical charging levels for the following types of commercial connections? Please tick all that apply:",
"columns": [
{
"name": "Column 1",
"title": "Charging level",
"cellType": "dropdown",
"choices": [
{
"value": "item1",
"text": "TODO"
}
]
}
],
"choices": [
1,
2,
3,
4,
5
],
"rows": [
{
"value": "Row 1",
"text": "Connection to your network for collaboration with R+E users"
},
{
"value": "Row 2",
"text": "Connection to your network for supplying services for R+E"
},
{
"value": "Row 3",
"text": "Direct peering (e.g. direct peering or cloud peering)"
}
]
},
{
"type": "boolean",
"name": "remote_campuses",
"title": "Do your member organisations have remote campuses in other countries?"
},
{
"type": "boolean",
"name": "remote_campuses_connectivity",
"visible": false,
"visibleIf": "{remote_campuses} = true",
"indent": 1,
"title": "Do you provide connectivity for these campuses?"
},
{
"type": "matrixdynamic",
"name": "remote_campuses_specifics",
"visible": false,
"visibleIf": "{remote_campuses_connectivity} = true",
"indent": 1,
"title": "Please specify:",
"columns": [
{
"name": "Column 1",
"title": "Which Country",
"cellType": "text"
},
{
"name": "Column 2",
"title": "Whether connected to R&E network",
"cellType": "dropdown",
"choices": [
{
"value": "item1",
"text": "TODO"
}
]
}
],
"rowCount": 1,
"minRowCount": 1,
"maxRowCount": 20
},
{
"type": "comment",
"name": "connected_users_comments",
"title": "Comments regarding this section:"
}
],
"title": "CONNECTED USERS - COMMERCIAL"
}
],
"title": "Connected Users"
},
{
"name": "network",
"elements": [
{
"type": "panel",
"name": "connectivity",
"elements": [
{
"type": "boolean",
"name": "dark_fibre_lease",
"title": "Does your NREN have an IRU or lease of dark fibre?",
"description": "An Indefeasible Right of Use (IRU) is essentially a long-term lease of a portion of the capacity of a cable. Please do not include fibre that you have installed and own yourself. This is covered in a later question."
},
{
"type": "text",
"name": "dark_fibre_lease_kilometers_inside_country",
"visible": false,
"visibleIf": "{dark_fibre_lease} = true",
"indent": 1,
"title": "Please state the number of kilometres of such fibre in your country:",
"description": "Please include only the fibre inside your country for this answer. The distance is the number of km’s of your fibre pairs or if you are using bidirectional traffic on a single fibre please treat this as a fibre pair.",
"inputType": "number"
},
{
"type": "text",
"name": "dark_fibre_lease_kilometers_outside_country",
"visible": false,
"visibleIf": "{dark_fibre_lease} = true",
"indent": 1,
"title": "Please state the number of km of such fiber that is outside your country:",
"inputType": "number"
},
{
"type": "text",
"name": "dark_fibre_lease_duration",
"visible": false,
"visibleIf": "{dark_fibre_lease} = true",
"indent": 1,
"title": "What is the average duration, in years, of your IRU?",
"inputType": "number"
},
{
"type": "boolean",
"name": "dark_fibre_nren",
"title": "Has your NREN physically laid any dark fibre cables in your network?",
"description": "Please include only cables that you laid yourself. If this cable was installed and is owned by a third party, this is included in a previous question."
},
{
"type": "text",
"name": "dark_fibre_nren_kilometers_inside_country",
"visible": false,
"visibleIf": "{dark_fibre_nren} = true",
"indent": 1,
"title": "Please state the number of km of such fibre in your network:",
"description": "Please include only the fibre inside your country for this answer. The distance is the number of km’s of your fibre pairs, or If you are using bi-directional traffic on a single fibre please treat this as a fibre pair.",
"inputType": "number"
},
{
"type": "radiogroup",
"name": "fibre_light",
"title": "How do you light your fibre network:",
"choices": [
{
"value": "Item 1",
"text": "NREN owns and operates equipment"
},
{
"value": "Item 2",
"text": "NREN owns equipment and operation is outsourced"
},
{
"value": "Item 3",
"text": "Ownership and management are out-sourced (turn-key model)"
}
],
"showOtherItem": true
},
{
"type": "multipletext",
"name": "network_map_urls",
"title": "Please provide a network map for layers 1, 2 and 3 of your network:",
"items": [
{
"name": "text1"
},
{
"name": "text2"
}
]
}
],
"title": "Connectivity"
},
{
"type": "panel",
"name": "performance",
"elements": [
{
"type": "checkbox",
"name": "monitoring_tools",
"title": "Which tools do you offer your client institutions for monitoring or troubleshooting the network?",
"choices": [
{
"value": "Item 1",
"text": "Looking Glass"
},
{
"value": "Item 2",
"text": "Network or Services Status Dashboard"
},
{
"value": "Item 3",
"text": "Historical traffic volume information"
},
{
"value": "Item 4",
"text": "Netflow analysis tool"
}
],
"showOtherItem": true
},
{
"type": "text",
"name": "netflow_vendors",
"title": "If you process NetFlow, please, indicate the system name and vendor:"
},
{
"type": "boolean",
"name": "passive_monitoring",
"title": "Do you passively monitor international traffic?"
},
{
"type": "radiogroup",
"name": "passive_monitoring_tech",
"visible": false,
"visibleIf": "{passive_monitoring} = true",
"indent": 1,
"title": "Do you use:",
"choices": [
{
"value": "Item 1",
"text": "SPAN ports"
},
{
"value": "Item 2",
"text": "Passive optical TAPS"
},
{
"value": "Item 3",
"text": "Both"
}
]
},
{
"type": "boolean",
"name": "traffic_statistics",
"title": "Do you have traffic statistics on your website?"
},
{
"type": "text",
"name": "traffic_statistics_url",
"visible": false,
"visibleIf": "{traffic_statistics} = true",
"indent": 1,
"title": "Please give the URL(s):",
"inputType": "url"
},
{
"type": "checkbox",
"name": "siem_soc_vendor",
"title": "If you use a SIEM/SOC system, please indicate the name of the vendor you use here:",
"choices": [
{
"value": "Item 1",
"text": "Splunk"
},
{
"value": "Item 2",
"text": "IBM Qradar"
},
{
"value": "Item 3",
"text": "Exabeam"
},
{
"value": "Item 4",
"text": "LogRythm"
},
{
"value": "Item 5",
"text": "Securonix"
}
],
"showOtherItem": true
},
{
"type": "checkbox",
"name": "certificate_service",
"title": "Which certificate service do you use?",
"choices": [
{
"value": "Item 1",
"text": "TCS"
},
{
"value": "Item 2",
"text": "Digicert"
},
{
"value": "Item 3",
"text": "Sectigo (outside of TCS)"
},
{
"value": "Item 4",
"text": "GlobalSign"
},
{
"value": "Item 5",
"text": "GeoDaddy"
},
{
"value": "Item 6",
"text": "GeoTrust"
},
{
"value": "Item 7",
"text": "Entrust Datacard"
}
],
"showOtherItem": true
},
{
"type": "boolean",
"name": "network_weather",
"title": "Do you have an online weather map of your network?"
},
{
"type": "text",
"name": "network_weather_url",
"visible": false,
"visibleIf": "{network_weather} = true",
"indent": 1,
"title": "Please give the URL:",
"inputType": "url"
},
{
"type": "radiogroup",
"name": "pert_team",
"title": "Do you run a PERT team?",
"choices": [
{
"value": "Item 1",
"text": "Yes"
},
{
"value": "Item 2",
"text": "No"
},
{
"value": "Item 3",
"text": "Planned"
}
]
}
],
"title": "PERFORMANCE MONITORING AND MANAGEMENT"
},
{
"type": "panel",
"name": "alienwave",
"elements": [
{
"type": "radiogroup",
"name": "alienwave_services",
"title": "Does your NREN make use of alien wavelength/lightpath (AW) services provided by third parties?",
"description": "This does not include alien waves (AW) used internally inside your network e.g. coloured optics on routers as they are covered in a later question.",
"choices": [
{
"value": "yes",
"text": "Yes"
},
{
"value": "no",
"text": "No"
},
{
"value": "planned",
"text": "Planned"
}
]
},
{
"type": "text",
"name": "alienwave_services_number",
"visible": false,
"visibleIf": "{alienwave_services} = 'yes'",
"indent": 1,
"title": "Please state the number of individual AW services:",
"inputType": "number"
},
{
"type": "boolean",
"name": "alienwave_internal",
"title": "Are you using alien waves internally in your network?",
"description": "This includes for example alien waves used between two equipment vendors e.g. coloured optics on routers carried over DWDM equipment."
}
],
"title": "Alienwave",
"description": "Pure optical connectivity services provided by the NREN without a known framing, such as foreign, alien wavelength."
},
{
"type": "panel",
"name": "capacity",
"elements": [
{
"type": "text",
"name": "max_capacity",
"title": "What is the capacity (in Gbit/s) of the largest link in your network used for internet traffic (either shared or dedicated)?",
"description": "Please provide the sum of aggregated links, but don't include backup capacity.",
"inputType": "number"
},
{
"type": "text",
"name": "typical_capacity",
"title": "What is the current typical core usable backbone IP capacity of your network in Gbit/s?",
"description": "Note this refers to circuit capacity not traffic e.g. 2 x 10GE LAG aggregated links.",
"inputType": "number"
},
{
"type": "matrixdynamic",
"name": "external_connections",
"title": "Please provide a list of the operational external IP connections (usable links excluding backup links): ",
"description": "This should include links to your regional backbone (GÉANT, APAN, RedCLARA etc, to other research locations, to the commercial Internet, peerings to Internet exchanges, cross-border dark fibre links and any other links you may have. Note that we are interested in the capacity for production purposes, not in any additional links that may be there for the purpose of giving resilience. Some of your capacity to your regional backbone may be used for transiting to intercontinental services; please include these too. Cross-border fibre links means those links that have been commissioned or established by the NREN from a point on the network that is near the border to another point near the border on the network of a neighbouring NREN, for example.",
"columns": [
{
"name": "Column 1",
"title": "Link name",
"cellType": "text",
"isRequired": true
},
{
"name": "Column 2",
"title": "Capacity (Gbit/s):",
"cellType": "text",
"inputType": "number"
},
{
"name": "Column 3",
"title": "The link is from (organisation):",
"cellType": "text"
},
{
"name": "Column 4",
"title": "To (organisation):",
"cellType": "text"
},
{
"name": "Column 5",
"title": "Interconnection method:",
"cellType": "dropdown",
"choices": [
{
"value": 1,
"text": "TODO"
},
{
"value": 2,
"text": "Geant"
},
{
"value": 3,
"text": "Directly"
},
{
"value": 4,
"text": "Other"
}
],
"storeOthersAsComment": true
}
],
"choices": [
1,
2,
3,
4,
5
],
"rowCount": 1,
"maxRowCount": 50
},
{
"type": "text",
"name": "non_r_and_e_peers",
"title": "Please state how many non-R&E networks you are peering with:",
"description": "This should include all direct IP-peerings to commercial networks e.g. Google.",
"inputType": "number"
},
{
"type": "multipletext",
"name": "traffic_estimate",
"title": "Please supply an estimate of the total amount of traffic in Terabyte from January to December (2021) for the following: ",
"items": [
{
"name": "from_customers",
"inputType": "number",
"title": "Traffic from NREN customers (sources that are part of the remit of the NREN’s domain)"
},
{
"name": "to_customers",
"inputType": "number",
"title": "Traffic to NREN customers (sources that are part of the remit of the NREN’s domain)"
},
{
"name": "from_external",
"inputType": "number",
"title": "Traffic from external networks (sources that are outside the NREN’s domain, such as, GÉANT, General/Commercial Internet, Internet exchanges, peerings, other NRENs etc)"
},
{
"name": "to_external",
"inputType": "number",
"title": "Traffic to external networks (sources that are outside the NREN’s domain, such as, GÉANT, General/Commercial Internet, Internet exchanges, peerings, other NRENs etc)"
}
]
},
{
"type": "text",
"name": "commodity_vs_r_e",
"title": "What is the ratio of commodity vs R+E traffic in your network?",
"description": "% R+E vs % commodity"
}
],
"title": "CAPACITY"
},
{
"type": "panel",
"name": "sdn",
"elements": [
{
"type": "radiogroup",
"name": "operational_process_automation",
"title": "Are you automating your operational processes?",
"choices": [
{
"value": "yes",
"text": "Yes"
},
{
"value": "no",
"text": "No"
},
{
"value": "planned",
"text": "Planned"
}
]
},
{
"type": "text",
"name": "operational_process_automation_tools",
"visible": false,
"visibleIf": "{operational_process_automation} = 'yes'",
"indent": 1,
"title": "Please specify which processes and the name/s of the automation software and tools you use for it:"
},
{
"type": "radiogroup",
"name": "nfv",
"title": "Do you use any kind of NFV?",
"choices": [
{
"value": "yes",
"text": "Yes"
},
{
"value": "no",
"text": "No"
},
{
"value": "planned",
"text": "Planned"
}
]
},
{
"type": "checkbox",
"name": "nfv_types",
"visible": false,
"visibleIf": "{nfv} = 'yes' or {nfv} = 'planned'",
"indent": 1,
"title": "What kind of NFV do/will you use:",
"choices": [
{
"value": "Item 1",
"text": "Routers/switches"
},
{
"value": "Item 2",
"text": "Firewalls"
},
{
"value": "Item 3",
"text": "Load balancers"
},
{
"value": "Item 4",
"text": "VPN Concentrator Services"
}
],
"showOtherItem": true
},
{
"type": "radiogroup",
"name": "network_automation",
"title": "Do you use automation on your network?",
"choices": [
{
"value": "yes",
"text": "Yes"
},
{
"value": "no",
"text": "No"
},
{
"value": "planned",
"text": "Planned"
}
]
},
{
"type": "checkbox",
"name": "network_automation_tasks",
"visible": false,
"visibleIf": "{network_automation} = 'yes' or {network_automation} = 'planned'",
"indent": 1,
"title": "What kind of task do you use it for?",
"choices": [
{
"value": "Item 1",
"text": "Device Provisioning"
},
{
"value": "Item 2",
"text": "Data Collection"
},
{
"value": "Item 3",
"text": "Configuration Management"
},
{
"value": "Item 4",
"text": "Compliance"
},
{
"value": "Item 5",
"text": "Reporting"
},
{
"value": "Item 6",
"text": "Troubleshooting"
}
]
}
],
"title": "SOFTWARE-DEFINED NETWORKING (SDN) AND NETWORK FUNCTION VIRTUALISATION (NFV)"
},
{
"type": "comment",
"name": "network_comments",
"title": "Comments regarding this section:"
}
],
"title": "Network"
}
],
"sendResultOnPageNext": true,
"showQuestionNumbers": "onPage",
"showTOC": true
}
\ No newline at end of file
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
</head>
<body>
<div id="root"></div>
<script src="/bundle.js"></script>
</body>
</html>
\ No newline at end of file
{
"compilerOptions": {
"target": "ES6",
"lib": ["dom", "dom.iterable", "esnext"],
"allowJs": true,
"allowSyntheticDefaultImports": true,
"skipLibCheck": true,
"esModuleInterop": true,
"strict": true,
"forceConsistentCasingInFileNames": true,
"moduleResolution": "node",
"resolveJsonModule": true,
"isolatedModules": true,
"noEmit": true,
"jsx": "react",
"declaration": true,
"declarationDir": "dist/types",
"noImplicitAny": false,
},
"include": ["src"]
}
import path from "path";
import ForkTsCheckerWebpackPlugin from "fork-ts-checker-webpack-plugin";
import { Configuration as WebpackConfiguration } from "webpack";
import { Configuration as WebpackDevServerConfiguration } from "webpack-dev-server";
interface Configuration extends WebpackConfiguration {
devServer?: WebpackDevServerConfiguration;
}
const config: Configuration = {
entry: "./src/index.tsx",
module: {
rules: [
{
test: /\.(ts|js)x?$/,
exclude: /node_modules/,
use: {
loader: "babel-loader",
options: {
presets: [
"@babel/preset-env",
"@babel/preset-react",
"@babel/preset-typescript",
],
},
},
},
{
test: /\.scss$/,
exclude: /node_modules/,
use: [
{ loader: "style-loader" },
{ loader: "css-loader" },
{ loader: "sass-loader" },
],
},
{
test: /\.css$/,
use: [{ loader: "style-loader" }, { loader: "css-loader" }],
},
{
test: /\.(png|svg|jpe?g|gif)$/,
include: /images/,
use: [
{
loader: "file-loader",
options: {
name: "[name].[ext]",
outputPath: "images/"
},
},
{
loader: "image-webpack-loader",
options: {
query: {
mozjpeg: {
progressive: true,
},
gifsicle: {
interlaced: true,
},
optipng: {
optimizationLevel: 7,
},
},
},
},
],
},
],
},
resolve: {
extensions: [".tsx", ".ts", ".js", ".html"],
},
output: {
path: path.resolve(__dirname, "..", "survey", "static"),
filename: "bundle.js",
},
devServer: {
static: path.join(__dirname, "..", "survey", "static"),
compress: true,
port: 4000,
// Allow SPA urls to work with dev-server
historyApiFallback: true,
proxy: {
"/api": "http://127.0.0.1:5000",
},
},
plugins: [
new ForkTsCheckerWebpackPlugin({
async: false,
}),
],
};
export default config;
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment