Skip to content

hunter-codefest-2022-hchat created by GitHub Classroom

Notifications You must be signed in to change notification settings

DanielVolchek/hChat

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

The App

hChat is a powerful self-hosted tool built with the needs of CUNY students in mind. It is divided hierarchically through all 25 CUNY schools, containing each schools majors, which contain each majors classes. Every school and major contain their own global chatrooms. Within its immense hierarchy hChat encompasses over 86000 different rooms. Due to it's tremendous asynchronicity through Golangs incredibly efficient goroutines, hChat is capable of maintaining thousands of simultaneous connections and conversations between end users, even with its current self-hosted bottleneck.


The Tech Stack

React - Frontend

The Frontend Functionality and Rendering is written 100% in React. More than anything this choice was made to cope with constant messages and the performance load they could cause. Given React is able to handle live changes highly performatively, this choice was a no-brainer. This was an excellent venture into learning the React Library, updating and managing components, and JSX.

Node/Express - Middleware

Node with Express is used to export the web app build over port 3000. This is simply a precautionary measure to prevent unnecessary load in the case the Go server is under high stress.

Go - Backend

Go runs the backend simply due to it's concurrent capabilities. Goroutines handle concurrency better than any language on the market, and with a project of this scale, which by nature requires the capability to maintain thousands of potential connections in tens of thousands of rooms, Go was the clear choice. The Go Server is capable of both Websocket connections over the frontend website and potential TCP connections over a desktop client or CLI, while sharing the same pool of messages and users.


The Devs

Daniel Volchek

Team Lead/Lead Dev

Personal Github Link

I designed the project and lead development for the functionality of both the GO backend and the React frontend along with organizing the team collaboration/roles, and Git Flow. Along the way I extensively learned and researched GO, HTML/CSS/JS/REACT, Git, SQL, and web hosting with NGINX/NODE

Deland Chen

Developer

Researched and assisted design of frontend and backend functionality. Designed and implemented Python scripts to manipulate and update extensive class database entries. Used Git to maintain code

Personal Github Link

Anthony Regner

Designer/Interface Developer

Personal Github Link

I designed the hChat frontend interface using HTML and CSS, including the proposed layout of the interface. I learned HTML and CSS to design and style static webpages, and utilize Flexbox.

...

On the Docket

hChat is still in beta and will be receiving regular updates with bugfixes and new features

The following is a list of additions/changes ordered by current priority

  • HTTPS security
  • Bug testing/fixing
  • Mobile site
  • Active user list
  • User accounts through firebase
  • Improved logging
  • Improved message database querying
  • User settings
  • Dark theme
  • Command Line Interface

About

hunter-codefest-2022-hchat created by GitHub Classroom

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published