Skip to main content

Setting Your Own Coding Projects on WeCP

Team WeCP avatar
Written by Team WeCP
Updated this week

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

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

environment

Prebuild script, test command, XML output file

tasks

Buttons for running & submitting

solutions

Mapping of solution file paths

submission

Source folder path

testcases

Test case display names

wecp-projects-extention-tabs

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.

Did this answer your question?