So it's been one week since the start of GSOC 2012. It's time to take a look at what I've done so far and review the current progress.
- Test DPS gateway-hosted payment and
PayPalExpressCheckoutto understand the API and find the common structure.
- Separate Payment into model (
Paymentclass) and controller (
- Provide skeleton code and core API for the base classes.
- Set up
DummyPayment, a test gateway to verify the architecture and test the API. I will modify the Payment-Test module to test the
According to my initial timeline, at the moment I should've finished the core API and separated all gateways into sub-modules. However, during the community bonding period, my mentors and I agreed that we should discuss the architecture carefully before getting into the code. Therefore, I only started coding from May 22nd, which is 2 weeks later than the initial plan. We also agreed that the architecture should be done first and fully tested using the DummyPayment gateway. Then we can implement/refactor the individual gateways easily following the architecture. So now my timeline has been adjusted as follow:
May 7th – 20th: Familiarize myself with the code and the community; discuss architecture and implementation plan with the mentors.
May 21th – June 3rd: Implement the architecture and test it using DummyPayment. Study payment gateways’ API and test environments.
June 4th – June 10th: One-week vacation.
June 11th – June 17th: Implement PayPal payment gatway following the architecture with unit testing supported.
June 18th – June 24th: Implement other gateways that are currently supported by the module. Implementing the mock servers used for unit-testing the gateways is not neccessarily to be done at this time since it requires tedius gathering of HTTP request/response dialogues.
June 25th – July 8th: Gather HTTP request/response dialogues and set up mock servers for each payment gatway.
July 9th – July 15th: Implement Google Checkout and other gateways if time allows.
July 16th – July 22nd: Implement recurring payment API and
July 23rd – July 29th: Do more testing and refactoring. Make sure all payment gateways work perfectly.
July 30st – August 13th: Further refine tests and documentation for the whole project.
This updated timeline is not fixed and subjected to change as I go along. My aim is to try things out fast and react quickly if changes are needed. The minimum deliverable for the mid-term evaluation is the newly structured Payment core module with PayPal support. I'll make sure that will be achieved regardless of the changes I may encounter. I also set a 3-week buffer from July 23rd to August 13th for testing and documentation which can also be used for development if more time is needed. I'll continue working until the official GSOC end date, August 22nd if any aspect of the project still needs to be done.