Skip to content

veganafro/roomchata

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Roomchata

Overview

Talking to people you know is more fun than talking to people you do know. Use roomchata to talk to people you would already be talking to on messenger. This is basically a bad messenger clone. Have fun.

Data Model

Roomchata will store users and messages

  • users can message multiple people (via references)
  • conversations can have multiple messages in them (by embedding)

An Example User:

{
    username: // a user defined username,
    inconspicuous: // a password hash,
    conversations: // an object of references to conversations the user has
}

An Example Conversation:

{
    message_id: { // an object keeping track of the message metadata
        sender: // the name of the sender
        text: // the message text
    }
}

An Example Message:

{
    sender: // the name of the sender
    text: // the message text
}

An Example Conversation with Embedded Items:

{
    'conversation_id': {
        '2017-11-02 10:26:47 PM EST': {
            'sender': 'ait student 69',
            'message': 'wao thz prjct z s fn'
        },
        '2017-11-02 10:16:37 PM EST': {
            'sender': 'ait student 69',
            'message': 'i lrv ait'
        }
    }
}

Wireframes

/ - the login page

base

/home - a landing page showing the rooms you belong to and a search function that creates rooms if they don't exist

home

/room - the room's chat history and a place to send a message to the room

room

Site map

sitemap

User Stories or Use Cases

  1. as non-registered user, I can register a new account with the site
  2. as a user, I can log in to the site
  3. as a user, I can create a new conversation
  4. as a user, I can go read the chat history of conversations I belong to
  5. as a user, I can send new messages to a conversation

Research Topics

  • (5 points) Integrate user authentication
    • I'm going to be using passport for user authentication
    • make an account by signing up or log in with username [email protected] and password password69
    • see roomchata.herokuapp.com for login page
  • (2 points) React.js
    • used React.js as the frontend framework; it's a challenging library to learn, so I've assigned it 2 points
  • (5 points) Firebase
    • used Firebase as the database because it has built in database listeners

12 points total out of 8 required points

Annotations / References Used

  1. passport.js authentication docs
  2. tutorial on React.js
  3. firebase documentation