A modern, full-stack application that allows streamers to receive and display cryptocurrency donations in real-time. Built with Go and React, this application enables streamers to accept TON (The Open Network) cryptocurrency donations and show them on their streams with beautiful, customizable notifications.
- Real-time Donation Notifications: Display eye-catching notifications when you receive crypto donations
- Wallet Monitoring: Automatic tracking of incoming transactions to your TON wallet
- Donation Goals: Set goals and track progress to engage your audience
- WebSocket Communication: Instant updates when donations are received
- Responsive Design: Works great on all devices and screen sizes
- Customizable UI: Flexible styling options for notifications and goals
- Project Structure
- Prerequisites
- Installation
- Configuration
- Running the Application
- Usage
- API Documentation
- Roadmap
- Contributing
- License
The project is organized into two main components:
- RESTful API and WebSocket server for real-time notifications
- Monitors TON blockchain for incoming transactions
- Extracts donation information and broadcasts to connected clients
- Single-page application with React Router for navigation
- Real-time notification display for donations
- Goal tracking and visualization for donation targets
Before you begin, ensure you have the following installed:
- Go 1.16 or higher
- Node.js 14.x or higher and npm
- Git
git clone https://github.com/yourusername/crypto-donations.git
cd crypto-donationscd backend
go mod downloadcd frontend/donations
npm install- Create a
.envfile in the backend directory based on.env.example
cp backend/.env.example backend/.env- Update the wallet address and other settings in the
.envfile
PORT=8080
WALLET_ADDRESS=your_ton_wallet_address
WEBSOCKET_TIMEOUT=60
DEBUG=true
- Create a
.envfile in the frontend/donations directory based on.env.example
cp frontend/donations/.env.example frontend/donations/.env- Update the API URL and other settings in the
.envfile
REACT_APP_API_URL=http://localhost:8080
REACT_APP_WEBSOCKET_URL=ws://localhost:8080
REACT_APP_NOTIFICATION_DURATION=10000
cd backend
go run *.gocd frontend/donations
npm startThe application will be available at:
- Frontend: http://localhost:3000
- Backend API: http://localhost:8080
- Create a TON wallet if you don't have one already
- Add your wallet address to the backend configuration
- You're ready to receive donations!
For testing purposes, you can use the included test page:
- Open
test-donation.htmlin a web browser - Fill in the donation details
- Click "Send Test Donation"
- Watch the notification appear on the Notifications page
To receive real donations:
- Share your TON wallet address with your audience
- When someone sends TON to your address, a notification will appear automatically
- The donation will also contribute to your donation goal progress
- URL:
ws://localhost:8080/ - Description: Provides real-time notification data when donations are received
- URL:
http://localhost:8080/ - Method: POST
- Body:
{ "SenderAddress": "wallet_address", "SenderAddressName": "donor_name", "AmountInTon": 1.5, "Comment": "donation_message" }
-
Finishing Goal Page
- Implementing complete donation goal tracking
- Adding historical data for goal progress
- Supporting multiple simultaneous goals
-
Dashboard Implementation
- Creating a unified dashboard for wallet configuration
- Adding customization options for notification appearance
- Implementing goal management features
- Support for multiple cryptocurrency networks
- Advanced analytics for donation tracking
- Customizable overlay themes
- Integration with popular streaming platforms (OBS, Streamlabs, etc.)
- Mobile app for monitoring donations on the go
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.