Skip to content

A Mobile Financial Service (MFS) app built with MERN stack. It allows users, agents, and admins to securely log in, transfer money, and manage cash-in/cash-out transactions. With secure PIN storage and easy-to-use dashboard, it provides a clear view of balances and transaction history.

Notifications You must be signed in to change notification settings

noushinpervez/myCash-Client

Repository files navigation

myCash

Project Overview

myCash is a web-based Mobile Financial Service (MFS) platform built using the MERN stack. It functions similarly to platforms like bKash or Nagad. The system has three roles: User, Agent and Admin. Key features include user registration, secure login, PIN protected transaction such as money transfer, cash-out, cash-in, balance inquiry, user management, and transaction history.

Key Features

  • User and Agent registration with 5-digit PIN (hashed using bcrypt.js), unique phone number, email and admin approval.
  • Secure login via Mobile Number/Email and PIN using JWT authentication.
  • New users receive a 40 Taka bonus; new agents receive a 10,000 Taka bonus upon admin approval.
  • Users can perform all transaction services using an active phone number or email of a registered user or agent, along with a valid transaction amount.
  • Users can send money to other users with a minimum transaction of 50 Taka. A fee of 5 Taka applies to transactions over 100 Taka.
  • Users can cash out via agents, with a 1.5% fee deducted from the user balance and added to agent balance.
  • Agents can handle cash-in and cash-out requests, updating both user and agent balances accordingly.
  • Users can request cash-in via agents, with no fee applied.
  • All users can check their balance at any time.
  • Users can view the last 10 transactions, while agents can view the last 20 transactions.
  • Admins can manage users and agents, activate or block accounts, and monitor all system transactions.

Technologies Used

  • Frontend: HTML, CSS, JavaScript, React, Tailwind CSS
  • Backend: Node.js, Express.js
  • Database: MongoDB
  • Authentication: JWT (JSON Web Tokens), bcrypt.js for PIN hashing

Challenges

  • Figuring out how to use MongoDB for secure user authentication was a key challenge.
  • Connecting the React frontend with the Node.js backend required careful attention to detail, including handling API requests, implementing proper logic and managing state.
  • The website’s design and technology were updated several times to improve the project.
  • It took a lot of effort to find and apply effective design ideas.
  • Picking the right tools and libraries to work with React was a detailed process.
  • Ensuring the website worked well on different devices required careful testing and adjustments.

Credentials

Admin

Agent

Live Site

Visit myCash

Server Repository

myCash Server Repository

Installation & Setup

Prerequisites

  • Node.js and npm installed
  • MongoDB installed or access to MongoDB Atlas for cloud-based database
  • A modern web browser for the client

Step-by-Step Instructions

  1. Clone the repositories:

    git clone https://github.com/noushinpervez/myCash-Client.git
    git clone https://github.com/noushinpervez/myCash-Server.git
  2. Navigate to the server project directory and install dependencies:

    cd myCash-Server
    npm install
  3. Navigate to the client project directory and install dependencies:

    cd myCash-Client
    npm install
  4. Set up environment variables:

    • Create a .env file in the myCash-Server directory and add necessary configuration variables:
      DB_USER=
      DB_PASS=
      JWT_SECRET=
    • Replace each variable with your actual configuration keys and values without quotations.
  5. Run the backend server:

    node index.js
  6. Run the frontend client:

    npm run dev
  7. Access the application:

    • Frontend should be accessible at http://localhost:5173.
    • Backend API runs on http://localhost:5000.

Follow these instructions to set up and locally run the client and server of myCash to explore its features and functionalities.

About

A Mobile Financial Service (MFS) app built with MERN stack. It allows users, agents, and admins to securely log in, transfer money, and manage cash-in/cash-out transactions. With secure PIN storage and easy-to-use dashboard, it provides a clear view of balances and transaction history.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages