79 lines
2.0 KiB
Markdown
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`
|