Challenge Overview
If you have troubles viewing this challenge in the new TC website theme, go to this link http://community.topcoder.com/tc?module=ProjectDetail&pj=30041652 and type the following in browser dev console document.cookie ='oldTheme=true; expires=Fri, 3 Aug 2111 20:47:11 UTC; path=/'
Project Overview
NASA need to develop a software version of the Solution Mechanism Guide so that users can navigate a search form to a filtered subset of solution mechanisms that are a best fit for their specific needs based on the criteria they input (experience similar to finding a car rental or airline ticket online but more fun and NASA-y).
Competition Task Overview
Provided an HTML/CSS/JS prototype and NASA SMG API, your are required to integrate the API with the prototype and produce a functional website. Below a sketch of how the website will work :
The diagram explained as follow :
- The application is hosted in Windows Server, in IIS as an application, the application hosts both HTML/CSS/JS and NodeJS API.
- User hits NASA SMG web page. As NTLM is enabled, user will be prompted to enter credentials, if the page can be accessed by general user then any valid credentials can work on it, admin pages can only be accessed via Admins.
- Rendered web page in client side browser communicates with the NodeJS API via ajax calls from the Javascript to load to the content of the page.
- NodeJS API facilitates CRUD operations if this is an admin request, or facilitates R operations if this is a general user request.
- Both API and HTML are hosted on the same domain under IIS so no origin policy issue would occur.
You are provided with the following :
- HTML/CSS/JS Prototype with hardcoded content.
- NodeJS API with deployment guide to set it up on IIS on a windows server
You are required to address the following :
- Update the required HTML pages to communicate with the NodeJS API via ajax. All pages to deliver must be functional.
- You might need to make minor fixes to the prototype if there is a specific functionality or styling missing.
- Fix any issue in the API if needed.
- Notes when deploying the HTML pages + API to IIS 7 :
- NTLM authentication must be enabled, other authentications should be disabled.
- Admin pages should be access via /admin/XXX path
- Admin pages should be accessed only by users with admin role.
Required Pages
The blow are required pages, the mapping between the pages and NodeJS API should be strightforward, note that everything in these pages must be implemented
- admin_manage_help_topics.html
- Dashboard Details tab:
- The ckeditor content will be rendered in home.html
- The image to be uploaded will be used to create the content in the CKEditor.
- We don't have API for this one, create simple model and add new controller to handle it.
- Help Topics tab :
- This tab will load the topics, it uses GET /helpTopic endpoint to retrieve topics.
- For delete it users DELETE /helpTopic/:id endpoint, clicking delete should show confirmation message
- For add/edit buttons, it will take user to add/edit help topics. It uses POST /helpTopic to add new topic, and PUT /helpTopic/:id to update existing one
- Currently the html page render all forms for viewing/add/edit in single page, you can separate them into different pages if you want to.
- Dashboard Details tab:
- help_topics_listing.html
- Loads help topics using GET /helpTopic endpoint
- Truncate help topic content, it should not exceed 140 characters, the turncate should be workd-based not character-based, meaning that it should not turncate words, it should count how many words that combine ~140 characters with spaces and truncate it.
- Print is out of scope
- "Learn More" will take user to help_topics_details.html
- help_topics_details.html
- It should display the content as it was provided in the CKEdtor. note that the image place is fixed, it should always appear in that position with the same size, so if image size is bigger it should be resized to fit it's position.
- "Related Topics" and "Examples" widgets should be populated using corresponding endpoints for Topics and Examples, note that there is no specific logic to pull related topics and examples, so you can randomly populate these.
- The endpoint to be used in GET /helpTopic/:id
- examples_listing.html
- Retrieve all SMG and retrieve examples associated and display it in the page.
- For pick list, it should have list of the retrieved SMG, if user pick specific SMG from picklist, the page will be filtered to show examples associated with the SMG.
- Learn more button will take user to example_details.html
- example_details.html
- It displays the example content as it was entered in CKEditor
- Related examples should be the ones associated with parent SMG, if there is no other examples associated with SMG then don't show the widget.
- Print is out of scope.
- home.html
- The top graphic/content are rendered from dashboard details entry in admin_manage_help_topics.html
- The filter panel with radio buttons will render the active search form. Clicking on "Identify Solution" will take user to smg_listing.html page (clicking on the button should do nothing as it is out of scope for now).
- prelogin.html
- The page are displayed as default page when hitting the website domain (i.e. http://smg-domain.com/ should render this page)
General Notes
- Please note that PRINT functionality is out of scope.
- Validation errors and styling must be implemented in all Add/Edit/Search forms.
- Endpoints to be used in each page are listed above but there might be other endpoints to be used. If you need more help you can ask in the challenge forums and Copilot will provide help.
Testing
You need to provide manual demo to verify your implementation.
Documentation Provided
Documentation and Applications that will be provided in the challenge forums to registered members:
- UI Prototype
- NASA SMG API
Final Submission Guidelines
Submission Deliverables
Below is an overview of the deliverables:
- Fully Implemented NASA SMG website including any changes to the API.
- A complete and detailed deployment document explaining how to deploy the application including configuration information.
Final Submission
For each member, the final submission should be uploaded to the Online Review Tool.