Tea Transfer is a PHP/MySQL fintech demo application.
- PHP 8.1+ with PDO MySQL and cURL enabled.
- MySQL/MariaDB.
- Copy
.env.exampleto.envand configure your database. The project reads environment variables; use your web server/process manager to load them. - Run
database/schema.sql. - Serve the project from Apache/Nginx. Apache rewrite rules are included.
- Authentication uses server-side PHP sessions instead of client-controlled identity cookies.
- Passwords remain hashed with
password_hash()/ verified withpassword_verify(). - State-changing requests require CSRF protection.
- Transfers run in a database transaction and debit atomically to prevent overspending races.
- Client-supplied balances and sender identity are never trusted.
- User-controlled output is escaped before HTML rendering.
- Database credentials are environment-based.
- Exchange-rate credentials are no longer stored in source code.
- Transaction queries use prepared statements and appropriate indexes.
This is still a demo financial application. Before production use, add MFA, rate limiting, audit logging, idempotency keys, stronger transaction ledgering, monitoring, fraud controls, and a real payment/custody architecture.