Key Information

Register
Submit
The challenge is finished.

Challenge Overview

$500 prize will be rewarded to you if you submit a passing review submission that did not place as 1st or 2nd place. Guranteed!

To get started :

  • Setup environment following this github article (you need permission to view it)
  • Checkout csfv_frontend_module
  • copy .env_sample to .env
  • configure your hosts file to point csfv.com at 127.0.0.1
  • run 'npm install' - use latest stable nodejs version
  • Make sure memcached, and mongo db are running.
  • run 'node app.js' or 'forever app.js'
  • You are ready go code!

Project Overview

This project, the CSFV Community Gaming website project provides the web site infrastructure and integration of the games. This is also a web site that is available on the Internet, and also delivered in a form where the server and the games can be installed and used behind a firewall.

Challenge Task Overview

We are removing the wiki approval process, and remove the login requirement to enable users access view-only wiki pages.

Login Changes

  • The wiki controller require user to be authenticated to access any wiki page, this should be changed to allow users to access view-only pages, wiki listing page, wiki details page. We will keep login requirement for all actions and pages that will cause change to the wiki articles state in backend/database.
    • As an example of a change you will do : 
      • In csfv_wiki_module/Wiki.js#index method, this method render the /wiki page where you will have to login - if you are not - in order to view the page.
      • The change will involve couple of things : 
        • Remove the code that force viewer to be logged in.
        • The code to retrieve user and set it in model becomes optional for non logged in user.
        • The retrieval of favorite pages and wiki space becomes optional for non logged in user.
        • You might also need to make some other changes so the code won't break when you try to view /wiki page.
        • You will also might need to make changes to the /wiki view file so that favorites don't expect favorite always because it is optional now. The same thing for model.username or model.user .. etc.
    • The changes in the example above is also applying to the following routes : 
      • 'GET /wiki': 'Wiki#index'
      • 'GET /wiki/sp/:spaceKey': 'Wiki#showSpace'
      • 'GET /wiki/sp/:spaceKey/ti/:title': 'Wiki#showPage'
      • 'GET /wiki/permission': 'Wiki#requestPermission'
      • 'GET /wiki/sp/:spaceKey/print/:title': 'Wiki#printPage'
      • 'GET /wiki/search': 'Wiki#searchPages'
      • 'GET /wiki/tags/show/:id': 'Wiki#showWikiTag'
      • 'POST /wiki/generatepdf': 'Wiki#exportWikiPage'
      • 'GET /wiki/labels': 'Wiki#suggestLabels'
      • 'GET /wiki/attachments/:id': 'Wiki#getAttachment'
      • 'GET /wiki/sp/:spaceKey/ti/:title/allAttachments': 'Wiki#getAllAttachments'
      • 'GET /wiki/sp/:spaceKey/ti/:title/history': 'Wiki#showEditHistory'
      • You need to cleanup the code by reviewing the views, js script, css that is not needed anymore.
      • If there is other readonly pages that can be changed to public, you can post in forums to get confirmation from Copilot.

Approval Process Removal

  • We have a process in the CSFV Wiki that force all created/updated wiki articles to go into an approval process. We are removing this step so that any published article will be available on the website without any approval step.
  • We have two models in existing flow : 
    • WikiPage - this holds the article information/content after being approved.
    • WikiPageUpdateRequest - this holds draft articles and pending articles including accepted, and rejected articles.
  • You will remove WIkiPageUpdateRequest model in this challenge :
    • Creating and Updating wiki articles to be published will be directly stored in WikiPage.
    • Draft articles will now be stored in WikiPage instead of WikiPageUpdatedRequest.
    • You need to update WikiPage to include a new field 'status' to store the status of the article : we support PUBLISHED and DRAFT statuses
  • In csfv_frontend_module you will focus on create/edit page to verify your changes, it is the page that we use to create, update and safe draft articles.
  • In backend you need to change the SubmitUpdateRequest be become SavePage, it is less confusing when we change the name. The wiki service should be updated as well.
    • You will remove all logic that use WikiPageUpdateRequest and 'PENDING' logic in wiki service and controller.
    • Move the logic to create/update wikiPage from processUpdateRequest to SavePage. You need to change the logic to store 'status' field to support saving draft articles.
  • Update all retrieval Wiki controller methods and services methods to exclude status = DRAFT for pages that are not supposed to view draft pages.
    • User can view drafts in 'My Space' page under 'My Drafts' tab. The backend controller of this page should retrieve from WikiPage where status = DRAFT.
  • Cleanup the code in controller/services/model/helpers to remove all code related to WikiPageUpateRequest processing/manipulating.
  • You probably might need to perform changes to frontend javascript/views to work with the new changes.

Test Scenario

  • Attached Wiki Test Scenarios in forums challenge. You need to update it to match the new changes.

Github Repo

API exists in private repositories, request access in challenge forums if you don't have it already.

You can also search the repository for other CSFV dependencies as well.



Final Submission Guidelines

Submission Deliverables

Below is an overview of the deliverables:

  • Git patch of the changes of each repository changed.
  • Text file with notes to reviewer about deployment.
  • Updated Test Scenarios. 

Final Submission

For each member, the final submission should be uploaded via the challenge detail page on topcoder.com.

 

 

ELIGIBLE EVENTS:

2015 topcoder Open

REVIEW STYLE:

Final Review:

Community Review Board

Approval:

User Sign-Off

SHARE:

ID: 30047488