NetBankers is a state-of-the-art international payment platform designed to streamline global financial transactions securely and efficiently. This web application includes features for both administrative and user roles, allowing users to send payments, view financial statements, and manage their accounts while providing admins with tools to manage payments and oversee operations.
-
Secure Login and Registration:
- Users can log in with their credentials or create an account securely.
- Passwords are hashed and salted for security.
-
Send Payments:
- Initiate payments by providing recipient details, amount, and SWIFT code.
- Real-time currency conversion for supported currencies (USD, EUR, GBP, ZAR).
-
View Financial Insights:
- Visual representation of transactions (money in vs. money out) via interactive charts.
- Comprehensive transaction history, including statuses and timestamps.
-
Account Management:
- View balance and account number.
- View transaction history and statements.
-
Admin Dashboard:
- View pending payments with options to approve or reject.
- Manage user accounts and monitor payment activities.
-
Add New Admins:
- Create additional admin accounts directly from the dashboard.
-
Audit and Oversight:
- Monitor and manage all transactions and user activities for compliance and accuracy.
-
Frontend:
- React
- Tailwind CSS
- Chart.js
-
Backend:
- Node.js
- Express.js
- MongoDB (via Mongoose)
- JWT for authentication
-
Development Tools:
- ESLint for code linting
- Prettier for code formatting
- SonarQube for code quality checks
- Node.js installed on your machine.
- MongoDB Atlas database connection string.
- mkcert or equivalent for setting up SSL certificates.
-
Clone the repository:
git clone https://github.com/your-repository/netbankers.git cd netbankers
-
Set up the backend:
cd backend npm install
- Configure the
.env
file:MONGO_URI=your_mongodb_connection_string JWT_SECRET=your_secret_key
- Configure the
-
Set up the frontend:
cd ../frontend npm install
- Configure the
.env
file:REACT_APP_API_URL=https://localhost:5000
- Configure the
-
Generate SSL Certificates:
mkcert -install mkcert localhost
Move the generated
.pem
files to the appropriate backend folder and updateserver.js
. -
Run the application:
- Start the backend server:
cd backend npm start
- Start the frontend server:
cd ../frontend npm start
- Start the backend server:
-
Open the application in your browser at
https://localhost:3000
.
/backend
├── config/ # Database configuration
├── middleware/ # Middleware for authentication and error handling
├── models/ # MongoDB schemas
├── routes/ # API routes
├── server.js # Entry point of the backend
/frontend
├── public/ # Static files
├── src/ # React source code
├── components/ # React components
├── api.js # Axios setup for API requests
├── App.js # Main application file
├── index.js # Entry point of the frontend
├── .env # Environment variables for React
-
Authentication:
- Password hashing with bcrypt.
- JSON Web Tokens (JWT) for session management.
-
Input Validation:
- RegEx patterns for whitelisting input fields.
- Server-side validation.
-
Traffic Security:
- HTTPS enforced via SSL certificates.
-
Protection Against Common Attacks:
- SQL injection: Using Mongoose ORM for safe database queries.
- Cross-Site Scripting (XSS): Input sanitization and React's built-in escaping mechanisms.
- CSRF Protection: Cookies with
SameSite
policies.
-
Users:
- Register or log in to access your account.
- Use the "Make Payment" feature to send funds internationally.
- View your financial insights and transaction history.
-
Admins:
- Log in to the admin dashboard.
- Manage pending payments by approving or rejecting them.
- Add new admin users from the "Add Admin" section.
-
Unit Testing:
- Mocha and Chai for backend.
- Jest for frontend components.
-
Code Quality:
- ESLint and Prettier for consistent code style.
- SonarQube for analyzing code smells and vulnerabilities.
-
MongoDB Documentation:
-
React Documentation:
-
Node.js and Express:
-
Chart.js for Financial Insights:
-
Authentication and Security:
-
Styling and Design:
-
Testing Tools:
- Fork the repository.
- Create a new branch for your feature:
git checkout -b feature-name
- Commit your changes and push to your fork.
- Submit a pull request for review.
This project is licensed under the MIT License. See LICENSE
for details.