/grouple

A group chat app for people with similar interests

Primary LanguageJavaScript

Grouple

Background and Overview

Grouple is a web application that allows like-minded Reddit users to chat with other Redditors within a subreddit of choice.

Functionality and MVPs

  • Mobile-first styling allows both mobile and computer users to use the application
  • Reddit users are able to sign in through Reddit's OAuth and access the app directly
  • Information such as a user's subscribed subreddits and accumuluated karma in a specific subreddit received from the Reddit API
  • User profiles and statistics will be recieved from the Reddit API
  • Direct messages in a chatroom will have a single-depth response thread
  • Guests will be able to view a subreddit's chatroom, but will not be able to participate until authenticated
  • User location and timezone will optionally be available for other users to view

Bonus

  • Lazy loading chatroom messages for a smoother user experience and to reduce unnecessary requests
  • Karma related rewards such as avatar and profile borders
  • Proximity chat to contact other like-minded Redditors around you

Technologies and Technical Challenges

  • MongoDB
  • Express
  • React
  • Node.js
  • Socket.IO
  • Bootstrap

Weekend Goals

  • Reddit API (OAuth, GET requests)
  • Backend setup
  • Websockets

Things Accomplished Over the Weekend

  • Create a backend with working login and signup
  • Get the OAuth working through the Reddit API
  • Get user data through the Reddit API

Group Memebers and Work Breakdown

Donguk Kim, Franklin Chang, Kevin Choy, Jason Wong

Kim's primary responsibilities will be:

Franklin's primary responsibilities will be:

Kevin's primary responsibilities will be:

  • Researching OAuth
  • Implementing OAuth into the application

Jason's primary responsibilities will be:

Weekend

  • Study MERN stack, Reddit API, Websockets
  • Complete backend setup
  • Selecting bootstrap template
  • Complete Reddit API request functionality (OAuth, GET)
  • Backend: models, database, controllers, server, websockets, routes

Day 1 (Mon)

Day 2 (Tue)

Day 3 (Wed)

Day 4 (Thur)

Day 5 (Fri)

Day 6 (Sat)

Day 7 (Sun)