This is a project template for a greenfield Java project. It’s named after the Java mascot Duke. Given below are instructions on how to use it.

Setting up in Intellij

Prerequisites: JDK 11 (use the exact version), update Intellij to the most recent version.

  1. Configure Intellij for JDK 11, as described here.
  2. Import the project as a Gradle project, as described here.
  3. Verify the set up: After the importing is complete, locate the src/main/java/seedu/duke/Duke.java file, right-click it, and choose Run Duke.main(). If the setup is correct, you should see something like the below:
    > Task :compileJava
    > Task :processResources NO-SOURCE
    > Task :classes
       
    > Task :Duke.main()
    Hello! Type 'start' to start the CLIrcuit Assistant
    

    Type start and press enter to let the execution proceed to the end.

Build automation using Gradle

  • This project uses Gradle for build automation and dependency management. It includes a basic build script as well (i.e. the build.gradle file).
  • If you are new to Gradle, refer to the Gradle Tutorial at se-education.org/guides.

Testing

I/O redirection tests

  • To run I/O redirection tests (aka Text UI tests), navigate to the text-ui-test and run the runtest(.bat/.sh) script.

JUnit tests

Checkstyle

CI using GitHub Actions

The project uses GitHub actions for CI. When you push a commit to this repo or PR against it, GitHub actions will run automatically to build and verify the code as updated by the commit/PR.

Documentation

/docs folder contains a skeleton version of the project documentation.

Steps for publishing documentation to the public:

  1. If you are using this project template for an individual project, go your fork on GitHub.
    If you are using this project template for a team project, go to the team fork on GitHub.
  2. Click on the settings tab.
  3. Scroll down to the GitHub Pages section.
  4. Set the source as master branch /docs folder.
  5. Optionally, use the choose a theme button to choose a theme for your documentation.