## CorDis - Own your voice CorDis is a text and voice chat client with UI based on Discord. [Client Screenshot](data/client.png) [Server Screenshot](data/server.png) ## Build 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 testing messages into the #memes text channel to help with testing infinite scroll 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`