Skip to content

(LHL Project - Final Project) Real-time App for joining and connecting with communities sharing similar interests as you, making friends in the process - inspired by Discord.

Notifications You must be signed in to change notification settings

EavanK/disnode

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

Disnode

A real-time app for finding and connecting with communities sharing similar interests as you, making friends in the process - inspired by Discord.

Built with ReactJS, Node.js, Express, PostgreSQL, Material-UI 5.3, Socket.IO, AWS (S3), JWT, and hosted with Netlify & Heroku

» View Live Demo «

We all use one of chat applications every day. Before I started studying development, I wondered how chat apps are built. I could've found a piece of answers during Bootcamp. And since we (Adam, Jonathan) had similar ideas that we wanted to create our own chat application, We decided to build Disnode.

📚 Introduction

Disnode is a full-stack application that allows users to create or join existing servers, connecting with others that share similar interests.

🤝 Collaborators:

Each member focused mainly on different parts for this project, while also familiarizing each other with the rest of the application for context and also we tried our best to be involved with all the stack.

  • Hyunsu Kim (@EavanK) - Middleman for backend/frontend (wire-ups), Front-end (React States/components), User Authorization - JWT (server + client) & API
  • Adam Hirzalla (@adamhirzalla) - Back-end (server and API routes), DB Architecture (ERD/Schema/Queries + shaping data), Sockets (server + client), AWS-S3 (server + client) & Front-end (React Contexts/Reducers + refactors)
  • Jonathan Su (@hjonsu) - Front-end (styling/design), MUI components & Wireframes

This app was created as part of our final project for Lighthouse Labs - Web Development Bootcamp. The goal was to create a full-stack application from start to finish in just two weeks.

⚛️ Stack and Tools

⭐ Features

  • Real-time events for almost all features (sockets)
  • Users can customize their profiles, and add connections to their socials or other platforms, which other users can view
  • Users can create or join multiple servers
  • Users can search for existing servers through title/invite codes/tags, or browse through a list of all servers
  • Each server can have as many channels, each having its own messages instance (used for categorization within a server)
  • Users can add other users to their friends list
  • Member role system (Owner, Admins, Users) with different permissions for each

✨ Special Features:

  • Live seen-by feature for all messages
  • Live online status indicator for server members
  • Live tagging/mentioning other members in chat messages
  • Live notifications for new messages and member tags/mentions
  • Upload images, GIFs as profile pictures and server logos
  • View other members' profiles and view their linked connections
  • Members can accept/reject incoming friend requests, or cancel outgoing requests
  • Server Admins can kick members from server, create/edit/delete server channels, and delete chat messages for moderation purposes
  • A server Owner can promote members to Admins, pass down ownership to an Admin, and edit server settings
  • Each role has different role colors which are used for chat messages to quickly identify the role of the sender by color
  • Members can copy server invite codes to clipboard and share it with other members to find and join the server

📷 Screenshots

demo

login

home

edit-profile

search-server

searched-server

create-server

edit-server

message-notification message-mention

messages

friend-request

About

(LHL Project - Final Project) Real-time App for joining and connecting with communities sharing similar interests as you, making friends in the process - inspired by Discord.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 99.5%
  • Other 0.5%