UNPKG

typescript-nodeprojects-atm

Version:

This TypeScript code simulates a basic command-line Automated Teller Machine (ATM) application named 'Artificialvolutionize'. It provides users with a secure and interactive way to manage their finances through text-based prompts.

93 lines (92 loc) 3.87 kB
#! /usr/bin/env node import inquirer from "inquirer"; import chalk from "chalk"; // Initialize user balance and pin code let myBalance = 50000; let myPin = 1234; // Print welcome message console.log(chalk.bold.rgb(204, 204, 204)(`\n \t\t <<<======================================>>>`)); console.log(chalk.bold.rgb(204, 204, 204)(`<<<==========>>> ${chalk.bold.hex('#9999FF')('Welcome To \'Artificialvolutionize\' - ATM')} <<<===========>>>`)); console.log(chalk.bold.rgb(204, 204, 204)(`\t\t <<<======================================>>>\n`)); // Prompt the user to enter their PIN let pinAnswer = await inquirer.prompt([ { name: "pin", type: "number", message: chalk.hex('#99CCFF')("Enter your pin code: ") } ]); // Check if the entered PIN is correct if (pinAnswer.pin === myPin) { console.log(chalk.bold.greenBright("\n Pin is Correct ! Login Successful\n")); // Prompt the user to select (withdraw or check balance) let operationAns = await inquirer.prompt([ { name: "operation", type: "list", message: chalk.hex('#99CCFF')("Select your operation: "), choices: ["Withdraw Ammount", "Check Balance"] } ]); // If the user selects "Withdraw" if (operationAns.operation === "Withdraw Ammount") { // Prompt the user to select ("Fast Cash" or "Enter Amount") let withdrawAns = await inquirer.prompt([ { name: "withdrawMethod", type: "list", message: chalk.hex('#99CCFF')("Choose withdrawal method:"), choices: ["Fast Cash", "Enter Amount"] } ]); // If the user selects "Fast Cash" if (withdrawAns.withdrawMethod === "Fast Cash") { let fastCashAns = await inquirer.prompt([ { name: "fastCash", type: "list", message: chalk.hex('#CCFFFF')("Select Amount:"), choices: [1000, 2000, 5000, 10000, 20000, 50000] } ]); // Check if the user have sufficient balance if (fastCashAns.fastCash > myBalance) { console.log(chalk.red("\nInsufficient Balance")); } else { // Withdraw the selected fast cash amount from the user's balance myBalance -= fastCashAns.fastCash; console.log(`\n${chalk.green("$", fastCashAns.fastCash)} Withdraw Successfully !`); console.log(`Your Remaining Balance is ${chalk.greenBright("$", myBalance)}`); } } // If the user selects "Enter Amount" else if (withdrawAns.withdrawMethod === "Enter Amount") { let amountAns = await inquirer.prompt([ { name: "amount", type: "number", message: chalk.hex('#CCFFFF')("Enter amount to withdraw: ") } ]); // Check if the user have sufficient balance if (amountAns.amount > myBalance) { console.log(chalk.red("\nInsufficient Balance")); } else { // Withdraw the selected amount from the user's balance myBalance -= amountAns.amount; console.log(`\n${chalk.greenBright("$", amountAns.amount)} Withdraw Successfully !`); console.log(`Your Remaining Balance is ${chalk.greenBright("$", myBalance)}`); } } } // If the user selects "Check Balance" else if (operationAns.operation === "Check Balance") { console.log(`\nYour Balance is ${chalk.greenBright("$", myBalance)}`); } } // If the entered PIN is incorrect else { console.log(chalk.red("\nPin is Incorrect, Try Again!")); }