Setting up and getting started
Setting up the project in your computer

First, fork this repo, and clone the fork into your computer.
If you plan to use Intellij IDEA (highly recommended):
- Configure the JDK: Follow the guide [se-edu/guides] IDEA: Configuring the JDK to ensure Intellij is configured to use JDK 17.
-
Import the project as a Gradle project: Follow the guide [se-edu/guides] IDEA: Importing a Gradle
project to import the project into
IDEA.
Note: Importing a Gradle project is slightly different from importing a normal Java project.
-
Verify the setup:
- Run the
spleetwaise.commons.Main
and try a few commands. - Run the tests to ensure they all pass.
- Run the
Before writing code
-
Configure the coding style
If using IDEA, follow the guide [se-edu/guides] IDEA: Configuring the code style to set up IDEA’s coding style to match ours.
Tip: Optionally, you can follow the guide [se-edu/guides] Using Checkstyle to find how to use the CheckStyle within IDEA e.g., to report problems as you write code.
-
Git Workflow This project uses the Feature Branch Flow with rules set to protect the
master
branch. PRs are mandatory and at least 1 member requires review.Feature branches are branches being used to develop an individual story. They should be named “ {issue-number}-{summary}” where “{issue-number}” is the issue number corresponding to the feature you are implementing and “{summary}” is a brief summary of the feature
formatted-like-this
. -
Set up CI
This project comes with a GitHub Actions config files (in
.github/workflows
folder). When GitHub detects those files, it will run the CI for your project automatically at each push to themaster
branch or to any PR. No set up required. -
Learn the design
When you are ready to start coding, we recommend that you get some sense of the overall design by reading about Spleetwaise’s architecture.
-
Do the tutorials These tutorials will help you get acquainted with the codebase.