https://github.com/connellr023/chatter
A web based chat application that is entirely oriented around temporary sessions.
https://github.com/connellr023/chatter
chat-application nodejs sockets sockets-io vue
Last synced: about 2 months ago
JSON representation
A web based chat application that is entirely oriented around temporary sessions.
- Host: GitHub
- URL: https://github.com/connellr023/chatter
- Owner: connellr023
- License: mit
- Created: 2023-12-12T17:00:04.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-07-13T18:40:57.000Z (11 months ago)
- Last Synced: 2025-02-10T21:36:51.567Z (4 months ago)
- Topics: chat-application, nodejs, sockets, sockets-io, vue
- Language: TypeScript
- Homepage: https://chatter-lqqb.onrender.com/
- Size: 896 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
#
> 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,
```bash
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,
```bash
cd chatter-api
```
```bash
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,
```bash
cd chatter-client
```
```bash
npm run test
```### Building
Build the client by,
```bash
cd chatter-client
```
```bash
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,
```bash
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
![]()
![]()
![]()