Write and test programmable card code in a safe environment.
- About
- Templates
- Installation
- DevContainer (VSCode)
- Docker
- Usage
- Testing
- Contributing
- License
- Contact
- Acknowledgments
- Other Projects
While exploring Programmable Banking Cards, I found it difficult to test my code. I wanted to be able to write code and test it in a safe environment. I also wanted to be able to share my code with others. This project is an attempt to solve these problems.
Templates are the code that is run by the emulator. They are written in JavaScript and can be found in the templates
directory. The template that is run by default is empty
. This template does nothing and is a good starting point for writing your own templates.
Current Templates:
empty
- Does nothingpetrol_card
- A template for a petrol cardrooty
- A template for a sending a slack message after a transactiontelegram
- A template for sending a telegram message after a transactionpostman-echo
- A template for sending a transaction to Postman Echo
Before installing, download and install Node.js.
git clone https://github.com/devinpearson/programmable-banking-card-issuer.git
cd programmable-banking-card-issuer
npm install
VS Code will automatically detect the .devcontainer
folder and prompt you to open the project in a container. This will set up the environment for you to run the server in a Docker container.
docker-compose -f .devcontainer/docker-compose.yml up
docker build -t card-emu .
docker run card-emu -t petrol_card
Commands: run [filename] run your code locally fetch-cards list cards fetch [cardkey] [filename] fetches your saved code fetch-published [cardkey] [filename] fetches your published code fetch-env [cardkey] [filename] fetches your environmental variables upload [cardkey] [filename] uploads your code to saved code publish [cardkey] [codeid] [filename] publishes your saved code upload-env [cardkey] [filename] publishes your environmental variables toggle [cardkey] [enabled] enable/disable card code executions [cardkey] [filename] card execution logs
Options: -h, --help Show help [boolean] -v, --version Show version number [boolean]
Options:
-e, --environment [environment]
The environment to use
-a, --amount [amount]
The amount of the transaction
-c, --currency [currency]
The currency of the transaction
--mcc [mcc]
The merchant category code of the transaction
-m, --merchant [merchant]
The merchant name of the transaction
-i, --city [city]
The city of the transaction
-o, --country [country]
The country of the transaction
-h, --help
Display help for command
-v, --version
Display the current version
To run a transaction against a template, run the following command:
node . main.js -e env.json --amount 60000 --currency ZAR --mcc 0000 --merchant "Test Merchant" --city "Test City" --country ZA
To run the tests, use the following command:
npm test
Contributions are welcome! Please submit a pull request or open an issue for any suggestions or improvements.
This project is licensed under the MIT License - see the LICENSE.md file for details
For inquiries, please open an issue.