Skip to content

Instantly share code, notes, and snippets.

@mia-riezebos
Created December 18, 2019 19:35
Show Gist options
  • Save mia-riezebos/197791ea9a300fe326d633e931bf6625 to your computer and use it in GitHub Desktop.
Save mia-riezebos/197791ea9a300fe326d633e931bf6625 to your computer and use it in GitHub Desktop.
# The Abyss
A place meant for anonymously venting your daily struggles, no matter how severe.
## Interface
dark grey web page with subtle twinkling stars in the background, a message fades in and stays a certain duration depending on the length of the message.
after that duration, a next button and a text box appear so that you can read more vents or even post your own vent.
Every time a vent is read, a shooting star will shoot across the screen.
A possibility to anonymously reply to a vent you've read, if on the receiving end of such a reply, a slightly slower and bigger shooting star will shoot across the screen and drop into a little envelope at the bottom left just above the textbox, where the receiver can click the envelope and read the reply.
the envelope is hidden until a user receives their first reply.
when there are unread replies, the envelope will have a white fill, if there are no new replies, the envelope will only have a white stroke.
a registered doesn't have to be online to receive replies, they will load whenever the receiver "logs in"
anonymous venters can only receive replies as long as their cookies stay intact. (so they will lose their name and anon account upon browser restart).
(every cookie session has a TTL of 2 days, after a user closes the site the two days timer will start, if after two days the cookies haven't been registered again, it's safe to assume the user has closed their browser and it's safe to clear their data. this will release their displayname and stop showing their vents to the public).
`TTL = Time To Live`
## Login
The page will have a small login button in the top right, when clicked this will give a popup with a text box where someone will enter their `UUID` and password to log in.
A button to register will give the user a text box with a `UUID` (they can't edit this), a box with a `displayName` (this will be a combination of 2-3 randomly picked english nouns longer than 2 characters, separated by a `-` (and a re-roll button so users have a little control over their `displayName`)), and a blank password box where users have to enter a somewhat safe password (minimum of 8 characters, support for extended ascii) and a "password strength" indicator.
when a user logs in, all the vents sent before their login (that still have their `cookies` as the `messageAuthor`) will be changed so that the `messageAuthor` is their `UUID`. This is so that potential replies to a vent sent before login can still be received.
`UUID = Unique ID assigned to a user upon registration, used for login`
`messageAuthor = cookies or UUID`
## Safety & Security
Every vent/message will be attached to a `messageAuthor`, this `messageAuthor` has an entry of a hashed IP, this is not for usage data or data collection, this is so that users can mute venters that get too graphic or too triggering for them to see. they will not receive any vents/messages/replies from those `messageAuthors` anymore. A user can also report messages for containing identifying information or descriptions of illegal activities. It is up to users to report private messages. (since moderators can't see these messages until a user reports one).
every private message has their own decryption key, accessible only by the users involved and when a message is reported this decryption key is shared with **only** moderators.
every vent/message will also have a subtle "voting" system where users can flag how safe for work the content in the message is.
this rating is meant so that potentially triggering messages will not be shown upon the first page load, a user should be allowed to configure their sensitivity rating, if not configured, it will determined by a combination the ratings of their own posts and a slowly decreasing personal sensitivity rating. (it will stop decreasing when a user mutes someone for triggering content or sets their personalized value)
public messages are kept in clear text and everyone can see them.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment