An open API service indexing awesome lists of open source software.

https://github.com/programordie2/swagchat

SwagChat is a secure way to chat with your friends, right in your browser!
https://github.com/programordie2/swagchat

Last synced: 10 months ago
JSON representation

SwagChat is a secure way to chat with your friends, right in your browser!

Awesome Lists containing this project

README

          



Logo



A secure chat application for all your friends


Platforms
license

## About The Project

![Product Name Screen Shot][product-screenshot]

SwagChat is a secure chat application designed to provide a seamless and safe communication experience for you and your friends. Whether you're discussing the latest trends or planning a group event, SwagChat ensures your conversations remain private and secure.

Key Features:
- **End-to-End Encryption:** All messages are encrypted to ensure complete privacy.
- **Cross-Platform Support:** Available on Linux, macOS, and Windows.
- **Customizable:** Add custom wallpapers and personalize your chat experience.
- **Authentication:** Secure login system to protect your data.
- **Real-time Messaging:** Instant messaging with real-time updates.

### Built With

* [![Node][Node.js]][Node-url]
* ![JavaScript][Javascript]
* [![Socket.io][Socket.io]][Socketio-url]
* [![Express.js][Express.io]][Express-url]

## Getting Started

I can't run my server 24/7, so if you want to try out this cool app, you need to fork this repo and run it locally.

To get a local copy up and running follow these simple steps.

### Prerequisites

This is an example of how to list things you need to use the software and how to install them.
* npm
```sh
npm install npm@latest -g
```

### Installation
1. Clone the repo
```sh
git clone https://github.com/programORdie2/SwagChat.git
```
2. Install NPM packages
```sh
npm install
```
3. Run the project
```sh
npm ./backend/app.js
```

## Usage

This site works easy; just chat! You can add custom wallpapers in the right top of a server.

Make sure you don't forgot to change the JWT keys in the `.env` file!

That's it, I hope you enjoy it!

## Roadmap

- [x] Add basic Auth
- [x] Make backend only send index.html when succesfully authenciated.
- [x] Make sure not-authenciated users can't access the WebSocket.
- [x] Upload pfp on signup.

- [x] Room backgound image resizing on upload (backend and frontend, for faster upload speed and type safety)
- [x] Room bg preview for all screens
- [x] Organize db script better
- [x] Rooms db
- [x] Same name login rate limiting
- [x] Reqister/login error showing in frontend
- [x] Sanitize user input
- [x] Add 404 page
- [x] Prevent email "+" hack
- [x] Add logout button in frontend
- [x] Make uuid secret and identify user by other public id
- [x] Add ws rate limiting
- [x] Add overlay when ws isn't connected
- [x] Beter UI
- [ ] Make phone friendly (current phone view is sh!t)
- [x] Login with both username and email
- [x] Room creation
- [x] Room invitation
- [ ] Invitation management
- [ ] Notifications
- [ ] Rooms browser
- [ ] Email verification

See the [open issues](https://github.com/programORdie2/SwagChat/issues) for a full list of proposed features (and known issues).

## Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are **greatly appreciated**.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement".
Don't forget to give the project a star! Thanks again!

1. Fork the Project
2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)
3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`)
4. Push to the Branch (`git push origin feature/AmazingFeature`)
5. Open a Pull Request

## License

Distributed under the GPLv3 License. See `LICENSE` for more information.

## Contact

Contact me on discord - @programordie

[product-screenshot]: images/screenshot.png

[Node.js]: https://img.shields.io/badge/node.js-35495E?style=for-the-badge&logo=nodedotjs&logoColor=4FC08D
[Node-url]: https://nodejs.org/

[JavaScript]: https://img.shields.io/badge/JavaScript-35495E?style=for-the-badge&logo=javascript&logoColor=F7DF1E

[Socket.io]: https://img.shields.io/badge/Socket.io-35495E?style=for-the-badge&logo=socketdotio&logoColor=4FC08D
[Socketio-url]: https://socket.io/

[Express.io]: https://img.shields.io/badge/Express.js-35495E?style=for-the-badge&logo=express&logoColor=white
[Express-url]: https://expressjs.com/