Challenge Overview
Challenge Objectives
-
Write an api in Nodejs for ClamAV Anti Virus
Project Background
-
This is part of the Submission API suite
-
Submission API is a set of endpoints for a section of the Topcoder platform
-
For one of these endpoints, namely creation of a submission, we wish to check if the uploaded submission is infected with a virus or if it is clean.
-
This is where the Nodejs API in scope for this contest comes into picture. It will be used to perform an antivirus scan on the uploaded submission
Technology Stack
-
This is a backend only app (with REST endpoints)
-
We will use Nodejs version 8
Code Access
-
We are starting from scratch. You are building the api in this contest. Thus, there is no existing code base to work with.
-
However, you can take inspiration from an existing Java based api for ClamAV here.
Individual Requirements
Write a Nodejs api server to run ClamAV. (Major Requirement)
-
You can use an existing java api located here as reference.
-
Optionally, provide a Docker file to deploy your app. If you do provide it and win the contest (first or second place), you will earn an additional $100 (only if the Docker file is implemented correctly)
-
You will provide tests for the api server.
Deployment Guide and Validation Document
-
Kindly provide a README file with information on how to deploy your app
-
You are not required to provide a POSTMAN collection. However, do specify how to use the rest api in the README to scan files for viruses.
-
The file will be passed to the REST api for scanning. The REST api is expected to respond if the file is clean or infected
Important Notes
-
Use the standard library to lint your codebase
-
You are however also expected to provide unit tests such as verifying that the rest endpoint accurately predicts infected files or not. You can use EICAR test file
-
There’s a blog post (that you can also find in the README) that you may find useful to get a background on the reference Java api.
-
The java api is provided as a reference only. You can ignore it and provide a REST api of your own too.
Final Submission Guidelines
-
Zip and upload the code base to Topcoder
-
Ensure there are no lint errors
-
Ensure that you have provided unit tests.