Skip to content

adsuna/full-stack-bank-management

Repository files navigation

Modern Banking Application

A full-stack banking application with features like account management, transactions, investments, loans, and a customer review system.

Features

  • 🔐 Secure user authentication
  • 💳 Account management
  • 💸 Money transfers
  • 📊 Investment portfolio
  • 💰 Loan applications
  • 💬 Chatbot assistant
  • ⭐ Customer reviews
  • 📱 Responsive design

Tech Stack

Frontend

  • React.js
  • Material-UI
  • Framer Motion
  • Axios
  • React Router

Backend

  • Node.js
  • Express.js
  • MySQL
  • MongoDB Atlas (for reviews)
  • JWT Authentication

Setup Instructions

Prerequisites

  • Node.js (v14 or higher)
  • MySQL
  • MongoDB Atlas account
  • npm or yarn

Note: This application was developed and tested on Linux. While it should work on other operating systems, you may need to adjust some commands accordingly.

System Requirements

Minimum Requirements

  • CPU: Dual-core processor (2.0 GHz or higher)
  • RAM: 4GB
  • Storage: 1GB free space
  • Internet connection: Broadband (1 Mbps or higher)

Database Setup

  1. Create a MySQL database named 'bankingsystem'
  2. Run the SQL commands from database_schema.sql

Backend Setup

  1. Navigate to backend directory:
cd banking-backend
  1. Install dependencies:
npm install
  1. Create a .env file with the following variables:
MONGODB_URI=your_mongodb_atlas_uri
JWT_SECRET=your_jwt_secret
MYSQL_HOST=localhost
MYSQL_USER=your_mysql_username
MYSQL_PASSWORD=your_mysql_password
MYSQL_DATABASE=bankingsystem
  1. Install nodemon globally (optional, for development):
npm install -g nodemon
  1. Start the backend server:

For development (with auto-reload):

nodemon server.js

Or for production:

node server.js

The backend server will run on http://localhost:5000

Note: Make sure your MySQL server is running and the database is created before starting the backend server.

  1. Verify the server is running by checking:
  • MySQL connection success message
  • MongoDB Atlas connection success message
  • Server running message on port 5000

Frontend Setup

  1. Navigate to frontend directory:
cd banking-frontend
  1. Install dependencies:
npm install
  1. Start the frontend application:
npm start

The application will be available at http://localhost:3000

API Endpoints

Authentication

  • POST /api/auth/register - Register new user
  • POST /api/auth/login - User login

Accounts

  • GET /api/accounts/all - Get all user accounts
  • POST /api/accounts/create - Create new account
  • GET /api/accounts/balance - Get account balance

Transactions

  • GET /api/transactions - Get user transactions
  • POST /api/transactions/create - Create new transaction

Investments

  • GET /api/investments - Get user investments
  • POST /api/investments/create - Create new investment
  • POST /api/investments/withdraw - Withdraw from investment
  • POST /api/investments/add-funds - Add funds to investment

Loans

  • GET /api/loans - Get user loans
  • POST /api/loans/apply - Apply for new loan

Reviews

  • GET /api/reviews - Get customer reviews
  • POST /api/reviews - Post new review

Security Features

  • JWT authentication
  • Password hashing
  • Protected routes
  • SQL injection prevention
  • Input validation
  • Secure headers

License

This project is licensed under the GNU Public License V3.0 - see the LICENSE file for details

Screenshots

Screenshot 1 Screenshot 2 Screenshot 3 Screenshot 4 Screenshot 5 Screenshot 6 Screenshot 7

About

A full stack bank management webapp, created with MySQL, Node.js, React, Express.js and MongoDB

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors