- Group Members
- Project Overview
- Technologies Used
- Features
- Security Measures
- Getting Started
- Installation Instructions
- Troubleshooting
- Additional Resources
- Katalika Lalla (ST: ST10030992)
- Kelisha Naidoo (ST: ST10100775)
- Aariya Singh (ST: ST10029788)
The International Payments Portal provides a secure, user-friendly platform for processing international bank transactions. Customers can register, log in, and complete payments through a streamlined interface, while bank employees can review and approve transactions before they are securely processed via the SWIFT network. This system prioritizes both ease of use and robust security to facilitate reliable cross-border payments.
- Frontend: React
- Backend: Node.js with Express
- Database: MongoDB
- User Registration: Customers register with required details (full name, ID number, account number, and password) securely.
- Login: Customers can authenticate using their username, account number, and password.
- Transaction Options: Customers select the payment amount, currency, and provider (e.g., SWIFT).
- Payee Details: Required fields include payee’s account information and SWIFT code.
- Finalization: Customers review and finalize payment details to initiate a secure transaction.
- Payment Verification: Bank employees have a verification process for international payments, adding a layer of security.
- Transaction Management: Tools for employees to review, validate, and process transactions.
Security is a core aspect of the portal, encompassing the following:
- Password Hashing: Utilizes secure hashing and salting for password storage.
- Brute-Force Protection: Prevents unauthorized access with Express Brute for failed login attempts.
- Input Validation: Enforces input security with RegEx-based whitelisting, mitigating SQL injection and XSS risks.
- SSL Encryption: All communications are SSL-encrypted to secure data in transit.
- Session Management: Secured session handling prevents unauthorized access or session hijacking.
To set up the application locally, follow these preliminary steps:
- Open Google Chrome.
- Go to
chrome://flags/#allow-insecure-localhost
. - Enable "Allow invalid certificates for resources loaded from localhost" to bypass SSL warnings on localhost (only for testing).
- Visual Studio Code: IDE for editing and managing code.
- Node.js: Required for backend server functionality.
- MongoDB: Database setup (either locally or via MongoDB Atlas).
-
Clone the Repository
git clone https://github.com/IIEWFL/apds7311-poe-scriptsquad.git
-
Install Dependencies
- Backend:
cd backend npm install
- Frontend:
cd international-payments-portal npm install
- Backend:
-
Configure Environment Variables
- In the backend directory, create a
.env
file with necessary environment variables, such as database URIs and API keys.
- In the backend directory, create a
-
Start MongoDB
- If using a local MongoDB instance, ensure it’s running; otherwise, verify your MongoDB Atlas connection.
-
Run the Application
- Backend:
cd backend npm start
- Frontend:
cd frontend npm start
- Backend:
-
Access the Application
- Frontend: http://localhost:3000
- Backend: http://localhost:3001
- Invalid Port: Ensure the backend runs on port 3001 and the frontend on port 3000.
- MongoDB Connection Errors: Confirm MongoDB is active locally or check your MongoDB Atlas connection string.
- JWT Authentication Issues: Confirm the token is properly included in the
Authorization
header (Bearer <token>
). - CORS Policy Errors: Check CORS configurations in
server.js
to allow frontend-backend communication. - Environment Variables Not Set: Ensure that
.env
is correctly configured and loaded in your backend.
- Demo Video: Google Drive Link
- React Documentation: React
- Node.js Documentation: Node.js
- MongoDB Documentation: MongoDB
For further assistance, please contact any of the group members listed in the Group Members section.