• Stars
    star
    255
  • Rank 159,729 (Top 4 %)
  • Language
    TypeScript
  • License
    Other
  • Created almost 8 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Create your own Technology Radar: A static site generator for a full featured Technology Radar. Features: Quadrants, Rings, Dashboard, Radar Visualization, Item History, Search etc..

AOE Technology Radar

A static site generator for AOE Technology Radar

Looking for the AOE Tech Radar content?

The repository is now found here: https://github.com/AOEpeople/techradar

The AOE Tech radar is deployed here: https://www.aoe.com/techradar/index.html

Create your own radar

The generator is free to use under Open Source License - in fact there are already some other Radars published based on our Radar and there are also Contributions back.

However, please be aware:

  • It would be nice to mention in radar that the generator is based on this repository.
  • Also, when you want to reuse the CSS and Styling: Change the font (it is a licensed font) and the colors (It using AOE CI)

Use and build the radar

Create a new npm project and add the tech radar as a dependency

npm i aoe_technology_radar

Build the radar

npx aoe_technology_radar-buildRadar

Generate the rd.json file containing the radar data

npx aoe_technology_radar-generateJson

Run the Prepare script

npm run prepare

Serve

cd build
python3 -m http.server 8080

Then open here: http://localhost:8080/

Run a prepared static version

To have a better SEO ranking or deploy to S3, you can generate a html file for every page.

Requirements

  • Build the radar
  • Generate the rd.json file
npx aoe_technology_radar-createStaticFiles

Authoring Techradar contents

For a new Technology Radar release, create a folder of the release date (YYYY-MM-DD) under ./radar.

Maintaining items

The items are written in Markdown format (.md)

Each file has a front-matter header where the attributes of the item are listed:

---
title:      "React"
ring:       adopt
quadrant:   languages-and-frameworks
---

Text goes here. You can use **markdown** here.

Following front-matter attributes are possible:

  • title: Name of the Item
  • quadrant: Quadrant. One of languages-and-frameworks, methods-and-patterns, platforms-and-aoe-services, tools
  • ring: Ring section in radar. One of trial, assess, adopt, hold
  • info: (optional) A short textual description of the item (visible in overview pages)
  • featured: (optional, default "true") If you set this to false, the item will not be visible in the radar quadrants but still be available in the overview.

The name of the .md file acts as item identifier and may overwrite items with the same name from older releases.

If an item is overwritten in a new release, the attributes from the new item are merged with the old ones, and a new history entry is created for that item.

You can integrate images in your markdown. Put the image files in your public folder and reference them

![nice image](/images/nice-image.png)

Customize the tech radar

You can customize the following parts of the tech radar.

Change title, description and headline

Set the environment variable REACT_APP_RADAR_NAME. The default is "AOE Technology Radar".

Host the application under a sub path

To host the application under a sub path, set the environment variable PUBLIC_URL, e.g. "/techradar". The default is "/".

Change the favicon

To change the favicon, create a folder named public and put your favicon.ico in it.

Change the logo

To change the logo, create a folder named public and put your logo.svg in it.

For reference have a look at public/logo.svg.

Change the date format

By default the Date format used in the app is "MMMM YYYY". You can change this by editing the config.js file as shown below. Please be sure you are entering a valid moment.js format string.

{
  // ...
  "dateFormat": "MMMM YYYY"
}

For reference have a look at public/logo.svg.

Edit from published radar

You can activate the editLink feature which will display a small edit button next to a technology which let's you jump directly to a gitlab / github / etc. edit page:

{
  // ...
  "editLink": {
    "radarLink": "https://github.com/AOEpeople/techradar/edit/main/radar",
    "title": "Edit"
  }
}

Change the rings and quadrants config

To change the default rings and quadrants of the radar, you can place a custom config.json file within the public folder. The showEmptyRings option can be enabled to display the header for a ring even when it contains no items (helpful to reinforce the order of the rings). The content should look as follows:

{
  "quadrants": {
    "languages-and-frameworks": "Languages & Frameworks",
    "methods-and-patterns": "Methods & Patterns",
    "platforms-and-operations": "Platforms & Operations",
    "tools": "Tools"
  },
  "rings":["all", "adopt", "trial", "assess", "hold"],
  "showEmptyRings": true
}

Filter with tags / create different Radars

To create different radars with one set of blips put a tags entry in your frontmatter:

---
title: Item
ring: adopt
quadrant: tools
tags: [radar-1, radar-2]
---

Then, to select the blips put a tags entry in the config.json for generating the site:

{
  "tags": ["radar-1"],
  "quadrants": {
    ...

This will only add blips with the defined tags into the output.

Change the index.html

To change the index.html, create a public folder in your application and put your index.html in it.

For reference have a look at public/index.html.

Change the fonts

To change the fonts, create a public folder in your application and put your fonts in it.

Create a fonts.css in the public folder and load your fonts.

For now only 2 fonts will be used: DIN normal and DIN 300. Therefore, you only can replace the font files itself, but need to use the font-family and font-weight.

@font-face {
    font-family: "DIN";
    src: url("fonts/yourFontFileForNormal");
    font-weight: normal;
}

@font-face {
    font-family: "DIN";
    src: url("fonts/yourFontFileForThin");
    font-weight: 300;
}

For reference have a look at public/fonts.css.

Change the styles

To change the styles, create a styles.css in the public folder and apply your style modifications. Styles defined in public/styles.css will overload the default styles.

For reference have a look at src/styles/main.scss and all it's included files.

Important: The custom styles must be defined as pure CSS, as there is no further pre-processing of other file formats such as SCSS for custom style overloads.

You can also reference custom icons or images in your styles as follows. The icons should be placed in the public folder as well (e.g. in a specific icons or images directory):

body {
  background-image: url('/images/my-custom-background-image.png');
}

Add social links to the footer and sidebar

To add social links, create a public folder in your application and put a messages.json in it.

{
  "socialLinks": [
    { "href": "https://www.facebook.com/aoepeople", "iconName": "facebook" },
    { "href": "https://twitter.com/aoepeople", "iconName": "twitter" },
    { "href": "https://www.linkedin.com/company/aoe", "iconName": "linkedIn" }
  ]
}

For more information and the possible icon names see the source code of the SocialLink Component.

Add a legal information link to the footer and sidebar

To add a link to legal information, create a public folder in your application and put a messages.json in it.

{
  "legalInformationLink": "https://www.aoe.com/en/imprint.html"
}

Add a footnote with the logo to the footer

To add a footnote to the footer, create a public folder in your application and put a messages.json in it.

{
  "footerFootnote": "AOE is a leading global provider of services for digital transformation and digital business models. AOE relies exclusively on established Enterprise Open Source technologies. This leads to innovative solutions, digital products and portals in agile software projects, and helps build long-lasting, strategic partnerships with our customers."
}

The footnote information may include HTML like <a href="https://foo.bar">My Link</a> which will be sanitized.

Add a help page with explanations

To add a help page, create a public folder in your application and put a messages.json in it.

{
  "pageHelp": {
    "paragraphs": [
      {
        "headline": "Introduction",
        "values": [
          "Technology is moving fast and new technologies and innovations appear continuously.",
          "It's essential for a development and technology company such as AOE to constantly improve and keep track with the latest useful innovations. It is important to openly look for innovations and new technologies and to question established technologies and methods every now and then.",
          "But, it is also important to wisely choose which technologies to use in our daily work and in the different projects we are carrying out. As we all know: There is no silver bullet."
        ]
      },
      {
        "headline": "What is the AOE Technology Radar",
        "values": [
          "The Tech Radar is an overview of different technologies - from languages, frameworks, tools and patterns to platforms - that we consider \"new or mentionable\". The radar therefore doesn't provide an overview of all established technologies - but it focuses on items that have recently gained in importance or changed."
        ]
      }
    ],
    "quadrants": [
      {
        "name": "Languages and Frameworks",
        "description": "We've placed development languages (such as Scala or Golang) here, as well as more low-level development frameworks (such as Play or Symfony), which are useful for implementing custom software of all kinds."
      },
      {
        "name": "Tools",
        "description": "Here we put different software tools - from small helpers to bigger software projects"
      },
      {
        "name": "Methods and Patterns",
        "description": "Patterns are so important, and a lot of them are valid for a long time (compared to some tools or frameworks). So, this is the category where we put information on methods and patterns concerning development, continuous x, testing, organization, architecture, etc."
      },
      {
        "name": "Platforms and Operations",
        "description": "(including AOE internal Services): Here we include infrastructure platforms and services. We also use this category to communicate news about AOE services that we want all AOE teams to be aware of."
      }
    ],
    "rings": [
      {
        "name": "Adopt",
        "description": "We can clearly recommend this technology. We have used it for longer period of time in many teams and it has proven to be stable and useful."
      },
      {
        "name": "Trial",
        "description": "We have used it with success and recommend to have a closer look at the technology in this ring. The goal of items here is to look at them more closely, with the goal to bring them to the adopt level."
      },
      {
        "name": "Assess",
        "description": "We have tried it out and we find it promising. We recommend having a look at these items when you face a specific need for the technology in your project."
      },
      {
        "name": "Hold",
        "description": "This category is a bit special. Unlike the others, we recommend to stop doing or using something. That does not mean that they are bad and it often might be ok to use them in existing projects. But we move things here if we think we shouldn't do them anymore - because we see better options or alternatives now."
      }
    ],
    "sourcecodeLink": {
      "href": "https://github.com/AOEpeople/aoe_technology_radar",
      "name": "AOE Tech Radar on Github",
      "description": "Contributions and source code of the AOE Tech Radar are on github:"
    }
  }
}

The information in descriptions for rings and quadrants as well as the values for paragraphs may include HTML like <a href="https://foo.bar">My Link</a> which will be sanitized.

For more information see the source code of the Messages Context.

Development

Then simply start the dev server:

npm run start

Change scripts

If you change one of the scripts in the scripts' folder, you have to compile them to JavaScript.

Therefore, run npm run build:scripts and commit the results in dist_scripts.

To make it more robust the script will be executed on commit.

More Repositories

1

Aoe_Scheduler

Cron Scheduler Module for Magento
PHP
374
star
2

Aoe_Profiler

Magento Profiler
PHP
247
star
3

Aoe_TemplateHints

Advanced Template Hints for Magento
JavaScript
194
star
4

mpmd

Magento Project Mess Detector (for n98-magerun)
PHP
180
star
5

vistecture

Visualize Architecture: Microservice Architecture Tool for visualizing, analysing and automatic documentation of (distributed) Software Architectures
Go
82
star
6

magento-deployscripts

Shell
71
star
7

Aoe_LazyCatalogImages

Magento module to lazy render catalog images
PHP
71
star
8

Aoe_DbRetry

PHP
69
star
9

puppeteer-fetchbot

Library and Shell command that provides a simple JSON-API to perform human like interactions and data extractions on any website. Built on top of puppeteer.
TypeScript
60
star
10

MageTestStand

Shell
59
star
11

StackFormation

Lightweight AWS CloudFormation Stack Manager
PHP
45
star
12

Aoe_LayoutConditions

ifconfig for blocks and references
PHP
41
star
13

techradar

The AOE Technology Radar
CSS
38
star
14

Aoe_Queue

Queue implementation for Magento based on Zend Queue
PHP
37
star
15

Aoe_CartApi

More resources for Magento's Api2 (REST)
PHP
37
star
16

geb-spock-reports

Integrates Geb screenshots into the spock-reports library
HTML
36
star
17

Aoe_CacheCleaner

Removes old cache entries in your Magento instance
PHP
36
star
18

composer-installers

PHP
33
star
19

Aoe_Import

XML Importer Framework for Magento
PHP
32
star
20

Aoe_EeIndexerStats

PHP
31
star
21

Magento-2-Module-Skeleton

This Module provides a basic Skeleton for further Magento 2 Modules.
PHP
31
star
22

Magento_Boilerplate

31
star
23

TYPO3_Restler

restler (PHP REST-Framework) for TYPO3
PHP
30
star
24

composer-satis-builder

PHP
29
star
25

Aoe_CacheStats

Gathers cache statistics
PHP
26
star
26

gradle-jenkins-job-dsl-plugin

Plugin for easy management of Jenkins Job DSL scripts with Gradle
Groovy
25
star
27

zettr

PHP
20
star
28

Aoe_BlackHoleSession

PHP
20
star
29

EasyDeploy

(DEPRICATED) Set of PHP Scripts that makes it easy to deploy to local or remote Servers
PHP
20
star
30

chef-devbox

Shell
19
star
31

cfn-lambdahelper

Collection of Lambda Custom Resources for CloudFormation
JavaScript
18
star
32

meals

Tool to book meals. Keycloak/LDAP connection / PayPal integration / meals administration / support for guests / budget management etc..
PHP
18
star
33

semanticore

Semanticore: Your friendly Semantic Release Bot 🤖 🦁 🐉. Autogenerate Release Notes from Commits and automate Github/Gitlab Release generation.
Go
17
star
34

Aoe_Metrics

PHP
17
star
35

Aoe_FraudManager

Magento module for fraud management
PHP
16
star
36

Aoe_AmazonCdn

Onepica_ImageCdn fork (only S3 support is left) with some customizations and improvements
PHP
14
star
37

scheduler_timeline

TYPO3 backend module providing a graphical timeline of running and finished scheduler tasks
PHP
12
star
38

Aoe_Searchperience

Module integrating Searchperience (Solr SaaS solution from AOE Media) with Magento
PHP
12
star
39

Aoe_CacheRefresh

PHP
11
star
40

kubernetes-sidecar-cleaner

Go
11
star
41

Aoe_AddressAutoComplete

Address auto completion for Magento Checkout (highly experimental!)
JavaScript
11
star
42

kube-container-exec

Go
10
star
43

Aoe_Backup

PHP
10
star
44

Tagging

Build-Tool to automatic increase the version and create a tag in the remote VCS repository.
PHP
10
star
45

vistecture-dashboard

Is a simple dashboard for projects that are deployed into kubernetes. It works together with Vistecture and shows the state of the vistecture architecture in kubernetes.
CSS
10
star
46

linkhandler

Officious fork of TYPO3 extension "linkhandler" with support for TYPO3 CMS 6.2.
PHP
9
star
47

Aoe_Restrictions

Magento module to restrict frontend requests based upon the route and/or full action name
PHP
9
star
48

t3deploy

t3deploy extension that helps automating deployments
PHP
9
star
49

felogin_bruteforce_protection

Protects TYPO3s frontend authentication (e.g. fe_login) against brute force attacks.
PHP
9
star
50

TYPO3-varnish

This is a TYPO3-Extension that integrates the popular Varnish HTTP Cache into TYPO3.
PHP
8
star
51

Aoe_SnappyCms

JavaScript
8
star
52

AwsInspector

PHP
8
star
53

desk-compass

"Where's my desk?" - Search no more: Manage your floor plan and space layout; Keep track of item locations; Collaborate to maximize overview for your office, event location or lecture rooms. Written with NestJS, Svelte and Leaflet.
TypeScript
8
star
54

devbox-cookbook

Ruby
7
star
55

awesome-devops

Awesome List for Dev-Ops / Kubernetes / Cloud
JavaScript
7
star
56

k8sdemo

HCL
6
star
57

TYPO3-Imgix

The "imgix" TYPO3 extension provides the Auto Responsive Images feature of imgix called imgix.fluid().
PHP
6
star
58

jenkins-aoe-theme

AOE Theme for Jenkins CI
CSS
6
star
59

Menta_SampleProject

PHP
6
star
60

Aoe_ConfigHelper

PHP
6
star
61

t3ext-cli_update_wizard

TYPO3 extension to execute tasks from the Upgrade Wizard on command line
PHP
6
star
62

PHP_OpenIdDiscovery

A simple library to discover OpenId Providers with the Autodiscovery url. Tested with Keycloak
PHP
6
star
63

Aoe_ExtendedFilter

PHP
6
star
64

sane-url-builder

Concatenate urls without having trailing, leading, missing slash, colon whatever problems
JavaScript
6
star
65

lambda_token_auth

Small Lambda function which performs a Aws:Sts:AssumeRole based on the presented JWT-Token
Go
6
star
66

gitlab-crucible-bridge

Translates GitLab webhooks into Crucible sync triggers
Go
5
star
67

Aoe_DynamoDbSession

AWS DynamoDB session handler for Magento (experimental!)
PHP
5
star
68

Aoe_SessionVars

PHP
5
star
69

Aoe_Translate

Magento Translation System Logging
PHP
5
star
70

Aoe_HealthCheck

Simple module that provides an endpoint for (load balancer) health checks
PHP
5
star
71

cfn-vpc

VPC setup via CloudFormation
5
star
72

Aoe_SearchStaticBlocks

Adds static blocks to the default Magento search result page, base on keywords.
PHP
5
star
73

Aoe_Fingerprint

PHP
5
star
74

TYPO3-Static-Pub

Allows pages to be staticly published as real HTML pages.
PHP
5
star
75

TYPO3-Feature-Flag

Add ability to use feature flags for extensions and content elements
PHP
4
star
76

TYPO3-Update-Refindex

TYPO3-Extension to update the TYPO3-refindex for specified tables via a scheduler-task
PHP
4
star
77

aoe_ipauth

TYPO3 Extension: Authenticates users based on IP address settings
PHP
4
star
78

sentinel

Python
4
star
79

Aoe_TemplateImport

PHP
4
star
80

docker-images

Common docker images from AOE
Shell
4
star
81

Mage_AwsSdk

Wrapping AWS SDK for PHP into a Magento library
4
star
82

Aoe_SalesRule

PHP
4
star
83

happy_feet

Footnote Extension for TYPO3 using Extbase
PHP
4
star
84

raml-validate

Validates RAML files against server
JavaScript
4
star
85

TYPO3-Google-Tag-Manager

Creates an interface for Google Tag Manager.
PHP
4
star
86

TYPO3_RestlerExamples

Examples on how to use/configure Restler (PHP REST-Framework) for TYPO3
PHP
4
star
87

BackupMinify

Small PHP Script to minify backups
PHP
4
star
88

TYPO3-Cache-Management

Provides management of the page caching for high traffic websites.
PHP
4
star
89

languagevisibility

Multi level language fallback for TYPO3 projects
PHP
4
star
90

searchperience-api-client

PHP Library to communicate with the searchperience RestFul API [www.searchperience.com]
PHP
4
star
91

Aoe_TrimPassword

Trims username and passwords while logging in
PHP
3
star
92

magento2-coding-standard

PHP
3
star
93

Aoe_LayoutManager

PHP
3
star
94

meals-android

Android wrapper for the web app
Kotlin
3
star
95

Menta_MagentoComponents

PHP
3
star
96

Aoe_Api2

Magento Mage_Api2 Extension Module
PHP
3
star
97

s3-kontext

Easy Access to Amazon S3 content via kotlin DSL
Kotlin
3
star
98

Aoe_AvaTax

PHP
3
star
99

Aoe_MergedJsCssCdn

Extension on top of Aoe_Cdn and Aoe_JsCssTstamp to upload merged js/css files to cdn and use them on page
PHP
3
star
100

YAD

Shell
3
star