All projects
CLI TOOLS & FINTECH

GetMeACoffee CLI

A terminal-based creator tipping tool that integrates Khalti payments, allowing users to send virtual coffees, attach messages, and track contributions directly from the command line.

RoleSolo Developer
StatusLearning Project
Node.jsJavaScriptExpress.jsSQLiteKhalti ePayment APINode.js Readline
GetMeACoffee command line preview
Project preview. Interfaces marked “illustration” explain the concept and are not actual application screenshots.
01 / THE PROBLEM

A reason to build

Most creator-support platforms rely on graphical web interfaces. This project explores whether developers can support creators directly from their terminals while still using a conventional payment gateway. The main technical challenge is bridging CLI interactions with external payment flows and maintaining trustworthy transaction records.

02 / MY CONTRIBUTION

What I worked on

Independently developed a command-line tipping application with a Node.js CLI, Express backend, and SQLite database. Integrated Khalti's ePayment API for payment initiation and verification, implemented username-based creator registration, contribution tracking, and backend rate limiting.

03 / THE APPROACH

How the pieces fit

  1. Built an interactive command-line interface using Node.js and readline/promises.
  2. Implemented username-based creator registration and lookup.
  3. Developed Express API endpoints for registration, contributions, payment verification, and contribution history.
  4. Integrated Khalti ePayment API v2 to initiate payments and generate payment links.
  5. Used Khalti's payment lookup API to verify transaction status before marking contributions as completed.
  6. Stored creator information and contribution records in SQLite without an ORM.
  7. Supported anonymous contributions with optional sender names and messages.
  8. Added rate limiting to sensitive endpoints and documented a sandbox testing workflow.
04 / DECISION & TRADEOFF

The detail that matters

Separated the terminal interface from payment processing by using an Express backend. Chose SQLite for lightweight persistence and Khalti's hosted payment flow to avoid collecting sensitive payment credentials directly in the CLI.

05 / OUTCOME & LESSONS

Where it stands

Built a functional CLI prototype supporting creator registration, username-based tipping, payment initiation, transaction verification, and contribution history. Published the source code with a demonstration GIF and Khalti sandbox setup instructions.

Learned how to design interactive command-line applications and connect them to external services. Gained practical experience with payment initiation, server-side transaction verification, API design, lightweight persistence, and protecting financial workflows from untrusted client responses.

NEXT PROJECT

Localify

Have a useful problem to solve?

Let’s talk