A full-stack cryptocurrency wallet application similar to Redot Pay, built with React and Flask.
- Beautiful Login/Signup System - Professional crypto wallet interface
- Multi-Network Wallet Generation - Support for Ethereum, Polygon, BSC
- Send Crypto Functionality - Complete transaction system with validation
- Receive Crypto - QR codes and address sharing
- Transaction History - Track all wallet activities with filters
- Real-time Balance Updates - Live portfolio tracking
- Responsive Design - Works on desktop and mobile
- User Management - Complete user oversight and control
- Transaction Monitoring - Real-time transaction tracking with analytics
- System Analytics - Platform statistics and insights
- Settings Management - Complete system configuration
- Security Controls - Advanced security and compliance features
- React 18 with TypeScript
- Vite for fast development and building
- Tailwind CSS for styling
- Radix UI for components
- React Router for navigation
- Context API for state management
- Flask with Python
- SQLAlchemy for database ORM
- SQLite database (production ready)
- Flask-CORS for cross-origin requests
- JWT Authentication for security
- RESTful API design
payoova2/
βββ src/ # Frontend React application
β βββ components/
β β βββ auth/ # Login/Signup components
β β βββ wallet/ # Wallet functionality
β β βββ admin/ # Admin panel components
β β βββ common/ # Shared components
β βββ contexts/ # React contexts
β βββ hooks/ # Custom React hooks
β βββ App.jsx # Main application
βββ backend/ # Flask backend application
β βββ src/
β β βββ models/ # Database models
β β βββ routes/ # API routes
β β βββ static/ # Built frontend files
β β βββ main.py # Flask application
β βββ requirements.txt # Python dependencies
βββ public/ # Static assets
βββ package.json # Node.js dependencies
βββ README.md # This file
- Node.js 18+ and npm
- Python 3.8+
- Git
-
Clone the repository
git clone https://github.com/ahmadfarazllc/payoova2.git cd payoova2 -
Test Setup (Optional but Recommended)
python test_startup.py
This will verify that all components can be imported and the app can start.
-
Quick Setup (Recommended)
python start.py
This will automatically install all dependencies and set up the project.
-
Manual Setup
Install frontend dependencies
npm install --legacy-peer-deps
Install backend dependencies
cd backend python install_deps.py # Or manually: pip install -r requirements.txt
-
Optional: Install Web3 for Real Blockchain Functionality
Windows Users (Easiest):
# Double-click this file or run in command prompt install_web3_windows.batPython Scripts:
# Standard installation python install_web3.py # Conda installation (alternative) python install_web3_conda.py
Manual Installation:
# Try pre-compiled wheels first (recommended) pip install web3 eth-account eth-keys --only-binary=all # If that fails, try specific versions pip install web3==6.8.0 eth-account==0.8.0 eth-keys==0.4.0
Note: For production, configure real RPC URLs and install web3 for blockchain features. Without this, blockchain-specific endpoints will be unavailable.
-
Environment Configuration
cp .env.example .env # Edit .env file with your configuration
-
Start the backend server
cd backend source venv/bin/activate python src/main.py
-
Start the frontend development server
npm run dev
-
Access the application
- Frontend: http://localhost:5173
- Backend API: http://localhost:5000
-
Build the frontend
npm run build
-
Copy built files to backend
cp -r dist/* backend/src/static/ -
Deploy the backend
cd backend python src/main.py
Create a .env file in the root directory:
# Application URLs
APP_BASE_URL=https://payoova.com
APP_DEV_URL=http://localhost:3000
# Database Configuration
DATABASE_URL=sqlite:///payoova.db
# Authentication Secrets
SESSION_SECRET=your-unique-session-secret
JWT_ACCESS_SECRET=your-jwt-access-secret
JWT_REFRESH_SECRET=your-jwt-refresh-secret
# Server Configuration
PORT=5000
NODE_ENV=development-
Getting Started
- Visit the application URL
- Create a new account with email/password
-
Creating Wallets
- Navigate to Dashboard
- Click "Generate Wallet"
- Select network (Ethereum, Polygon, BSC)
- Your wallet will be created instantly
-
Sending Crypto
- Go to Send section
- Select source wallet and network
- Enter recipient address and amount
- Confirm transaction
-
Receiving Crypto
- Go to Receive section
- Select network
- Share QR code or copy address
- Monitor incoming transactions
-
Access Admin Panel
- Login with admin credentials
- Navigate to admin dashboard
- View system overview and statistics
-
User Management
- View all registered users
- Suspend/activate accounts
- Monitor user activities
-
Transaction Monitoring
- Real-time transaction tracking
- Filter by network, status, type
- Export transaction data
- JWT Authentication - Secure token-based authentication
- Private Key Encryption - All private keys are encrypted at rest
- CORS Protection - Cross-origin request security
- Input Validation - Comprehensive input sanitization
- Rate Limiting - API rate limiting for security
- Secure Headers - Security headers for web protection
POST /api/auth/login- User loginPOST /api/auth/signup- User registrationGET /api/auth/verify- Verify authentication tokenPOST /api/auth/logout- User logout
GET /api/wallet/list- Get user wallets with balancesPOST /api/wallet/generate- Generate new walletPOST /api/wallet/send- Send cryptocurrency (legacy)GET /api/wallet/transactions- Get transaction historyGET /api/wallet/balances- Get wallet balancesGET /api/wallet/prices- Get cryptocurrency pricesGET /api/wallet/transaction/<tx_hash>/status- Get transaction status
GET /api/wallet/balance/<network>- Get wallet balance for networkPOST /api/wallet/create/<network>- Create wallet for networkPOST /api/wallet/transfer- Transfer cryptocurrencyGET /api/wallet/history/<network>- Get transaction history for network
GET /api/qr/address/<network>- Generate QR code for wallet addressGET /api/qr/transaction/<tx_hash>- Generate QR code for transactionPOST /api/qr/payment- Generate QR code for payment requestGET /api/qr/download/<qr_type>- Download QR code as PNGPOST /api/qr/validate- Validate QR code data
GET /api/admin/dashboard- Get admin dashboard statisticsGET /api/admin/users- Get all users with paginationPOST /api/admin/users/<user_id>/toggle-status- Toggle user active statusGET /api/admin/transactions- Get all transactions with paginationGET /api/admin/export/users- Export users data (CSV/Excel)GET /api/admin/export/transactions- Export transactions data (CSV/Excel)GET /api/admin/analytics- Get detailed system analytics
GET /api/health- Health check endpoint
The application is deployed and accessible at: https://qjh9iec79z56.manus.space
-
Build the application
npm run build cp -r dist/* backend/src/static/ -
Configure production environment
export NODE_ENV=production export DATABASE_URL=your-production-db-url
-
Start the production server
cd backend python src/main.py
- 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
This project is licensed under the MIT License - see the LICENSE file for details.
For support and questions:
- Create an issue on GitHub
- Email: support@payoova.com
- Documentation: Wiki
Microsoft Visual C++ Build Error (Windows)
# This error occurs when pip tries to compile packages from source
# Solution 1: Use conda (recommended for Windows)
python install_web3_conda.py
# Solution 2: Use pre-compiled wheels only
pip install web3 eth-account eth-keys --only-binary=all
# Solution 3: Install Microsoft C++ Build Tools
# Download from: https://visualstudio.microsoft.com/visual-cpp-build-tools/
# Then try: pip install web3 eth-account eth-keys
# Solution 4: Use older versions that have pre-compiled wheels
pip install web3==6.8.0 eth-account==0.8.0 eth-keys==0.4.0ModuleNotFoundError for web3 or other dependencies
# Option 1: Use our automated installer
python install_web3.py
# Option 2: Use conda installer (Windows)
python install_web3_conda.py
# Option 3: The application works without web3 using mock data
# Just run the application - it will show a warning but work fine
python backend/src/main.py
# Option 4: Manual installation with pre-compiled wheels
pip install --upgrade pip
pip install web3 eth-account eth-keys --only-binary=allApplication runs but shows "Web3 not available" warnings
This is normal! The application is designed to work with or without web3.
- With web3: Real blockchain interactions
- Without web3: Mock data for development and testing
- All features work in both modes
- You can install web3 later when needed
Database connection issues
# Run database migration
python backend/migrations/001_initial_schema.py
# Or reset database
rm backend/src/database/app.db
python src/main.py # This will recreate tablesPort already in use
# Kill process using port 5000
netstat -ano | findstr :5000
taskkill /PID <PID> /F
# Or change port in main.py
app.run(host='0.0.0.0', port=5001, debug=True)Frontend build issues
# Clear node modules and reinstall
rm -rf node_modules package-lock.json
npm install --legacy-peer-deps- Real blockchain integration
- Hardware wallet support
- Mobile app development
- Advanced trading features
- DeFi protocol integration
- Multi-language support
Built with β€οΈ by the Payoova Team