An experimental chat platform written in ASP.NET and React, testing organic community moderation through a two-tier "voting" currency. The platform is designed to be as transparent as possible through a public transparency log that lists all user moderation actions (i.e mutes).
- Text chat with user-selectable topics
- Moderation through experimental two-tier "voting" currency
- Video and audio chat with PeerJS
- User inventory -- users can gift each other random items
- Docker & docker-compose
- Liquibase
- (Optional) For better security, change the database password (
CHANGETHIS
in main docker-compose.yml). - Run
docker-compose build
thendocker-compose up
to start the application. You may need to create a Docker volume for the database. - After the initial startup, the database will not be setup. Switch to the
Democrachat/Migrations
folder. Set up Liquibase for Postgres. Create aliquibase.properties
file. Finally, runliquibase update --changeLogFile=liquibase_changelog.xml
.
Now go to http://localhost:8080
This is enough to test the chatting features. To test the experimental moderation features:
- Finalise a user with any name (e.g. "admin")
- Run
docker exec -it democrachat_postgres_1 psql -U postgres -d democrachat -c "UPDATE account SET gold = 999, silver = 999 WHERE username = 'admin'"
url: jdbc:postgresql://localhost:5432/democrachat?user=postgres&password=CHANGETHIS
There are automated integration and unit tests. With the postgres image up, run CUSTOMCONNSTR_Default="Host=localhost;Database=democrachat;Username=postgres;Password=CHANGETHIS;" dotnet test
Replace CHANGETHIS
with the database password.