diff --git a/README.md b/README.md new file mode 100644 index 0000000..9776dfd --- /dev/null +++ b/README.md @@ -0,0 +1,78 @@ +## CorDis - Own your voice + +CorDis is a text and voice chat client with UI based on Discord. + +[Client](data/client.png) + +[Server](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` diff --git a/data/client.png b/data/client.png new file mode 100644 index 0000000..3e7448f Binary files /dev/null and b/data/client.png differ diff --git a/data/server.png b/data/server.png new file mode 100644 index 0000000..fd1594e Binary files /dev/null and b/data/server.png differ