All Projects → giantswarm → happa

giantswarm / happa

Licence: Apache-2.0 License
Web user interface for Giant Swarm – Beyond managed Kubernetes

Programming Languages

typescript
32286 projects
javascript
184084 projects - #8 most used programming language
Sass
350 projects
EJS
674 projects
Dockerfile
14818 projects
Smarty
1635 projects

Projects that are alternatives of or similar to happa

NoMoneyTrip
[SKT/한국관광공사] 2020 스마트 관광 앱 개발 공모전 '무전여행' 앱
Stars: ✭ 28 (+64.71%)
Mutual labels:  single-page-app
OPQBot-GroupManager
OPQBot 群管理机器人
Stars: ✭ 25 (+47.06%)
Mutual labels:  webui
aw-webui
Webapp for visualizing and browsing ActivityWatch data, built with Vue.js.
Stars: ✭ 68 (+300%)
Mutual labels:  webui
hafcaf
When you only want a little JavaScript in your SPA.
Stars: ✭ 17 (+0%)
Mutual labels:  single-page-app
jquery-spa-example
Example Single Page Application build with jQuery
Stars: ✭ 27 (+58.82%)
Mutual labels:  single-page-app
kblog
⚡ My Blog · 3 KB · Single Page · Material Design
Stars: ✭ 79 (+364.71%)
Mutual labels:  single-page-app
vogon-java
Vogon - A simple personal finance tracker using Spring Boot and AngularJS
Stars: ✭ 16 (-5.88%)
Mutual labels:  single-page-app
apertium-html-tools
Web application providing a fully localised interface for text/website/document translation, analysis and generation powered by Apertium.
Stars: ✭ 36 (+111.76%)
Mutual labels:  single-page-app
bzkanban
🔪 Kanban board for Bugzilla 5+
Stars: ✭ 39 (+129.41%)
Mutual labels:  single-page-app
spring-boot-react-blog
Token-based blog application using spring boot, react and jwt.
Stars: ✭ 132 (+676.47%)
Mutual labels:  single-page-app
portfolio-template
Portfolio template for any developer or designer. Made with love towards everyone :)
Stars: ✭ 21 (+23.53%)
Mutual labels:  single-page-app
peasy-js-samples
Showcases business logic built with peasy-js and consumed by multiple clients
Stars: ✭ 19 (+11.76%)
Mutual labels:  single-page-app
Shappar
気軽に投票を【取れる】【見れる】【できる】アプリです。
Stars: ✭ 22 (+29.41%)
Mutual labels:  single-page-app
CRUD-Laravel-Livewire-SPA
CRUD Laravel 7 & Livewire (SPA) Single Page Application
Stars: ✭ 34 (+100%)
Mutual labels:  single-page-app
amazon-ivs-chime-web-demo
A demo web application intended as an educational tool for demonstrating how to load and play Amazon IVS streams alongside the Amazon Chime SDK.
Stars: ✭ 35 (+105.88%)
Mutual labels:  single-page-app
laravel-vue-starter
Well Documented Laravel Starter App From Development to Production. For Full Blown RESTFUL API and SPA with Beautiful UI Using Buefy / ElementUi For Reusable Vue Components
Stars: ✭ 80 (+370.59%)
Mutual labels:  single-page-app
wordpress-svelte
Frontend writen on svelt
Stars: ✭ 17 (+0%)
Mutual labels:  single-page-app
wagtail-react-blog
SPA built with React, Tailwind CSS and Wagtail Rest API
Stars: ✭ 66 (+288.24%)
Mutual labels:  single-page-app
gatsby-wiki
Creating a Knowledgbase using Gatsby.js and React.js (see final product ->
Stars: ✭ 32 (+88.24%)
Mutual labels:  single-page-app
financial-simulator
A single-page web app for rapidly prototyping financial scenarios.
Stars: ✭ 14 (-17.65%)
Mutual labels:  single-page-app
We are hiring

CircleCI Docker Repository on Quay code style: prettier Known Vulnerabilities

Happa

The Giant Swarm web user interface. It lets users:

  • View and manage clusters
  • Install and manage applications from an app catalog
  • Manage their account
  • Add / remove organizations
  • Add / remove members from organizations
  • Learn how to get started with their kubernetes clusters by following a guide

Happa is intended to be deployed to Giant Swarm management clusters and acts as a client to the Giant Swarm API.

Screenshot of Happa

Happa is a single page JavaScript application using React+Redux and runs in modern browsers.

Getting started with development

Prerequisites

To run happa locally, you need:

Quick start

Install dependencies:

yarn install

Some warnings regarding unmatched dependency versions are expected and can be ignored.

Then, to bring up Happa connected to an installation, you need to have a kubectl context that points to the installation's management cluster. You also need to have get permissions for the happa-configmap ConfigMap, in the giantswarm namespace.

You can log into the installation's management cluster using the kubectl gs plugin. Here's how you would start Happa after using the plugin to log into the ginger installation:

HAPPA_KUBECTL_CONTEXT=gs-ginger yarn start

Running tests

Execute the test suite using

yarn test

Releasing

Tagged releases are continuously deployed to all installations, both test and production. For details see Release.md

User interface components

We are maintaining a Storybook showcasing more and more of our UI components.

Configuration

Use environment variables or a configuration file to adjust the behaviour of the application in production.

These configuration values affect the config object in index.html (which is created from index.ejs). A configuration script (prepare.ts) applies the values from the configuration values to index.html by templating index.ejs and creating the index.html file. This way Happa remains a fully static website that can be served by nginx.

In development, these configuration values are applied using the ConfigurationPlugin via webpack, which generates index.html.

Redux in a nutshell

╔═════════╗       ╔══════════╗       ╔═══════════╗       ╔═════════════════╗
║ Actions ║──────>║ Reducers ║──────>║   Store   ║──────>║ View Components ║
╚═════════╝       ╚══════════╝       ╚═══════════╝       ╚═════════════════╝
     ^                                                           │
     └───────────────────────────────────────────────────────────┘

Components should only emit actions.

Reducers listen for actions and emit a new state.

The view listens for changes to the state and renders.

By following these guidelines we should get some benefits in keeping component logic focused on rendering, and not on doing the actual work of manipulating state.

Icons

Happa uses a custom icon pack which we can manage at https://fortawesome.com Login details are in keypass, search for 'fortawesome'. The line

<script src="https://use.fonticons.com/d940f7eb.js"></script>

in src/index.ejs is what includes the fonts for us.

More information about our font kit and how to use it can be found here: https://fortawesome.com/kits/d940f7eb/docs

Updating dependencies

Dependabot is configured to automatically create pull requests (PRs) that update our dependencies when they go stale. After approval and a @dependabot merge comment, dependabot automatically merges open PRs.

Coding style

Happa's code style is determined by prettier. There is a pre-commit hook enforcing that the coding style rules are met. A CI step will also avoid building any code that does not match expectations, which then surfaces in the pull request checks in Github.

You can run prettier on the whole codebase using yarn prettier.

We use the following config params:

  • --jsx-single-quote
  • --single-quote
  • --trailing-comma es5

Pre-commit hooks

To avoid pushing code that will fail the CI due to codestyle issues, we've added a pre-commit hook using husky.

This runs before every commit, and it will not let commits go through if the prettier check has not passed.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].