Pointer Wallet Backend is a backend solution for an e-wallet service, developed with Node.js, Express.js, MongoDB, and Redis. It offers essential features such as money transfer, deposit, withdrawal, and payment processing.
- 🔥Transfer: Ensures data integrity by accurately associating each transaction with the intended recipient. It leverages database transactions to manage operations and implements rollback mechanisms for error handling.
- 💳 Manage Card: Allows customers can add, view, and delete their cards, which can be used for depositing or withdrawing money.
- 💵 Deposit: Similar to a transfer, the deposit function requires necessary database transactions to ensure data consistency and integrity.
- 💰 Withdraw: Facilitates withdrawing funds from the wallet securely and efficiently.
- 🎟 Manage Voucher: Partners can create and edit their own vouchers. Customers will not be able to use these vouchers to apply discounts to their invoices during payment.
- 📈 Payment: Enables seamless payments from the wallet, integrating with various services. Read more
- 💶 Connect Wallet: Allows users to connect their wallet to external services or platforms for easy transactions. Read more
🥇 JWT Authentication: Utilizes JSON Web Tokens (JWT) for secure access and refresh token management, ensuring that only authorized users can access sensitive operations.
🥈 Transaction Security Code: Each transaction requires a security code, which limits the number of attempts to enter the correct code. Users are notified in case of repeated failed attempts to enhance security.
🥉 Transaction Limit: Implements limits on transfer, deposit, and withdrawal amounts to prevent fraud and unauthorized transactions, ensuring that the system is secure and complies with safety standards.
- 📝 Express.js.
- 🔧 MongoDB, Redis.
- 📚 jsonwebtoken (JWT) , crypto, helmet, cookie-parser, node-cron, cloudinary...
- Clone the repository
git clone https://github.com/nguynthuhigh/pointer-wallet-be.git
- Install npm dependencies
cd pointer-wallet-be
npm install
- Create a
.envFile
Create a .env file by copying from the .env.example template. Modify this file to configure your environment variables.
- Run the project
npm run dev
Why MongoDB for an E-Wallet Backend?
As this is my first backend project and due to limited experience in system analysis, I chose MongoDB for its flexibility. Despite that, the system ensures ACID compliance in database operations by utilizing transactions and constraints for data consistency.
