Transfer text between devices instantly using QR codes.
Ever wished you could just beam text from one device to another? No apps. No logins. No searching through endless chats. Just paste, scan, done. That's System Paster.
Let's be real. When you need to move a quick piece of text between devices, this is what happens:
- Open WhatsApp
- Search your own chat or message yourself
- Paste the text
- Send it
- Open WhatsApp on another device
- Find the message (again)
- Copy the text
Result: 7 steps, 3-5 minutes wasted on something that should take 10 seconds.
Here's how it actually works:
- Open the website
- Paste your text
- Click send
- Scan the QR code from another device
- Copy your text instantly
That's it. No login. No account. No searching. Just pure simplicity.
| Feature | Traditional Method | System Paster |
|---|---|---|
| Steps | 7οΈβ£ | 5οΈβ£ |
| Time Required | β±οΈ 3-5 minutes | β‘ 10-30 seconds |
| Login Needed | β Yes | β No |
| Works Everywhere | π± Limited | π All browsers |
| Searching Required | π Yes | β¨ No |
| Privacy | π₯οΈ Server-stored | π Temporary session |
- π QR-Based Transfers β Unique QR code for every transfer
- π Zero Login Required β No signup, no passwords, no headaches
- β‘ Blazing Fast β Transfer text in seconds across devices
- π Unique Sessions β Each transfer gets its own secure ID
- π± Works Everywhere β Desktop, tablet, mobile browsers
- π Auto Expiring β Messages disappear automatically for privacy
π± Device 1: Sender
β
π Paste your text
β
π² Generate unique Session ID
β
πΎ Backend stores temporarily
β
π² QR code appears on screen
β
πΈ Device 2: Receiver scans QR
β
π Backend retrieves instantly
β
β¨ Text appears on Device 2
β
π One-click copy & done!
- π¨ Frontend: React handles the UI and displays your QR code
- βοΈ Backend: Spring Boot API manages the data flow
- πΎ Database: MySQL keeps your message safe (temporarily)
- π² QR Code: Encodes the session ID for seamless scanning
Frontend
- βοΈ React.js β Modern UI components
- β‘ Vite β Lightning-fast development
- π Axios β Talk to the backend
- π£οΈ React Router β Handle URL sessions
Backend
- β Java + Spring Boot β Powerful API
- ποΈ Spring Data JPA β Database magic
- πΎ MySQL β Secure storage
Tools
- π Git & GitHub β Version control
- π» VS Code β Code editor
System-Paster/
βββ π¨ frontend/
β βββ src/
β β βββ components/
β β β βββ TextInput.jsx
β β β βββ QRDisplay.jsx
β β β βββ MessageReceiver.jsx
β β βββ pages/
β β β βββ SendPage.jsx
β β β βββ ReceivePage.jsx
β β βββ services/
β β β βββ api.js
β β βββ App.jsx
β βββ package.json
β
βββ βοΈ backend/
β βββ src/main/java/com/systempaster/
β β βββ controller/
β β β βββ MessageController.java
β β βββ service/
β β β βββ MessageService.java
β β βββ repository/
β β β βββ MessageRepository.java
β β βββ model/
β β β βββ Message.java
β β βββ SystemPasterApplication.java
β βββ pom.xml
β
βββ π docs/
βββ API_DOCUMENTATION.md
Generates a unique session ID for each transfer. This ID gets encoded into your QR code.
POST /session
Response π€
{
"sid": "363c9d43-8920-4a6d-8a2f-8cdb85b3574c"
}Store your text message with the session ID. It lives temporarily in the database until retrieved.
POST /save Content-Type: application/json
Request π₯
{
"sid": "363c9d43-8920-4a6d-8a2f-8cdb85b3574c",
"message": "Hello from System Paster"
}Response β
{
"message": "Saved successfully"
}Get the stored message using the session ID. Receiver devices call this to fetch the text instantly.
POST /get-message Content-Type: application/json
Request π₯
{
"sid": "363c9d43-8920-4a6d-8a2f-8cdb85b3574c"
}Response π¨
{
"message": "Hello from System Paster"
}- Node.js (v16+)
- Java JDK (v11+)
- MySQL (v8+)
cd frontend
npm install
npm run devπ Runs on http://localhost:5173
cd backend
mvn clean install
mvn spring-boot:runπ Runs on http://localhost:8080
CREATE DATABASE system_paster; CREATE TABLE messages ( id INT AUTO_INCREMENT PRIMARY KEY, session_id VARCHAR(255) UNIQUE NOT NULL, text LONGTEXT NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, expires_at TIMESTAMP DEFAULT DATE_ADD(NOW(), INTERVAL 1 HOUR) ); CREATE INDEX idx_session_id ON messages(session_id);
- π Share code snippets instantly
- π Transfer phone numbers in seconds
- π Pass URLs without typing
- π Quick temporary notes
- π Share API keys securely
- π Real-time WebSocket transfers
- π File sharing support
- πΌοΈ Image uploads
- β° Custom message expiry
- π End-to-end encryption
- π² PWA support
- π¨ Mobile UI improvements
Want to make System Paster better? We'd love your help!
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'β¨ Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
System Paster solves a real, everyday frustration: getting text from one device to another shouldn't be complicated. This project showcases full-stack development done rightβclean UI, powerful backend, and efficient data flow.
Perfect for developers who value their time and want a no-nonsense way to share quick information across devices.
Found a bug? Have an idea? Create an issue on GitHub. We're here to help!
Open source under the MIT License.
Built with β€οΈ for developers who hate wasting time
Star β us on GitHub!