Update README

This commit is contained in:
Paul Carroll 2025-08-08 15:30:43 -04:00
parent 2c039bda8c
commit 305216102e

View file

@ -1,8 +1,53 @@
## Application Architecture ## Application Architecture
![Application Architecture](architecture.png?raw=true "Application Architecture") ![Application Architecture](architecture.png?raw=true "Application Architecture")
This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app). This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app).
## Local Development with Docker
To develop and test the webclient against a local Servatrice server:
### Prerequisites
- Docker and Docker Compose
- Node.js and npm
### Setup Servatrice Server
1. Navigate to the Cockatrice root directory
2. Start the Servatrice server with Docker:
```bash
docker compose up -d
```
3. The server will be available at `ws://localhost:4748`
4. Set authentication to disabled in `servatrice/docker/servatrice-docker.ini`
```
[authentication]
method=none
```
### Setup Webclient
1. Navigate to the `webclient` directory
2. Install dependencies:
```bash
npm install
```
3. Start the development server:
```bash
npm start
```
4. Open [http://localhost:3000](http://localhost:3000)
5. The "Local Server" option should be available in the server list
6. Use any username to connect (no password required)
### Troubleshooting
- Ensure Docker container exposes port 4748: `docker ps` should show `0.0.0.0:4748->4748/tcp`
- Check Servatrice logs: `docker compose logs servatrice`
- Verify WebSocket connection in browser developer tools (Network tab)
## Available Scripts ## Available Scripts
In the project directory, you can run: In the project directory, you can run:
@ -48,26 +93,25 @@ To learn React, check out the [React documentation](https://reactjs.org/).
## To-Do List ## To-Do List
1) RefreshGuard modal 1. ✔️ RefreshGuard modal
- there is no browser support for displaying custom output to window.onbeforeunload
- we should also display a custom modal explaining why they shouldnt refresh or navigate from the site 2. Disable AutoScrollToBottom when the user has scrolled up
- ideally, the custom popup can be synced with the alert, so when the alert is closed, the modal closes too
2) Disable AutoScrollToBottom when the user has scrolled up
- when the user scrolls back to bottom, it should renable - when the user scrolls back to bottom, it should renable
- renable after a period of inactivity (3 minutes?) - renable after a period of inactivity (3 minutes?)
3) Figure out how to type components w/ RouteComponentProps 3. Figure out how to type components w/ RouteComponentProps
- Component<RouteComponentProps<???, ???, ???>> - Component<RouteComponentProps<???, ???, ???>>
4) clear input onSubmit 4. clear input onSubmit
5) figure out how to reflect server status changes in the ui 5. figure out how to reflect server status changes in the ui
6) Account page 6. Account page
7) Register/Reset Password forms 7. Register/Reset Password forms
8) Message User 8. Message User
9) Main Nav scheme 9. Main Nav scheme