Skip to content

Kamrancodex/backend-wallet

Repository files navigation

Wallet Management System

Welcome to the Wallet Management System! This project is a comprehensive web application designed to manage user wallets, perform transactions, and handle various financial operations seamlessly.

Table of Contents

Features

Backend Features

  1. User Authentication:

    • #: Create a new account.
    • #: Log into an existing account.
    • Sign Out: Log out from the account.
    • Forgot Password: Reset the password via email.
    • Email Verification: Verify user email addresses with OTP.
    • JWT Authentication: Secure endpoints using JWT tokens.
  2. User Management:

    • View and update user profile information.
    • Change password.
    • Two-factor authentication via email and phone.
    • KYC Verification: Support for Know Your Customer verification processes.
  3. Wallet Management:

    • View user wallet balance.
    • Transfer money to other users.
    • Request money from other users.
    • View transaction history.
    • Currency conversion support.
  4. Card Management:

    • Apply for credit cards.
    • Add and manage debit cards.
    • View card details and transaction history.
  5. Transaction Management:

    • Create and manage transactions.
    • View detailed transaction history.
    • Filter transactions by date and type.
  6. Notifications:

    • Real-time notifications for various events (e.g., successful login, transaction alerts).
  7. API Documentation:

    • Swagger API documentation for easy integration and testing.

Tech Stack

Backend

  • Node.js: JavaScript runtime built on Chrome's V8 JavaScript engine.
  • Express: Fast, unopinionated, minimalist web framework for Node.js.
  • MongoDB: NoSQL database for storing user and transaction data.
  • Mongoose: Elegant MongoDB object modeling for Node.js.
  • JWT (JSON Web Tokens): For secure authentication.
  • Nodemailer: Module for Node.js applications to send emails.
  • Stripe API: For handling payment processing.

Installation

Prerequisites

  • Node.js and npm installed on your local machine.

Steps

  1. Clone the repository:
    git clone https://github.com/kamrancodex/wallet-backend.git
    cd wallet-management-system
    Install dependencies:

Copy code

npm install
  1. Create a .env file in the root directory and add the necessary environment variables: env Copy code
PORT=8000
MONGODB_URI=your_mongodb_uri
JWT_SECRET=your_jwt_secret
EMAIL_USER=your_email
EMAIL_PASS=your_email_password
STRIPE_SECRET_KEY=your_stripe_secret_key

  1. Start the development server: bash Copy code

node index.js

Usage

Usage #: Create a new account by providing your email, password, and other required details. #: Log into your account using your email and password. Dashboard: View your account balance, recent transactions, and notifications. Manage Wallet: Transfer and request money, view balance charts. Manage Cards: Apply for new credit cards, add debit cards, and view card details. Profile Management: Update your personal information, change your password, and upload a profile picture.

Future Features

  • Cryptocurrency Integration
    • Pay with Crypto
      • Users can pay using cryptocurrencies.
      • Crypto will be swapped first and then the payment will be processed.
    • Crypto Buying
      • Users can buy cryptocurrencies within the wallet.
    • Crypto Swaps
      • Swap one cryptocurrency for another seamlessly.
    • Crypto Payments to Wallets and Banks
      • Pay directly to any wallet or bank using cryptocurrencies.
    • Real-time Exchange Rates
      • Display real-time crypto exchange rates for accurate transactions.

Contributing We welcome

contributions to the Wallet Management System. Please follow these steps to contribute:

  1. Fork the repository.
  2. Create a new branch for your feature or bugfix.
  3. Make your changes and commit them. Push your changes to your fork. Open a pull request to the main repository. 4.License This project is licensed under the MIT License. See the LICENSE file for more details. Contact If you have any questions or suggestions, feel free to reach out: Email: najarkamran212@gmail.com

i will be adding more features to this project i have many ideas like somehow incorporating crypto and pay with crypto feature

The frontend is available at github repo


https://github.com/Kamrancodex/wallet-backend

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published