Challenge Overview

Purpose

The purpose of this challenge is to gather the ideas for refactoring the existing codebase which will improve maintainabiliy and performance of the code as well as make the barrier to entry for new developers lower.

Though the prize itself is low, the main incentives for members here are

1) getting private tasks for suggested refactoring implementation and further consulting; the developers who already won some challenges of this project will get those for sure;

2) understanding the business flow and the codebase for future assemblies and UI prototypes participation.

 

Scope 

We've been developing this codebase for a year and accrued some technical debt that may impede our further functional incremenent. Thus we summon the TC community to review the code and come up with ideas for refactoring and code improvement. The contributors have a high chance to get a paid private task to implement suggested improvements. 

We rely on your best judgement and experience but would want to highlight the following areas we are looking for help with:

1) CSS: optimizing classes, removing duplicates, splitting files

2) Unifying UI elements: abstract the same logic into a common controllers, CSS class or directive.

3) Testing approaches; test automation

4) Deployment Guide and Readme files optimization

5) removing duplicates and DRY principle violations

6) GUI and API performance optimization

7) infrastructure and dependencies updates/replacement

8) trivial results of code inspection done in IDE won't get credit, but generalized conclusions from such code inspection are welcome

9) etc. on your best judgement

 

Already known improvements list:

1) The mom_frontend and mom_api apps are going to be restructured according to https://docs.google.com/document/d/1XXMvReO8-Awi1EZXAXS4PzDzdNvV6pGcuaF4Q9821Es/pub as mom_mobile app;

2) unifying API URLs to be ReSTful as in mom_moibile now;

3) GiftCardOfferService is to be broken into GiftCardOfferCommentService, GiftCardOfferDataService, GiftCardOfferMiscService (including "purchase");

4) Gift cards Resale feature related code must be removed as the feature is not functional anymore.

 

Benefits

The one who logs the max number of valid refactoring ideas wins, and you should try to merge the similar issues in one idea.

Other members will receive $5 per each minor idea and $15 per each major idea that gets credit. The priority of idea (major/minor) is upon client's discretion.

Also you have a good chance to get a paid private task to implement your ideas.

Rules

  1. First competitor to suggest an improvement gets credit, duplicates will not be counted.
  2. Reviewers will accept, reject or mark the issues as duplicate also giving them Minor or Major priority.
  3. Please do take a look at the Already known improvements list above, duplicated improvements cost your work time and the reviewer's time.
  4. If you have any questions or confusions let us know, via the forums and/or private message (Contact Manager).

 

Environments and testing

PROD - https://foundershare.com (please do not pollute it with fake data; also requires a real credit card). It is behind the development, so it's missing the features you need to test. Given for reference, but any valid bugs reported are appreciated.

QA - https://qa.foundershare.com (54.210.40.145) - this one is for testing.

You can access database at QA using a remote client like Robomongo via port 27017. This way you can set Verified status for business account that you will create.

You can test all functionality at QA using sandbox credit cards (e.g. number 4111 1111 1111 1111, valud expiry date and any cvv, e.g. 123), see https://developers.braintreepayments.com/reference/general/testing/node for details

To access mobile version in desktop browser add "/mobile/#/", e.g. qa.foundershare.com/mobile/#/

Codebase is attached at the forum.



Final Submission Guidelines

Please note this is not a traditional bug hunt and functional/GUI bugs won't get credit.

Log your issues as Improvements in JIRA here: https://apps.topcoder.com/bugs/browse/PMP

All improvements must include the following:

  1. Title.
  2. Component = Refactoring2016
  3. Description: AS IS part - how it works now.
  4. Description: TO BE part - how you suggest updating it.
  5. Motivation: why do you think it will help and what do we lose unless it is implemented.
  6. Labels (mom_api, mom_frontend, mom_mobile) according to the app you want to amend. Multipe labels if multiple apps are affected.

 

NOTE

You must register for this challenge and submit a list of issues you reported in Jira via OR to get the prize. Just like in a regular Bug Hunt.

Review style

Final Review

Community Review Board

Approval

User Sign-Off

ID: 30052667