Challenge Overview
1. Project Overview
1.1 System Description
The client for this project has decided to build a platform that will support the sale, exchange, and redemption of gift cards between businesses and individuals. The goal of this platform is to help small businesses expand, using both web and mobile layouts, by giving them a simple way to raise capital and acquire new customers using gift cards.
The client needs to create a high quality platform that is easy-to-use even for business owners that don’t have a lot of technical expertise. Many business owners are not technologically sophisticated, so creating a platform that is simple to understand and navigate is also a top priority.
The main function of the platform will be to allow business to post virtual gift cards for sale on the platform. Individual users will be able to browse and buy these gift cards, as well as resell or trade gift cards they own. Using the mobile layout, users will be able to redeem their gift cards at the business, and the business will be able to process gift card redemption at their point of sale.
This assembly is responsible for implementing Gift Card Offers Search and View enhancements.
1.2 Competition Task Overview
1.2.1 Scope
The requirements description is attached. For the access to Jira tickets (there might be some comments or implementation notes), please claim the access at the forum. Please note that Jira tickets are ultimate requirements in case of any conflicts with the attached document.
Codebase is attached at the forum (might be slightly updated during the assembly).
1.2.1.1. Gift card offers location based view and sorting order
Champion role: Home page
https://apps.topcoder.com/bugs/browse/PMP-180
1.2.1.2. Search offers by type of business at the home page
Champion role: Home page
https://apps.topcoder.com/bugs/browse/PMP-181
Mobile gift card offers page update (don't confuse with "my foundershares" aka "my gift cards" page):
- remove sorting ("Order By") feature for gift card offers;
- use its drop down list for search by type ("businesstypes" schema in the database);
- when user clicks magnifying glass, along with keyword search box a location box must appear.
1.2.1.3. Search offers by location at the home page
Champion role: Home page
https://apps.topcoder.com/bugs/browse/PMP-186
1.2.1.4. If user has no gift cards owned display 3 offers with highest discount in her location
Champion role: My profile -> My Founder$hares page
https://apps.topcoder.com/bugs/browse/PMP-185
Please provide reviewers an opportunity to mock a location (instead of taking it by IP and GPS coordinates) in order to fully test business logic (including ZIP) with USA addresses.
1.2.2. API and DB update
When/if you create new API and/or update DB schema please ensure that
- API is secure and checks ID of the requesting client: no user (Individual or Business) shall have access to another user's data via API unless they are authorized. E.g. Business Owner shall not be able to view gift cards of another business calling API with another business ID parameter.
- new API is covered with unit tests.
- updates to the DB schema are documented in a dedicated file and please provide a mechanism that will fill new fields of the existing records with empty valid value. E.g. of being NULL, a numeric field shall be 0, string field - be "n/a", ZIP code - 00000 etc.
1.2.3. API design
Please keep in mind that search method might be enhanced in future to accommodate more parameters, e.g. user data stored in cookies and in user profiles. Thus search method interface and implementation must be flexible enough to handle these future enhacements seamlessly.
1.2.4. Code documentation
Change log must be added to all JS files that you’ve updated. It must contain
- version of the file;
- name of assembly;
- jira ticket id (if applicable), e.g. PMP-181.
1.3 Approval phase
- Since the codebase may be updated in parallel, the winner may be asked to merge the codebase (mostly integrating the code of this assembly into the main branch).
- Some minor UX/UI fixes may be requested by the client during approval phase.
Final Submission Guidelines
- Working Codebase (please do not submit diffs or patches)
- Updated deployment guide
A complete list of deliverables can be found in the TopCoder Assembly competition Tutorial at:
http://apps.topcoder.com/wiki/display/tc/Assembly+Competition+Tutorials
If anything deployment/configuration related needs to be added to the existing deployment guide, please do it in Edit mode (MS Word). The verification steps for this assembly must be provided in a separate file to avoid any confusion.
- The working app is available at https://www.foundershare.com/ (Production) and http://www.qa.foundershare.com/ (QA).
- The current codebase is posted at the forum.