Skip to content

Commit

Permalink
docs: update readme for local dev
Browse files Browse the repository at this point in the history
  • Loading branch information
jbrunton committed Aug 26, 2024
1 parent df00af6 commit 05f4c70
Showing 1 changed file with 22 additions and 9 deletions.
31 changes: 22 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,17 +6,30 @@

This project is an exercise in developing good clean architecture and CI/CD practices. It includes (or will include):

* Infrastructure as Code with [Pulumi](https://www.pulumi.com/), including staging and ephemeral dev environments (with automatic dev environment cleanup).
* CI including linting, unit, integration and mutation tests, and automated end to end tests with [Playwright](https://playwright.dev/).
* A clean architecture, including dependency inversion enforced through linting rules with [eslint-plugin-boundaries](https://github.com/javierbrea/eslint-plugin-boundaries).
* Separate domain, data and application boundaries in the application. Domain logic is completely separated from data access layers using [verified fake implementations](https://github.com/jbrunton/chat-demo/tree/main/services/api/src/data/repositories).
* Continuous deployment pipelines to staging and production environments.
* Automatic documentation of code with [TypeDoc](https://typedoc.org/) deployed using GitHub Pages to [jbrunton.github.io/chat-demo](https://jbrunton.github.io/chat-demo/), and Open API docs deployed along with the api ([chat-demo-api.jbrunton-aws.com/docs](https://chat-demo-api.jbrunton-aws.com/docs)).
* [ ] TODO: Automatic dependency updates (including automerging for minor version changes) with Renovate.
- Infrastructure as Code with [Pulumi](https://www.pulumi.com/), including staging and ephemeral dev environments (with automatic dev environment cleanup).
- CI including linting, unit, integration and mutation tests, and automated end to end tests with [Playwright](https://playwright.dev/).
- A clean architecture, including dependency inversion enforced through linting rules with [eslint-plugin-boundaries](https://github.com/javierbrea/eslint-plugin-boundaries).
- Separate domain, data and application boundaries in the application. Domain logic is completely separated from data access layers using [verified fake implementations](https://github.com/jbrunton/chat-demo/tree/main/services/api/src/data/repositories).
- Continuous deployment pipelines to staging and production environments.
- Automatic documentation of code with [TypeDoc](https://typedoc.org/) deployed using GitHub Pages to [jbrunton.github.io/chat-demo](https://jbrunton.github.io/chat-demo/), and Open API docs deployed along with the api ([chat-demo-api.jbrunton-aws.com/docs](https://chat-demo-api.jbrunton-aws.com/docs)).
- [ ] TODO: Automatic dependency updates (including automerging for minor version changes) with Renovate.

## The demo application

The project implements a very basic realtime chat app at [chat-demo.jbrunton-aws.com](https://chat-demo.jbrunton-aws.com).

* From the home screen you can create "rooms". Each room has a unique URL. Anyone connecting to the room can chat using server-sent events.
* The app responds to commands prefixed with `/`. Type `/help` into the chat window to get assistance.
- From the home screen you can create "rooms". Each room has a unique URL. Anyone connecting to the room can chat using server-sent events.
- The app responds to commands prefixed with `/`. Type `/help` into the chat window to get assistance.

## Local dev

Clone the repository, and then:

```console
docker compose up -d
pnpm install
pnpm dev:setup
pnpm dev
```

The web client will then be running locally at http://localhost:5173/.

0 comments on commit 05f4c70

Please sign in to comment.