Skip to content

Qovery/console

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


Enable Developers Self-Service with Qovery IDP (Internal Developer Platform)

Website: https://www.qovery.com

GPLv3 License

At Qovery for our Console, we use a couple of technologies, like Nx, React, React Query, Tailwind, and Storybook.


Getting Started

First use

yarn && yarn setup

Start the project on http://localhost:4200

yarn start

Start Storybook on http://localhost:4400

yarn storybook

Run tests

yarn test

Generate a library

nx g @nx/react:lib my-lib

Generate a component

nx g @nx/react:component my-component

Run unit tests with Jest

nx affected:test

Run end-to-end tests with Cypress

nx affected:e2e

Contributing

Qovery Console is actively develop and we need some help, you are welcome to contribute! You can propose improvements directly from the issues page or include them in your pull request for changes.

Architecture Decision Records

We try to document our architecture decisions using Architecture Decision Record principle. You can find our ADR documents here and the template used follows this one

Community support

For help, you can use one of the channels to ask a question:

  • Forum: (Bug reports, Questions)
  • GitHub: (Bug reports, Contributions)
  • Twitter: (Get the news fast)

FAQ

Why does Qovery exist?

At Qovery, we believe that the Cloud must be simpler than what it is today. Our goal is to consolidate the Cloud ecosystem and makes it accessible to any developer, DevOps, and company. Qovery helps people to focus on what they build instead of wasting time doing plumbing stuff.

Why do we use Nx?

  • Nx acts as a robust framework, providing significant benefits for React applications.
  • It supports mono-repo architecture, allowing us to divide our application into multiple reusable entities/libraries.
  • It offers tools to generate components, libraries, applications, and to check the health of our applications (e.g., circular dependencies).
  • By using Nx Cloud, we can cache deployments, run tests, and build only the modified parts of the application.
  • It provides a framework for unit tests with Jest and end-to-end tests with Cypress.

How is the project structured?

To help you navigate through the project, here is a brief overview of its structure.

apps/
└── console/                # General application with main router and tools like PostHog, Sentry, etc.

libs/
├── domains/                # Domain-specific by features
│   └── [feature-name]/
│       ├── data-access/    # Data access layer for the feature
│       └── feature/        # Core logic and components for the feature
│       ...
├── pages/                  # Page components for routing and layout, calling features from domain and common shared utilities and components
└── shared/                 # Shared utilities and components across the application
    ├── ui/                 # Storybook - UI components for reusable user interface elements
    ├── util-[name]/        # Utility functions and helpers
    └── util-queries/       # Shared utility functions for queries
    ...

This organization aims to make the codebase more maintainable and understandable, based on our structure and Nx recommendations. For more information about it, read this article: Organizing and Structuring a React Project with Nx.