An open API service indexing awesome lists of open source software.

https://github.com/cdklabs/construct-hub-webapp

React web app for Construct Hub
https://github.com/cdklabs/construct-hub-webapp

Last synced: about 11 hours ago
JSON representation

React web app for Construct Hub

Awesome Lists containing this project

README

          

# Construct Hub Web App

This project maintains the React web app for [Construct Hub].

[construct hub]: https://github.com/cdklabs/construct-hub
## :hammer_and_pick: Development

### :clipboard: Prerequisites:

- Node v18.20 or later
- yarn v1

### :computer: Running the website

To run the web app locally, fork the repository and run `yarn` or `yarn install`
to download its dependencies. Then, run `yarn dev` to start the development
server on localhost:3000.

By default, all requests for backend data will be proxied to
`https://constructs.dev`. To change this to point to a different version of the
website (such as your own deployment of the [Construct Hub
construct](https://github.com/cdklabs/construct-hub), modify the value of
PROXY_URL in the beginning of `.projenrc.js` and then run `yarn projen` to
update the configuration everywhere. You may then need to restart `yarn dev` for
changes to take effect.

### :gear: Configuration

Feature flags are used to test new features. You can enable them on your local
build by adding a file named `config.json` to the `public/` directory:

```
{
"featureFlags": {
"homeRedesign": true,
"searchRedesign": true
}
}
```

The list of all configuration options and feature flags is defined in
`src/api/config/index.ts`.

### :test_tube: Running integration / E2E tests

Integration tests are written using Cypress and can be found within the
`cypress/` directory. The full test suite can be executed in the CLI by running
`yarn cypress:run`, or you can run `yarn cypress:open` to debug individual tests
interactively.

### :toolbox: Other tools

Our repository has a GitHub action set up to automatically update minor and
patch versions of dependencies. To update the major version of a dependency,
change the version directly in `package.json` and install it with `yarn` so that
`yarn.lock` is updated. If you need to add a new dependency, find the section of
`.projenrc.js` where the dependencies (or dev dependencies) are located, add the
dependency name, and run `yarn projen`.

The `yarn analyze-exports` command can be used to automatically generate a list
of TypeScript exports that are not being used within the app.

## :cop: Security

See [CONTRIBUTING](CONTRIBUTING.md#security-issue-notifications) for more
information.

## :balance_scale: License

This project is licensed under the Apache-2.0 License.