Table of Contents

Contribute to 2sxc / EAV - Setup

Warning

This is meant for people who want to contribute to the underlying source code of 2sxc and EAV.

If you only want to USE 2sxc / EAV, then you do NOT need this.

Note

First of all, thank you for your interest in contributing to 2sxc and EAV! We are always looking for talented developers to help us improve our products and make them even better.

Getting everything set up for contributing may seem a bit daunting. But if you are interested, we would be glad to help - just reach out to us on info@....

Introduction

To develop locally you'll need:

  1. A local DNN and/or Oqtane installation with 2sxc installed, where you can test your changes.
  2. The source code of 2sxc and EAV on your local machine, so you can make changes and test them.
  3. An understanding of the build process, so you can build the code and test it in your local environment.

Once you are ready to submit your changes, you will also need knowledge of Git and GitHub, so you can manage your changes and submit them to us for review.

Prerequisites

This is the most common starting point for most contributors, since DNN is the most widely used platform for 2sxc. It is essential, that any contributions are tested on DNN.

You need to have the following software installed on your machine:

  1. Windows 11 or similar
  2. SQL Server 2016 or latest (any edition will do)
  3. You have a working DNN 9.11.02 or higher with 2sxc already installed as a module, ideally in c:\projects\2sxc\2sxc.dnndev.me\website\
    You can also use any other location, just make sure to update the 2sxc-build.config.json file accordingly
Tip

We recommend nvQuickSite to get local DNNs up and running.

File and Folder Structure

The full solution pulls together 4 Github repositories. Two for server-code, one for UI, and one for in-page JS. We separated these to make it easier to contribute to a specific part without worrying about the rest.

If you only want to contribute to something small - like the languages / translations - then you only need to download that repository.

In the complex scenarios each project can build into the other targe. So if you want to work full-stack and use all of the automation, you will want to put everything in C:\Projects\2sxc\.

This is the recommended minimal file structure - which you should also use as a first reference:

  • C:\Projects\2sxc\ - main folder to put all the code.
    • \2sxc.dnndev.me\ - local DNN with 2sxc installed, to test your changes in DNN
    • \2sxc-build.config.json - build configuration file - see Build Automation
    • \...\ one or more sub folders containing the code repositories you wish to build

The optional sub folders are:

  1. For the backend (you need both of these)
  2. For the in-page editing experience
  3. For the main edit/admin UIs
  4. For the Oqtane version of 2sxc
    • \oqtane\oqtane.framework\ - the source code of the Oqtane version of 2sxc, from the

How You Will Usually Work

  1. You will make changes to the source on your local machine.
  2. You will build the code.
  3. The build should automatically copy the result to your local DNN and Oqtane installation
  4. You can then open your local Dnn/Oqtane in a browser and test your changes to ensure everything works as expected.
flowchart TB
 subgraph s1["VS, MSBuild, Webpack, ..."]
    direction LR
        B["create DLLs, JS, CSS<br>to <b>/dist</b> or <b>/debug</b> folder"]
        n2["look for<br><b>2sxc-build.config.json</b><br>in <b>all parent</b> folders"]
        n1(["DLLs/JS/CSS<br>in the local DNN"])
  end
    B --> n2
    A["make code changes"] -- run build --> s1
    n2 -- found?<br>deploy to dev<br> --> n1
    s1 --> n3["review changes in browser"] & n4["run unit tests"]

    B@{ shape: lean-r}
    n2@{ shape: lean-r}
    n3@{ shape: rect}
    n4@{ shape: rect}
Tip

The hardest part here is usually the build processes, especially auto-copy of the built files to the local DNN and Oqtane installations, which needs a c:\projects\2sxc\2sxc-build.config.json configuration file.

It's explained in more details on Build Automation.

Once you are satisfied with your changes, you can submit a pull request to our GitHub repository for review.


Building Various Parts

You can decide to only work on the backend, or only on the frontend, or on both. The build processes are different for the backend and frontend. They all follow the same principles of building the code and copying the built files to the local DNN and Oqtane installations for testing.

The Backend requires two projects to be set up, according to instructions above. They are:

  1. c:\projects\2sxc\2sxc\ - the main 2sxc C# repo,
  2. c:\projects\2sxc\eav-server\ - the EAV C# repo, which is required by the 2sxc backend

To work with the backend, best continue to Contribute to 2sxc / EAV - Backend.

Contribute with Pull-Requests

After you have made changes, you cannot just push the code back to our repo, since you probably won't have write permissions on the main repo. The correct procedure then is to fork the main repo into yours, and push into your own online repo. Then start a pull request, which we can then process.

We use the git-flow convention, and you should familiarize yourself with this, to properly work with the branches.


History

  • Documented in 2023-09 v16.06
  • Updated docs 2026-02-12

Shortlink: https://go.2sxc.org/contribute-code