FinTech platform integrating the Bitcoin Lightning Network for virtual Visa/Mastercard card funding. Empowering unbanked users in Africa.
# MPay
> FinTech platform integrating the Bitcoin Lightning Network for virtual Visa/Mastercard card funding.
MPay enables users to create virtual Visa and Mastercard cards funded via Bitcoin Lightning Network deposits. Built for unbanked and underbanked users in Francophone Africa.
## Features
- β‘ Bitcoin Lightning deposits via Blink.sv API
- π³ Virtual Visa/Mastercard card generation (Luhn-valid PAN, CVV, expiry)
- π User wallet with LNbits sub-wallet management
- π Real-time transaction history and balance tracking
- π JWT-based authentication with bcrypt password hashing
- π‘οΈ Admin dashboard for user and card management
- π³ Docker Compose for easy infrastructure setup
- π± Responsive web interface with Chart.js analytics
## Tech Stack
| Layer | Technology |
|-------|-----------|
| **Frontend** | HTML5, CSS3, JavaScript, Chart.js, QRCode.js |
| **Backend** | Node.js, Express 4, Sequelize 6 ORM |
| **Database** | PostgreSQL 16 |
| **Lightning** | Blink.sv GraphQL API, LNbits |
| **Auth** | bcryptjs + JWT (7-day expiry) |
| **Containerization** | Docker, Docker Compose |
## Quick Start
### Prerequisites
- Node.js >= 18
- Docker & Docker Compose
- A Blink.sv API key
- LNbits instance (or use Docker Compose)
### Installation
```bash
git clone
github.com
cd Mpay
# Set up environment variables
cp backend/.env.example backend/.env
# Edit .env with your configuration
# Start infrastructure (PostgreSQL + LNbits)
docker compose -f backend/docker-compose.yml up -d
# Install backend dependencies
cd backend
npm install
# Start the application
node server.js
```
### Environment Variables
| Variable | Description |
|----------|-------------|
| `PORT` | Server port (default: 3000) |
| `DATABASE_URL` | PostgreSQL connection string |
| `JWT_SECRET` | Secret key for JWT signing |
| `BLINK_API_KEY` | Blink.sv GraphQL API key |
| `BLINK_API_URL` | Blink.sv API endpoint |
| `LN_BITS_URL` | LNbits server URL |
| `LN_BITS_API_KEY` | LNbits API β¦