Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/st10185940/swiftpay
POE Project for APDS7311 titled: "SwiftPay" by ST10185940 - M.Sithole
https://github.com/st10185940/swiftpay
api-rest mern-stack security-tools server-side
Last synced: about 1 month ago
JSON representation
POE Project for APDS7311 titled: "SwiftPay" by ST10185940 - M.Sithole
- Host: GitHub
- URL: https://github.com/st10185940/swiftpay
- Owner: ST10185940
- License: mit
- Created: 2024-10-14T21:13:57.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2024-11-10T17:35:08.000Z (2 months ago)
- Last Synced: 2024-11-10T18:30:55.079Z (2 months ago)
- Topics: api-rest, mern-stack, security-tools, server-side
- Language: JavaScript
- Homepage:
- Size: 3.84 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# SwiftPay Server
This server-side implementation is part of a POE Project for APDS7311, specifically designed for "SwiftPay", a secure and efficient payment processing platform. It leverages Node.js, Express.js, and MongoDB for seamless database operations.
## Key Features
* User registration with validation for name, ID number, account number, username, and password
* Secure password storage using Argon2
* Hashing and field-level encryption used to protect sensitive data
* Token-based authentication using JSON Web Tokens (JWT)
* Rate limiting and IP blocking for security against brute-force attacks
* Support for HTTPS encryption
* CORS enabled for cross-origin requests
* Helmet for security headers
* Express SSLify for HTTPS redirection## API Endpoints
* `/customer/*`: Handles customer registration and logins
* `/transaction/*`: Handles transaction-related operations
* `/bankEmp/*`: Handles bank employee operations## Technologies Used
* Node.js
* Express.js
* MongoDB
* Argon2id
* AES-256-CBC
* JSON Web Tokens (JWT)
* Express Brute
* Helmet
* Express SSLify
* CORS
* HTTPS
* SSL Certificate
* dotenv
* express-rate-limit
* express-slow-down
* mongoose
* nodemon
* validator## Setup and Running the SwiftPay Server
To set up and run the SwiftPay server, follow these steps:
1. **Clone the Repository**: Clone the SwiftPay server repository from GitHub or your preferred version control system to a local directory on your machine.
2. **Install Dependencies**: Navigate to the cloned repository directory and run `npm install` to install all the required dependencies specified in the `package.json` file.
3. **Start the Server**: Once the dependencies are installed, start the server by running `node server.mjs` in your terminal or command prompt.
4. **Server URL**: The SwiftPay server will now be running on `https://localhost:3001`.
5. **SSL Certificate**: Ensure that the SSL certificates are properly configured and trusted by your system.
6. **Environment Variables**: Set the required environment variables, such as `JWT_SECRET`, before running the server in production.
7. **Database Connection**: Ensure that MongoDB is installed and running on your system. Configure the MongoDB connection settings in the server code to match your MongoDB setup.
8. **Troubleshooting**: Refer to the server logs for error messages and debugging information if you encounter any issues during setup or runtime.