1.0.0 • Published 1 year ago

sendcode v1.0.0

Weekly downloads
-
License
MIT
Repository
-
Last release
1 year ago

Send verification code via sms

Send the generated code to the given phone number with any SMS sending service.

✨ This is the main task of this module. ✨

The code generated by faker module is 5 digits. Of course, you can change the number of these figures.

Features & Ability

  • Ability to change the number of digits of the sent code
  • Ability to test and document api with swagger
  • Ability to change SMS sending service
  • Ability to save given phone number and it's code in redis database

Features of generated code

  • If the code has been generated once, no more code will be generated.
  • The code will expire after 60 seconds.
  • If the user uses the code once, he cannot use it again.

Tech

This module uses a number of open source projects to work properly:

  • Node.js - evented I/O for the backend
  • Swagger - Simplifying API development
  • Redis - open source, in-memory data structure store, used as a database, cache, and message broker
  • Fastify - Fast and low overhead web framework, for Node.js
  • Faker - Generate massive amounts of fake (but realistic) data for testing and development.

✨ This project was bootstrapped with Fastify-CLI. ✨

Installation guide for the user

git clone https://github.com/tendal-lox/Send-verification-code-via-sms.git
cd sendCode

Note: You need to install fastify-cli for this module to work properly.

Installation guide for developers

npm install Send-verification-code-via-sms
npm run dev

To start the app in dev mode.\ Open http://localhost:3000/docs/static/index.html to view it in the browser.

Note: SMS sending service is according to the country of Iran. So you have to adjust it according to your country. For this, you need to enter /routes/sendVerificationCode.js and change this part of the code:

// Kavenegar send api
const api = Kavenegar.KavenegarApi({apikey: 'api key from kavenegar'});
api.Send({ message: generateCode , sender: "xxx" , receptor: phoneNumber })

Bugs are being fixed

There is no any problem in the production code, but there is a problem in the test. Since there is no database in the test file, when you run npm test you will always encounter a database connection problem.

License

MIT