WeCP allows you to publish full coding projects - not just single coding questions - so candidates can work in a real development environment (IDE, files, folders, tests, tasks, and project-run buttons).
This guide explains how to structure and upload your project so it works seamlessly inside WeCP.
What makes a WeCP coding project?
Every coding project on WeCP contains three core pillars:
Component | Candidate Sees | Purpose |
Help.md | Problem statement & instructions | To understand requirements & features to implement |
Solution folder | Initial code + missing implementations | Where candidate writes their solution |
Test folder | Hidden test cases | Used to evaluate submissions automatically |
Step-by-Step - Creating Your Coding Project
1οΈβ£ Write the Problem Statement (Help.md)
Create a file named Help.md. It should include:
Description of the application candidates must build
Functional requirements
Method signatures + short explanations
Example format:
Feature: Fibonacci generator Method: getFibonacci(int n) Description: Returns Fibonacci series up to n.
π Tip: Keep the description crisp and unambiguous.
2οΈβ£ Create the src Folder Structure
Inside the src folder, add:
src/ βββ Solution/ βββ test/
Solution folder β Contains starter code for the project
test folder β Contains all unit test files (JUnit example is supported)
The test folder should evaluate:
Functional correctness
Edge cases
Output formatting
Below code is an example of the testcases:
Example Test Case File
Example Test Case File
package com.console.examples;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
import com.console.examples.MathOperations;
import com.console.examples.StringOperations;
public class TestMathOperations {
@Test
public void testIsPrimeNo() {
MathOperations mp = new MathOperations(19);
boolean expected = true;
boolean actual = mp.isPrimeNo();
assertEquals(expected, actual);
}
@Test
public void testIsPrimeNo2() {
MathOperations mp = new MathOperations(4);
boolean expected = false;
boolean actual = mp.isPrimeNo();
assertEquals(expected, actual);
}
@Test
public void testFibonacci() {
MathOperations mp = new MathOperations(15);
String expected = "0 1 1 2 3 5 8 13 21 34 55 89 144 233 377";
String actual = mp.getFibonacci();
assertEquals(expected, actual);
}
@Test
public void testFactorial() {
MathOperations mp = new MathOperations(5);
int expected = 120;
int actual = mp.getFactorial();
assertEquals(expected, actual);
}
@Test
public void testRerverse() {
StringOperations sp = new StringOperations("Local");
String expected = "lacoL";
String actual = sp.reverseString();
assertEquals(expected, actual);
}
@Test
public void testUppperCase() {
StringOperations sp = new StringOperations("Local");
String expected = "LOCAL";
String actual = sp.uCaseStr();
assertEquals(expected, actual);
}
@Test
public void testLowerCase() {
StringOperations sp = new StringOperations("HELLO");
String expected = "hello";
String actual = sp.lCaseStr();
assertEquals(expected, actual);
}
}
3οΈβ£ Add Starter Code / Boilerplate
Create a folder named missing-solution.
Copy every solution file into this folder
Replace their implementation with placeholders
Keep method signatures intact
Add comments like:
// complete the code here
This helps candidates know exactly where to write code.
4οΈβ£ Use Dev Instance (VS Code) to Upload Project
Ask WeCP support team via Intercom Chat for a dev EC2 instance with VS Code access.
Then upload your local project folder into the instance.
Ensure it contains:
Help.md src/ missing-solution/ .vscode/ config.json
5οΈβ£ Add VS Code Settings for Candidate Experience
Inside .vscode add:
β settings.json
Hide test files and node_modules from the candidate:
{ "files.exclude": { "src/test": true, "node_modules": true } }β tasks.json
Configure buttons inside the IDE:
{ "version": "2.0.0", "tasks": [ { "label": "Run App", "command": "sudo mvn clean install -DskipTests=true exec:java", "type": "shell" }, { "label": "Submit App", "command": "./resolv.sh", "type": "shell" } ] }These buttons appear inside the WeCP IDE for candidates.
6οΈβ£ Add config.json (Execution, tests, tasks, tabs)
This file tells WeCP how to run the project.
It includes:
Key | Purpose |
| Prebuild script, test command, XML output file |
| Buttons for running & submitting |
| Mapping of solution file paths |
| Source folder path |
| Test case display names |
| UI button configuration |
π Make sure paths match the folder structure INSIDE the src folder β not missing-solution.
7οΈβ£ Validate & Push Project
Before sending your project to the content team:
sh main.sh project_folder_name
If validation succeeds:
sh push.sh project_folder_name
Finally, share the uploaded folder name with the Content Team.
π Your project is now live!
Once complete, candidates can:
Write code inside a real VS Code environment
Run the app themselves
Submit against hidden test cases
Receive instant scoring + feedback
If you need help refining your project structure or test cases, reach out to the WeCP team anytime via Intercom support chat.
