connellr023 / Chatter

A web based chat application that is entirely oriented around temporary sessions.

Home Page:https://chatter-lqqb.onrender.com/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

A web based chat application that is entirely oriented around temporary sessions.


Overview

Chatter is a web app centered around a global chat system. It features isolated chat rooms that users can connect to without requiring an account. Currently, all chat rooms are global, however there is infrastructure in place within the server the API to allow for private chat rooms in the future.


Deployment

This web app is deployed on Render here.


Installing Dependencies

Dependencies for the API and client projects can be installed by running,

npm i

in their respective directories.


API Test Suite

In order to run the API test suite see the Actions tab or execute the following,

cd chatter-api
npm run test

The test suite for the API includes unit and networking tests in order to simulate user interaction in an automated environment.


Client Test Suite

The client test suite is also visible in the Actions tab. Otherwise, run the following commands,

cd chatter-client
npm run test

Building

Build the client by,

cd chatter-client
npm run build

This will create a directory called build in chatter-api/src containing the static webpage. The hostname and port the client will attempt to connect to in development mode is localhost:8000 by default otherwise in production it will use the hostname and port within the JavaScript window.location object. If the server is not able to run on port 8000 in development, then this can be changed in chatter-client/src/lib/stream.ts. The server API attempts to host on process.env.PORT or 8000 if not set. The server API can be run in production mode by,

npm run start

Tools

  • The server API was built with express.js and socket.io and tested with Jest.
  • The client was built with the Vue framework and tested with Vitest.

History Of The Project

Chatter was first conceived around 2018 (8th grade for me) as my first PHP project. The scope then was actually larger than this iteration of Chatter as the original included an account system stored on an SQL database through phpMyAdmin running on an Acer chromebook that was emulating Ubuntu. The messaging system consisted of constant HTTP polling requests made by the client. It worked, but of course it was not sustainable for a larger user base. Unfortunately the code is long gone. That's what happens when you use Google Drive as version control.

The second iteration of Chatter was developed by me in 2020 however it was never completed to my satisfaction. In terms of the software, it used completely different technologies than the original. For instance, the client was created using the React javascript framework and the server used Node.js with MongoDB for storing account data. I still have this project private (it will never see the light of day).

This project is the third Chatter incarnation.

Interesting Note: The logo used in all versions of Chatter has remained the same since 2018. That is the only shared aspect this iteration has with the original.


Acknowledgements

This software was built and tested by Connell Reffo in 2023/2024.


License

This software is distributed under MIT License. See LICENSE for more information.


Screenshots Of The Client

About

A web based chat application that is entirely oriented around temporary sessions.

https://chatter-lqqb.onrender.com/

License:MIT License


Languages

Language:TypeScript 80.1%Language:SCSS 9.7%Language:Vue 9.6%Language:JavaScript 0.4%Language:HTML 0.3%