Challenge Overview
Project Overview
SRT is an HTML5 web app used to manage service requests from the customers, it support both online and offline modes.
Competition Task Overview
In this challenge, we are going to enhance the tool with two new features: announcements and reporting.
Announcements
Currently, when SRT administration provides an update to the system, there is no communication to end users on this update. Updates may have small or large impacts on the system and may affect the users, there needs to be a way to better communicate to end users through the system.
Please note the View Announcements menu should always be visible even though it's not in the prototype. And Manage Announcements menu should always and only be visible to admins.
Please check the prototype and the detailed requirements in the forum.
Note this feature won't work in offline mode, so the app should disable the features while in offline mode.
Reporting
With the growing number of service requests, there is more need to report on different sales trends (by sales division, service request type, sales area, etc.) and with the current system, there is no way to filter the information by specific fields and users cannot extract information from SRT to an excel sheet. Business-Ops need to be able to extract information about deals so they can provide accurate reporting with the pricing team.
Please check the prototype and the detailed requirements in the forum.
Note this feature won't work in offline mode, so the app should disable the features while in offline mode.
For exporting to PDF, we should reformat the tables to fit the page width for the PDF. We should use the same approach that we use to export a full service request right now.
General Coding Requirements
Every new code piece added to the SRT system should be documented. Documentation must include:
- Date coded
- Name of developer
- Name of requirement code belongs to
- Description of what the code does
- Start and end of line of code
The following general requirements must also be followed:
- Please use the exact same technologies currently used in the app
- Make sure the changes don't break any existing features (both online and offline modes)
- Make sure the app works with both Oracle and Postgres databases
- Must be tested under both Windows and MacOS
- If changes are needed to the database, we need an additional script that can be used to alter the client's existing database since we cannot just drop the tables and re-create them. We need the script for both oracle and postgres databases. The script should be named like this: 20150908_unified_tab_updates.sql
- This must work on latest version of Chrome / Firefox / Safari on Mac / Windows / Linux.
Code Base
Please use the code we provided in the forum as base. The winner will be asked to send a pull request to our github repo when challenge is approved.
Winner may also be asked to help deploy the code on a VM.
Technology Overview
Java
Postgres
Oracle
Tomcat
HTML5
AngularJS
Final Submission Guidelines
Submission Deliverables
A complete list of deliverables can be viewed in the TopCoder Assembly competition Tutorial at: http://apps.topcoder.com/wiki/display/tc/Assembly+Competition+Tutorials
Below is an overview of the deliverables:
- Code that covers the requirements
- A (NEW) complete and detailed deployment documented explaining how to deploy the application including configuration information. If deployment guide needs no change then a separate verification guide.
- You can remove the other irrelevant deployment guides from your submission.
- The maven build script to create the war files. Very likely you can reuse the existing one and don't need to modify anything.
Final Submission
For each member, the final submission should be uploaded via the challenge detail page on topcoder.com.