https://github.com/rohitedathil/syncserv
A simple web app to sync text across multiple devices. Made with Go and Svelte
https://github.com/rohitedathil/syncserv
backend gin go golang real-time teaching-tool websocket
Last synced: 8 months ago
JSON representation
A simple web app to sync text across multiple devices. Made with Go and Svelte
- Host: GitHub
- URL: https://github.com/rohitedathil/syncserv
- Owner: RohitEdathil
- Created: 2022-11-05T12:54:18.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2022-11-15T18:17:44.000Z (over 3 years ago)
- Last Synced: 2025-04-06T19:38:05.202Z (about 1 year ago)
- Topics: backend, gin, go, golang, real-time, teaching-tool, websocket
- Language: Go
- Homepage:
- Size: 158 KB
- Stars: 5
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# TypeSync
A simple web app to sync text across multiple devices.
The idea is that there is a broadcaster who types in code and listeners who see the code in real time. Sort of like a text-only Google Meet. Backend is written in **Go** and frontend is written in **Svelte**. This could be particularly useful for teaching and learning.
This repo contains the backend code.
Find the frontend code [here](https://github.com/RohitEdathil/syncfront).
## Features
- Broadcast code from a broadcaster to multiple listeners
- Broadcaster can see how many listeners are connected
- Listeners can let the broadcaster know if they are able to follow along
## [Demo](https://typesync.vercel.app/) 🪄
## Usage
## Broadcaster
### 1. Create a TypeSync room

### 2. Share the room link with your listeners

### 3. Start typing, press "Send" (Or Ctrl + Enter) to send the code

### 4. See how many listeners are connected and how many are following along

## Listener
### 1. Go to the room link shared by the broadcaster (Or enter the room code)

### 2. Let the broadcaster know if you are able to follow along (Press to toggle)

## Notes
If there are no listeners, broadcaster closes the tab, and is not seen for 30 minutes, the room will be deleted within a another 30 minutes.
## Frameworks and Libraries
- [Gin](https://github.com/gin-gonic/gin) : Web framework
- [WebSockets](https://github.com/gorilla/websocket) : For real-time communication
## Why?
- I thought this would be a fun project to work on
- I wanted to learn Go
- I wanted to get better at backend development
- I wanted to learn Svelte (Not really, but was a good excuse to learn it)
- I wanted to showcase my skills in improving a prduct (i.e. More updates to come)
## Contributing
Please feel free to open an issue or a PR if you have any suggestions or improvements.
Also, if you find any bugs, please open an issue.