Giter Club home page Giter Club logo

charthub.litmuschaos.io's Introduction

Litmus Chaos Community Chart Hub

FOSSA Status

Development Setup

Prerequisite

  • Golang is installed and configured, If not follow the instructions here.
  • Install Node.js and npm. Follow the instructions here.
  • Repo should be cloned to your go path, repo path should be
$GOPATH/src/github.com/litmuschaos/charthub.litmuschaos.io

Tech Stack from Frontend

Tech Stack from Backend

Start Frontend

Install it and run:

cd app/client
npm i
npm start

Build it and serve:

cd app/client
npm run build
npm install -g serve
serve -s build

Enable PWA ServiceWorker [OPTIONAL]

Just comment in the following line in the index.tsx:

// registerServiceWorker();

to

registerServiceWorker();

Start Backend Server

cd app/server
go run main.go

The backend go server will be up and running on port 8080

Dev setup: Enable Prettier [OPTIONAL]

  1. Step: Install the Prettier plugin (e.g. the one of Esben Petersen)
  2. Add the following snippet to your settings in VSCode:
    "editor.formatOnSave": true,
    "editor.codeActionsOnSave": {
       "source.organizeImports": true // optional
   },

Usage

Open your browser and go to http://localhost:3000/ to access the frontend

Docker Setup

This project has been configured to run with docker, you can initialize the system by running

 docker-compose up

This will setup the nginx and go server for you. To access the frontend use http://localhost/. You need to have docker and docker-compose installed to use this method.

Resources

Our Standup open community meeting link:

Feel free to drop by and participate in our discussion of new open source projects here

Figma Design document for the Front-end website:

View, review, give feedbacks and add comments, suggests upgrades, just about anything related to design right here

Visit our main Litmus repo:

Were are more than welcoming to a new contributor, pay a visit and star it for updates right here

License

FOSSA Status

charthub.litmuschaos.io's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

charthub.litmuschaos.io's Issues

Search/Filter Bug in Homepage

  • The search/filter result on homepage persists when user moves to another page and returns back to the homepage.
  • Even though the search results persist the search/filter terms don't persist making it difficult to remove the filters/search.

Refactor Components

Refactor and extract reusable components from complex components and pages.

Find out previous charthub deployment setup and make changes in current one

There is no documentation about how the previous charthub was deployed in prod or staging. Current revamp has made some breaking changes to the directory structure and code.
Objectives :

  • Find out previous deployment setup
  • Make changes to the Config and Dockerfiles to make the revamped version compatible for deployment.

ChartHub backend docker Image too large

  • The current docker image for the charthub backend is around 800MB.
  • It can be reduced to smaller size by using a lighter image for the 2nd stage of the build

Create a 404 page

Create the 404 page:

  • When none of the paths in ReduxRouter match, we have to route to the 404 page
  • Only logic has to be implemented, designing comes afterwards as this particular page is not designed yet.

Issues with ChartHub @staging

A collection of issues identified :

  • Version Selector UI glitch during load
  • Forum Link redirects to github.com
  • Any reason for the choice of font size ? (felt it is a bit big at first view)
  • Spelling Error in 'Install this Chaos Experiment' in ExperimentPage
  • Run ChaosEngine -- can we replace this by referring it as a sample- Like we discussed earlier we would like to embed this (going ahead). And it is a user facing CR where people have to edit it w/ their apps. Need to avoid kubectl apply of this
  • This line doesn't read like a pre-requisite. Can we ask for this to be installed before running the experiment (and redirect link to docs instead of the operator README) :
Note:
Install Litmus Operator: a tool for injecting Chaos Experiments
  • The Litmus icon in the sidebar gives an indication that it is clickable. Can we place it elsewhere?
  • cassandra chaos has both k8s website & cassandra website links on the RHS info bar/section (issue from earlier)
  • Cases where videos are not available - clicking that leads us to the same page. Better to not have it (ex: cassandra)
  • The supported platforms is expected to grow as our e2e improves. Probably not a good candidate for vertically stacked -- better as a comma-separated list? (thought)
  • The RHS info bar/section for parent level or chart level pages is different for different categories. Few are extensive (like k8s, cassandra) and some are smaller in size (OpenEBS) -- do you think we can keep it short (like w/ OpenEBS) for all ? (again, this is from earlier). Just website and community link.
  • There are a few dead-links - such as this: https://docs.litmuschaos.io/docs/openebs-pool-container-kill/ (guess it is instead - https://docs.litmuschaos.io/docs/openebs-pool-container-failure/) --should we add a link check in the hub's CI/e2e? (we added something in docs recently: litmuschaos/litmus-docs#226. But I guess we need alternate ways as the source is a YAML field). Might be more of a verification needed on the chaos-charts repo side? Worth spending some time.
  • Any specific reason on persisting the footer across all hub pages (the older hub had it only on the landing page) - not sure what the best practices are, but I felt it is a bit redundant..most of the pages inside are expected to be bit more..focused/less clutter ?
  • pop-up/dialog-box v/s page -- what are the considerations generally - I see that the "Install All Experiments " is now a separate page
  • (wishlist/minor) The info section on the RHS has the same icon (pin/link) for all - useful links/maintainers/platforms/maturity. Do you think we should have different representations
  • There is an older bug related to round-off (total exp runs: 1957 in page, but 2.0k+ on the card ..ex: container-kill) -- can we address this too.
  • Top contributors is a fixed list by commit count or it is a rolling thing -- I see different sets of 5 names
  • The search is still page based, i.e., can search only items on that page. We are planning to make it text-based right .. (this might be planned, just jotting down in no particular order)
  • For generic exp - can we get the L embedded in K8s or something.
  • The FAQ link leads to MayaData helpcenter -- Should it lead to the FAQs on docs?
  • Can we change the word Bugs to "Issues" -- the github issues hold both bugs as well as Enhancement/Feature Requests.
  • (minor) Some branding things: Should be have copyright MayaData? It should be LitmusChaos Authors right - which is what we have in our license files. Also, contact should be -- a maintainers mailing list over mayadata support? For ex. openebs.io, chaosmesh.com don't have mayadata or pingcap references
  • We have been fetching manifests and storing locally on the container. Are we still doing that, we have the same sync period here as well?

Base Layout setup

Make the base layout of the new UI and breakdown the work into smaller components.

  • Make sidebar
  • Create theme data
  • Design footer
  • Leave content space for the body

New Card component design

  • Make the new card components according to design.
  • Create the reduce actions for fetching the card Data

Architecture change

Restructuring the charthub UI for better scalability and maintainability.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.