We all need somebody to talk to every now and then. The simple act of talking to somebody who is listening and supporting can be helpful in a variety of situations: from when you need to make an important decision about your relationship to when you just need to find a bug in your code.
- Anonymous p2p life debugging
- Anonymous chat app for asymmetric peer-to-peer therapy
- General Problem Solver for the era of social computing
- "Dear Teddy, please make everything alright"
- Debug your life
How it works (scenarios)
- You go to a website or launch a mobile app (later).
- Choose whether you need to talk to a teddy bear (role:human) or want to be somebody's teddy bear (role:bear).
- Wait for a few seconds for a match (other random online user who is willing to perform an opposite role).
- You are dropped into a conversation (chat) with pre-filled beginning: Teddy said: "Hey, what's bothering you?"
- From there on the user (role:human) can type her messages and send them to the bear (role:bear)
- To prevent abuse, the bear (role:bear) can only reply with messages from a large number of pre-defined options, such as:
- I understand.
- I wish I could give you a hug right now!
- Where could you have made a mistake?
- I am so sorry to hear that.
- Tell me more.
- What do you think are your options?
- And how about option B?
- Have you tried talking to somebody else about it?
- How old are you?
- How old is he?
- Hold on, I'll be back in a minute.
- I think you really need to go talk to a doctor...
- What does your mother think about it?
- (plus various empathetic emojis)
- At any point both user and bear can leave the conversation (which returns them to a role-choosing screen).
- if the user (role:human) leaves the conversation first, then a message is displayed to the bear (as if from the user): "Thank you, you've helped a lot!"
- if the bear (role:bear) leaves the conversation first, then a message is displayed to the user first ("Hmm, let me think.") and then as soon as a new bear is available he is dropped into the conversation (and asked to read the history of the conversation before continuing).
- Before leaving the conversation each is asked to rate his experience (0-5 stars and leave a comment).
- User (role:human or role:bear) - created every time with a new session (or we can persist it as a unique device via localstorage)
- Chat - users are assigned to a chat. One chat per user at a time.
- Message - single saying in a conversation. Belongs to conversation and user.
- Phrase - one of the large number of pre-defined sayings that bear may say.
Routes & Pages
/- home. choose whether you want to be a bear or need a bear or go to about to find out more. When choice is made, we create a new user, assign the right role to him / her and redirect to the matching page.
/matching- loading page that is displayed while we are waiting for a match for a current user.
/chats/:chatId- single conversation page. Protected: available only to the users that are currently assigned to this conversation and admins. Displays the history (chat) of the conversation. And for the users - message entry form (freeform for user and search and choose from pre-defined for bear) as well as "Leave conversation" button.
/about- static page with some description about the project and contact form