Code Submission Guidelines

In your repository, ensure that you have the following folders / files:

  1. README.md, which should include your target environment, additional build instructions, and contact details (name, email) of your team members.

  2. TeamXX, where XX is your team number. It will contain:

    1. CodeXX which includes:

      • A Visual Studio solution / Cross-platform solution with all your code integrated with Autotester.

      • Required configuration files (and its additional project files and directories)

    The solution (and all projects included) should build without errors in the Release configuration.

    1. TestsXX, which includes:

      • All your system test cases. Each test case should be a pair of files:

        • <TEST-DESCRIPTION>_source.txt, the SIMPLE program
        • <TEST-DESCRIPTION>_queries.txt, its corresponding query file
      • You can further organize the test cases with subfolders. Consider adding a short readme at the top folder to describe your test folder organization.

In your repository, remove these folders / files:

  1. .vs - Temporary files generated by Visual Studio

  2. .git - Git files generated by git, containing your git history

  3. Debug - Debug binaries generated by building and linking the project

  4. Release - Release binaries generated by building and linking the project

Tagging Commits

Tag the commit to your repository that you want us to grade as follows before the deadline:

  • Milestone 1: milestone1
  • Milestone 2: milestone2
  • Milestone 3: milestone3

To tag your commit, you will need to:

  1. Add, commit and push your changes to your team's repository before the deadline.

  2. Select the version you wish to submit by either:

    • Navigating using Github

      1. Go to your GitHub repository using your browser.

      2. Click on the commits on the bottom of the green Code button.

      3. Identify the commit with the that you want to use for submission, you can click on the copy icon to copy the <commit hash>

    • Navigating using command line

      1. Navigate your git history using git log and identify the commit with the that you want to use for submission.

      2. Change to the commit using git checkout <commit hash>

  3. Verify your source version using the browser using the link: https://github.com/nus-cs3203/<repository name>/tree/<commit hash> to view the repository for that particular version.

  4. Tag your commit by either:

    • Navigating using Github

      1. Create a new release in the right navigation bar, or go to https://github.com/nus-cs3203/<repository name>/releases/new directly.

      2. Use the <commit hash> instead of a branch to select the particular commit.

      3. Fill in all of the required information. You are not required to include your binary.

    • Navigating using command line (https://git-scm.com/book/en/v2/Git-Basics-Tagging)

      1. Tag the commit git tag <milestone tag> (e.g. git tag milestone2).

      2. Push the tag to remote repository git push origin <milestone tag> (e.g.git push origin milestone2).

Once the commit is tagged, your submission is complete.

Verifying Submission

Assuming you have set up your ssh-key authentication properly, you can verify the files that you have submitted by running the following command: git clone --depth 1 --branch milestone tag> [[email protected]](/cdn-cgi/l/email-protection):nus-cs3203/<repository name>.git.

We will also be using this command to download your submission.