I have modified nop v3.10 to allow for integration with NMI gateways (Arrow Payments, Braintree, Planet Authorize, etc). The goal is to ensure that card data is not "stored, processed, or transmitted" by the web server, while keeping the customer on the website. In theory, this takes the web server out of PCI scope.
There are a lot of changes across the entire core codebase to make both multi-page and single-page checkouts work, but I've been careful not to break the payment plugin architecture, nor have I disturbed the existing checkout page flow.
I would like to contribute the changes and have my code reviewed, but I'm not familiar with the process. Where do I start?