Challenge Overview

In this challenge, we want to add the savable search filters feature to the challenge listing pages. We have built the prototype and implemented the Savable Search API, so in this challenge, you will implement the feature with the prototype by calling the savable search API.

Requirements Details

  1. My Filters dropdown shall be added to the right of the "My Challenges Only" checkbox (Note that the background color and style is changed for "My Challenges Only" checkbox). Like "My Challenges Only" checkbox, the "My Filters" dropdown only displays when the user is logged in.
  2. My Filters dropdown shall be populated with all the saved searches using API "{{URL}}/saved-searches?offset=0&limit=1000". Each saved search retrieved is put into a rectangular DIV in the dropdown, it has
    • the name of the saved search - this is a meaningful name the user enters when saving the search filters. It will set the name field of the API request.
    • the alert feature is not supported now, so remove this checkbox and label from the UI
    • The 'X' is used to remove the saved filter. Clicking it will call the API to remove "{{URL}}/saved-searches/{{SEARCH_ID}}" with DELETE http method
    • The saved filters details are displayed under the name in tag style. These tag-like search filters shall be parsed from the filter field which is a filter string . For example, for filter string "startDate=2014-09-29&endDate=2014-10-02&technologies=HTML5&platforms=Android&platforms=iOS&challengeTypes=Architecture&keywords=topcoder", the parsed out filter tags are
      • From 29 Sep 2014 to 02 Oct 2014
      • Architecture
      • Android
      • iOS
      • HTML5
      • Text: topcoder
  3. ���User clicks a saved search to apply all the filters of that search. Check the prototype for this operation.
  4. When there are filters chosen in the search section, there will be a blue Save button which allows user to save current filters combination. Clicking Save button will pop a small modal for you to enter the name. The alerts checkbox and the text are not needed, please remove it. There are two situations when saving a search
    • If the name that user inputs is the same as one of the existing save searches. We should do the update, get the ID of that existing search, and update the filters. See API document for details. After updating, the My Filters dropdown should be updated to reflect the change.
    • Otherwise, the name is a new one, we call the API to create a new saved search. After creation, the new item should be added into the My Filters dropdown.

Documentation

The documentation about the API and the prototype is available in the challenge forum document secion 

Please register the challenge to access them.

Browser Requirements

The following browser should be considered when a bug will involve UI fixes:
- IE10
- IE11
- Latest Safari
- Latest Firefox
- Latest Chrome

Resources and Guidelines

- Latest theme and plugin available on https://gitlab.com/topcoderinc/tc-site/tree/master
- Data is avaiable on https://github.com/topcoderinc/tc-site-data
- Please follow the guideline in our GitLab repo https://gitlab.com/topcoderinc/tc-site/blob/master/README.md���

Code Style

These are the formating rules our code should follow.

AngularJS

Quick Installation / deployment guide

1. Activate theme and plugin
2. Import provided XML file
3. Set home as front page
4. Set permalink to %post_name%
5. Please install site on local.topcoder.com (add to hosts file), so your local site can read tcsso and tcjwt cookie 
6. For local deployment ���Refer to 
https://gitlab.com/topcoderinc/tc-site/blob/master/README.md#local-env-setup, if want to disable local minification, please configure it on config.json

VirtualBox with Vagrant 

If you're unfamilar with tc-site local setup, you can also choose to use VM. You can refer to here: https://github.com/appirio-tech/tc1-mf-vagrant



Final Submission Guidelines

  1. Please submit only PATCH files, reference :https://gitlab.com/topcoderinc/tc-site#challenge-submission-and-review
  2. Please also submit Deployment Guide file
  3. If additional / updates page on wp-admin is required, please provide them in TEXT file and explain it in your Deployment Guide
  4. Any new js or css file must be included in the registry. learn about this on script-register.json file, and be sure it will be processed the Gruntfile.js as part of the build process. All tests must pass after the included files are minified.
  5. We will have winner to submit pull request once winner declared

ELIGIBLE EVENTS:

2015 topcoder Open

REVIEW STYLE:

Final Review:

Community Review Board

Approval:

User Sign-Off

SHARE:

ID: 30047803