26 lines
1.4 KiB
Markdown
26 lines
1.4 KiB
Markdown
# WASL (وَصْل) Digital Wallet
|
|
|
|
WASL is a bank-grade, secure P2P and merchant digital wallet platform tailored for Syria.
|
|
|
|
## Tech Stack
|
|
- **Backend**: Laravel 11 + Laravel Octane (Swoole driver)
|
|
- **Mobile**: Flutter 3.x (Clean Architecture + BLoC/Cubit)
|
|
- **Database**: PostgreSQL 16 (with transaction audit ledgers)
|
|
- **Cache / Queue**: Redis 7
|
|
- **Storage**: MinIO (S3-compatible secure private storage)
|
|
- **Deployment**: Docker Compose
|
|
|
|
## Architectural Core Principles
|
|
- **ACID Compliance**: Ensuring complete database integrity for all financial mutation queries.
|
|
- **Double-Entry Ledger**: Every transaction produces exactly 2 balancing ledger entries (debit and credit).
|
|
- **Strict Minor Units**: All monetary values stored and processed as `BIGINT` minor units (e.g. SYP is stored as minor units to avoid floating-point inaccuracies).
|
|
- **Pessimistic Locking**: `SELECT ... FOR UPDATE` with deterministic resource locking order to prevent deadlocks.
|
|
- **Data Encryption**: AES-256 field-level encryption for sensitive PII (Phone number, National ID).
|
|
- **Audit Logging**: Immutable ledger tracking all authentication, registration, and transfer activities.
|
|
|
|
## Directory Structure
|
|
- `Backend/`: The Laravel API and administrator control panel.
|
|
- `Mobile App/`: The Flutter application codebase.
|
|
- `wasl_concept.md`: Complete details of the 4 phase implementation prompts.
|
|
- `deploy.sh`: Shell script to stage, commit, and push changes to the repository.
|