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!
- Host: GitHub
- URL: https://github.com/programordie2/swagchat
- Owner: programORdie2
- License: gpl-3.0
- Created: 2024-06-06T22:57:05.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-06-28T21:52:21.000Z (over 1 year ago)
- Last Synced: 2024-06-28T22:49:23.623Z (over 1 year ago)
- Language: JavaScript
- Homepage:
- Size: 3.6 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
A secure chat application for all your friends
## 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/