A full-stack banking application with features like account management, transactions, investments, loans, and a customer review system.
- 🔐 Secure user authentication
- 💳 Account management
- 💸 Money transfers
- 📊 Investment portfolio
- 💰 Loan applications
- 💬 Chatbot assistant
- ⭐ Customer reviews
- 📱 Responsive design
- React.js
- Material-UI
- Framer Motion
- Axios
- React Router
- Node.js
- Express.js
- MySQL
- MongoDB Atlas (for reviews)
- JWT Authentication
- 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.
- CPU: Dual-core processor (2.0 GHz or higher)
- RAM: 4GB
- Storage: 1GB free space
- Internet connection: Broadband (1 Mbps or higher)
- Create a MySQL database named 'bankingsystem'
- Run the SQL commands from
database_schema.sql
- Navigate to backend directory:
cd banking-backend- Install dependencies:
npm install- Create a
.envfile 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- Install nodemon globally (optional, for development):
npm install -g nodemon- Start the backend server:
For development (with auto-reload):
nodemon server.jsOr for production:
node server.jsThe 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.
- Verify the server is running by checking:
- MySQL connection success message
- MongoDB Atlas connection success message
- Server running message on port 5000
- Navigate to frontend directory:
cd banking-frontend- Install dependencies:
npm install- Start the frontend application:
npm startThe application will be available at http://localhost:3000
- POST
/api/auth/register- Register new user - POST
/api/auth/login- User login
- GET
/api/accounts/all- Get all user accounts - POST
/api/accounts/create- Create new account - GET
/api/accounts/balance- Get account balance
- GET
/api/transactions- Get user transactions - POST
/api/transactions/create- Create new transaction
- 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
- GET
/api/loans- Get user loans - POST
/api/loans/apply- Apply for new loan
- GET
/api/reviews- Get customer reviews - POST
/api/reviews- Post new review
- JWT authentication
- Password hashing
- Protected routes
- SQL injection prevention
- Input validation
- Secure headers
This project is licensed under the GNU Public License V3.0 - see the LICENSE file for details






