Release Assembly - CSFV Forums Frontend Revamp Part 2

Register
Submit a solution
The challenge is finished.

Challenge Overview

Project Overview

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

 

This is a series of small and simple challenges to revamp forums UX and UI in CSFV websites. We've completed the first challenge

Competition Task Overview

The goal of this challenge is to revamp the forums frontend in csfv_minisite_frontend_module branch #minisite1.

General Notes

  • Use forums_ux branch from csfv_frontend_module to check how we implemented it
  • You must REFERENCE the forums.js file from csfv_frontend_module#forums_ux branch
  • You only need to implement the Views in this challenge.
  • Demonstrate how to use one of the categories defined in ForumCategory as the root category of the minisite1 forums (don't use Uncategorized)
  • There are few changes between csfv_frontend_module#forums_ux views and the provided protototype in that challenge, you should implement these differences in this challenge as well.
  • All pages must be updated to match the UI Prototype unless it is outlined above that there are changes neede to specific pages.

  • Any non-admin page in production are not found in prototype should be kept, don't delete any non-admin page unless it is stated in requirements or confirmed in forums.

  • By default we display 20 posts, “Load more” will also pull another 20 posts. In both thread list page and thread details page.

  • Any button currently displayed in the black forums bar should be moved ot the top forums buttons menu

Updated Pages

  • Forums main page : GET /forums

    • UI Prototype page forums-main.html

    • By default it lists all threads under all categories of the configured category. already addressed in csfv_forums_module#forums_ux branch, you only need to apply the config in #minisite1 branch.

    • Remove 'Add Forum' Button

    • Remove 'Pipeline' Button

    • 'MY POST' should be 'MY POSTS' in all pages

    • Change 'Add Subcategory' to 'Add Category'

    • Pinned posts are always displayed at the top except when sorting

    • Pinned posts are decided as follow :

      • If ‘All Categories’ (the default) then the ‘Uncategorized’ pinned thread will be displayed.

      • Other than that, Pinned threads are only retrieved for the selected category.

    • Implement sorting as in prototype

    • Implement pagination as in prototype, the backend should send total number of items so “Load more” button don’t display if there is no more posts to load.

    • The new tabs are used to improve UX

      • by default 'Most Recent' is active tab, which display threads that were posted recently, "Pinned" threads are only these from 'Uncategorized'

      • 'Admin Posts' - this tab will pull the posts under configured category that will be used as "Blog" category, the threads will look like 'pinned' threads except that the 'pinned' icon should be removed

      • 'Most Viewed' - this display posts with most viewed

      • 'Most Popular' - display threads sorted by highest number of replies

      • Unread - this tab display unread threads of the user

      • The notification number on the tab represents the number of new/unread threads under that tab, if the number exceed 1000, use the 'k' to reduce the width, for example 1345 should be displayed as 1.3k

    • 'Watch Category' popup - it will list all categories with their descriptions, user can watch/unwatch category from this popup. The "manage categories" link will only be available to Admins.

    • Hover over users photo should display tooltip with the username.

    • Clicking in any 'category' tag will filter the page with threads of the selected category and it's subcategories. Same behavior as selecting category from “All Categories’ drop down list.

    • The route when filter the page with specific category should be "GET /forums/{category-name} where dash (-) should replace spaces.

    • Use JS templates when loading more threads instead of hardcoding the html in the JS files.

    • “Last Poster” column - use the format as done in csfv_frontend_module.

    • the backend should send the total number of threads so that if no more to load then “Load more’ button should not be displayed

  • Threads Page

    • Prototype page is : forums-thread.html

    • Must match prototype

    • Move ‘Watch’ and ‘Delete’ buttons from black header to forums menu.

    • Progressive loading to replace pagination

    • The backend should send the total number of threads so that if no more to load then “Load more’ button should not be displayed

    • ‘Share’ button is out of scope, don’t add it to the page.

    • Add ‘Pin Thread’ button at the forums top buttons, it will only be visible to the admins. When clicking that button, the thread will be pinned and a post will be posted automatically in that thread by the user who pinned the post with text “This topic is now pinned. It will appear at the top of its category."

    • Add ‘Lock’ button, when clicking the thread will be locked and no more accepting replies, a post will be posted automatically in that thread by the user who pinned the post with text “This topic is now locked. It will accept no more replies.” you can use the lock icon from forums-my-post.html to be displayed in the forums-main.html

  • Post/Update Thread

    • UI prototype page : forums-new-thread.html

    • Update post thread to match prototype

      • Category drop down list will list all categories and child categories.

      • Remove Pin Post checkbox

  • Search pages

    • UI Prototyep page : forums-advanced-search.html and forums-search-results.html

    • Should implement progressive loading and sorting

  • Manage Categories

    • UI Prototype page : forums-manage-categories.html

    • Only accessed by admins

    • Display list of categories with their descriptions

    • user can delete or edit the categories

    • Sorting to be implemented in the page

    • Progressive loading to be implemented in this page

  • Add/Edit Category :

    • Same page as we currently have in the frontend application.

  • “MY Posts” page :

    • Should match forums-my-post.html

    • Sorting should be implemented

    • Progressive loading should be implemented

    • Change ‘Forum’ column to ‘Category’ column

  • My Watches

    • Should match forums-my-watches.html

    • Sorting, progressive loading should be implemented

    • move “remove selected’ to the top

    • Forums tab should be changed to ‘Categories’

Admin Pages

We will no more have admin pages other than the one provided in forums. The admin and users will use the same pages, the only difference that admin pages in prototype and admin functionality will be available via buttons in the main forums menu and buttons in each message in threads.

 

If you have any doubt about specific admin functionality please post in forums to discuss and don’t make any pre-assumption.

 

Cleanup routes and javascript

 

Cleanup the routes to remove the forums routes that is no more needed, remove javascript and css that is no more needed.

 

The javascript frontend should be REFERENCED from csfv_frontend_module/public/forums.js file

  

Technology Overview

  • Node.js

  • Express.js

  • mongo

  • ajax

  • html

  • javascript

  • css

  • jade

Documentation Provided

UI Prototype is provided in forums.

Github Code

  • The code is in http://www.github.com/topcoderinc if you don’t have access, please request it in the contest forums.
  • The csfv_frontend_module#forums_ux branch https://github.com/topcoderinc/csfv_frontend_module/tree/forums_ux
  • the csfv_minisite_frontend_module https://github.com/topcoderinc/csfv_minisite_frontend_module

During approval phase, the winner will have to checkin fixes to forums_ux branch in csfv_minisite_frontend_module module



Final Submission Guidelines

Submission Deliverables

Below is an overview of the deliverables:

  • Patch file of changes.
  • Upated readme file
  • Deployment document.

Final Submission

For each member, the final submission should be uploaded to the Online Review Tool.

ELIGIBLE EVENTS:

2014 TopCoder(R) Open

Review style

Final Review

Community Review Board

Approval

User Sign-Off

ID: 30041678