Changes and Sonar, Circle.ci, Snyk results under Updates To The App.docx.
Some files are uploaded for marking that wouldn't be if in a production environment. I have also ignored the secure TLS warning from my circle.ci pipeline as we are using a self-signed certificate, and not a trusted one. In production the code would disallow this.
Encountering minor error where my react scripts do not download using npm install, use npm install -g react-scripts
if this occurs.
- 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 is a secure and user-friendly platform for processing international bank transactions. It allows customers to register, log in, and complete cross-border payments, while bank employees can review and approve transactions before they are securely processed via the SWIFT network. The system prioritizes ease of use while ensuring robust security for reliable international payments. Final Demonstration Videos Link: https://drive.google.com/drive/folders/1_aO3MIYVvuy6RK9mSI4TeIVxEQjYTNfw
- Frontend: React
- Backend: Node.js with Express
- Database: MongoDB
- User Registration: Customers can register with necessary details (full name, ID number, account number, and password).
- Login: Customers authenticate using their username, account number, and password.
- Transaction Options: Customers can select payment amount, currency, and provider (e.g., SWIFT).
- Payee Details: Required fields for payee's account information and SWIFT code.
- Payment Finalization: Customers review and finalize payment details before initiating a secure transaction.
- Payment Verification: Bank employees verify international payments to ensure compliance and security.
- Transaction Management: Employees can review, validate, and process transactions.
Security is a core priority in the portal, which includes:
- Password Hashing: Secure hashing and salting of passwords for safe storage.
- Brute-Force Protection: Protection against unauthorized access using Express Brute to limit failed login attempts.
- Input Validation: Input validation through RegEx-based whitelisting to prevent SQL injection and XSS attacks.
- SSL Encryption: SSL-encrypted communications to secure data in transit.
- Session Management: Secure session handling to prevent session hijacking and unauthorized access.
Follow these steps to set up and run the application locally:
- Open a terminal in the
apds7311-poe-scriptsquad-main
folder. - Install the required dependencies:
npm install
- Start the development server:
npm run dev
- Navigate to the
apds7311-poe-scriptsquad-main/Backend
folder. - Install the backend dependencies:
npm install
- Start the backend server:
npm start
To log in as an admin and manage transactions (confirm, deny, or flag), use the following credentials:
- Username:
AariyaS
- Password:
AariyaS.123
To bypass SSL warnings during local development, configure your browser as follows:
- Open Google Chrome.
- Navigate to
chrome://flags/#allow-insecure-localhost
. - Enable "Allow invalid certificates for resources loaded from localhost".
- Visual Studio Code: IDE for editing and managing code.
- Node.js: Ensure Node.js is installed for backend server functionality.
- MongoDB: Set up MongoDB locally or use MongoDB Atlas for cloud storage.
-
Clone the Repository
git clone https://github.com/IIEWFL/apds7311-poe-scriptsquad.git
-
Install Dependencies
Navigate to both the frontend and backend directories and install the required dependencies:cd apds7311-poe-scriptsquad-main npm install # for frontend cd Backend npm install # for 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, make sure it's running. Alternatively, configure your MongoDB Atlas connection.
-
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: Verify MongoDB is active locally or check the connection string for MongoDB Atlas.
- JWT Authentication Issues: Ensure the token is included in the
Authorization
header (Bearer <token>
). - CORS Errors: If there are issues with frontend-backend communication, check CORS settings in
server.js
. - Environment Variables Not Set: Ensure that the
.env
file is properly configured and loaded in the backend.
- Demo Video: Google Drive Link
- React Documentation: React
- Node.js Documentation: Node.js
- MongoDB Documentation: MongoDB
For further assistance, please reach out to any of the group members listed in the Group Members section.
This version improves readability, consistency, and structure. Let me know if there are any other adjustments you'd like!