PayOff is an offline payment web appm enabling peer-to-peer transactions via Bluetooth using the Web Bluetooth API. It allows users to scan nearby devices, establish connections, and send payment data — completely offline.
PayOff makes offline payments possible by leveraging Bluetooth connectivity between two browsers. It's ideal for areas with limited internet access or situations where offline transactions are more convenient.
Key Capabilities:
- 💰 Send/receive payments without the internet
- 📡 Scan and connect to nearby Bluetooth devices
- 🔐 Securely transmit payment data
- 🕶️ Dark mode support for a better visual experience
- 🧾 View payment history and connection status
- 🔗 Offline P2P payments using Web Bluetooth
- 🌐 Modern UI with Tailwind CSS
- 📱 Mobile and desktop compatible
- 🌙 Dark mode (class-based)
- 🧭 Navigation with React Router
- 📊 Payment history tracking
- ✨ Smooth animations and gradients
/src ├── components # Reusable UI components (Header, Button, etc.) ├── pages # Main pages (Login, Home, Scan, PaymentHistory, etc.) ├── assets # Static files like icons or images ├── App.tsx # Main application layout └── main.tsx # Entry point for React
/public └── index.html # Root HTML file
tailwind.config.js # Tailwind CSS configuration vite.config.ts # Vite build config
yaml Copy Edit
- ⚛️ React with TypeScript
- 🌬️ Tailwind CSS for styling
- 🚀 Vite for fast builds
- 🌐 Web Bluetooth API for offline communication
- 🛣️ React Router for routing
- Node.js >= 16
- npm or yarn
- A browser that supports the Web Bluetooth API (Chrome recommended)
git clone https://github.com/abhaysingh1122/Pay-Off.git
cd Pay-Off
npm install
npm run dev🌍 Live Demo Hosted on Netlify: 🔗 https://pay-off.netlify.app
🤝 Contributing Contributions are welcome!
-
Fork the repo
-
Create a feature branch: git checkout -b feature/feature-name
-
Commit changes: git commit -m "Added new feature"
-
Push to branch: git push origin feature/feature-name
-
Open a pull request
Future Updates:
- Making more appealing and clean UI.
- Launching an app to actually make it for offline view easily.
This project is licensed under a custom License - see the LICENSE file for details.