Challenge Overview
Challenge Objectives
-
Create the REST API and DB schema for the given design.
Project Background
-
TELUS is a national telecommunications company in Canada that provides a wide range of telecommunications products and services including internet access, voice, entertainment, healthcare, video, and IPTV television.
-
The source will be data files: CSV, TSV, XLS, or XLSX
-
The data can contain more than 10.000 rows of information. In order to serve larger datasets while maintaining responsiveness, the solution should split data into chunks and display an efficient number of rows at a time to ensure responsive interaction within the tool.
-
The validation process is to verify the validity of the data and only involves downvoting, upvoting, and adding comments or observations per row.
-
Multiple users work at the same time on the same data source.
Technology Stack
- Google Cloud
- Postgres (or you have better options to create an efficient solution)
- Node.js
- Swagger���
User Roles
There are two roles in this application.
-
Data Validator
-
Admin
Individual Requirements
Both design and prototype will be provided to you.
- https://marvelapp.com/prototype/50h0a5b/screens
- The prototype is in the forum
Refer to this challenge spec for an overview of all pages in the prototype: http://www.topcoder.com/challenges/30145133
Please also check the requirements in the background section, the design should be able to handle large files efficiently. The suggested Postgres is merely a suggestion, but if it's unable to handle the file import and loading / searching efficiently, then alternative approach should be considered.
- it should support all kinds of CSV, TSV, XLS, or XLSX formats
- the files can have different columns
Submission Format
- Swagger YAML file containing the REST APIs and implementation notes
- DB Schema
- UI to API mapping