New reflection on goals

This commit is contained in:
shockrah 2020-12-12 16:14:09 -08:00
parent ce79d33380
commit f375fb74b7

View File

@ -1,5 +1,59 @@
# FreeChat
Decentralizaed chat platform
## What this is
Currently in a state of design and not implementation. I.E. there's still massive amounts of groundwork that need to be reasoned about before it can be built.
A FOSS chatting platform that brings in more modern features that _a lot_ of people have come to expect.
> Why not just IRC/Discord/Slack/Mumble etc?
A tonne of IRC channel are basically dead since so many have moved to Discord/Slack. Why? Because those platforms have features that IRC just doesn't have. A lot of people have deemed those features worth the switch.
Discord/Slack are proprietary spyware with no real alternative. The quality of the service is high enough for people to ignore the datamining, it's time a proper client came by.
Mumble could work but has an awful reputation amongst regular non-technical users.
> So it's a Discord/Slack clone?
Not really, at least for now chat history is limited kinda like basically every chan/booru. _This can be turned off to preserve all chat history_.
The biggest difference is the lack of data collection; servers collect the following data:
* User id - generated by the server
* User password - generated by the server
* User name - provided by user
* User chat - How much depends on how the server was configured or if a message was pinned to NOT be deleted.
* Users Status - user is online/offline: HOWEVER this is controlled by the user.
* User permissions - To discern admins from less privileged users.
## Working Status
> Is this finished or almost finished?
Short: The API has basic functionality for chatting but still requires more endpoints to be **fully featured**. So yes the API at least is in a MVP state. But everything else is either in infancy or not done.
Long: No. A basic client is still underway and the chat API is missing a metric tonne of features. However The state of the chat API is such that it shouldn't be hard to implement many of the desired endpoints.
## How to help - if you want to
> Writing chat clients
I know not everyone wants an electron based client because it's naturally really bloated. But the normans want something that _just werks_ so electron is a good way of doing that.
The API is dead simple however so it shouldn't be too bad to write a simple client that sends a couple of requests every so often.
If you choose to write a client and want people to know about it I can include a link to the project here/on the wiki.
> Testing
Currently API testing is done with a phony client written in python(client-tests/client.py) and some rust tests.
Anything from a simple `GET /some-route` + response check to a testing pipeline thing is appreciated.
Since testing doesn't really affect users as long as the test is correct and covers new ground it's welcome.