cordis/README.md
2023-01-11 21:34:48 -08:00

79 lines
2.0 KiB
Markdown

## CorDis - Own your voice
CorDis is a text and voice chat client with UI based on Discord.
[Client](raw/branch/master/data/client.png)
[Server](raw/branch/master/data/server.png)
## Build / Run
Install Node Dependencies
`npm install`
Build the project
`make build`
This will do the following
- lints with `eslint`
- builds TypeScript with `tsc`
- builds SCSS with `sass`
- [ ] TODO: Use npx/node binary rather than the $PATH version of eslint and tsc (like sass)
## Example Server Setup
Install `postgresql`
[This is very easy and intuitive :)](https://www.postgresql.org/download/)
Create the example server database
`make reset-server`
This will attempt to connect to your local Postgres database using the `postgres` user.
The setup-test-servers script initialize the tables for the server to run two Guilds simultaneously.
Create an invite for your client to connect to a guild
`make create-invite`
This will create a `.cordis` guild invite file in the `dist/server/invites` directory.
See Also
- `make create-invite-heaven` - creates invite to the second server
- `make create-example-roles` - registers the user named 'Elipzer' as an admin
- `make create-memes-messages` - inserts 2000 messages into the #memes text channel
Launch the Server
`make start-server`
You should see some output like this:
```
21:41:11.492 app.js:51 d: g#98536789-eeba-4c50-bf18-eecd264c299c: no fools
21:41:11.499 app.ts:31 d: g#050b3302-e933-4b37-967f-2ec2fa13fbc0: Literally Heaven
21:41:11.502 app.ts:42 i: listening on port 3030
```
## Start the Client
`make start-client`
Click the `+ Add Server` button on the left
Select the `.cordis` file that you created for the guild on the example server.
Select your username and profile picture and you're ready to go!
## Development Notes
The client is built into an Electron app.
- [ ] TODO: Make it into a Web App
The client and server communicate using `socket.io`
The server's schema is defined in `src/server/sql/init.sql`