Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MarkBind Template for Software Project Documentation #2400

Merged
merged 50 commits into from
Mar 30, 2024
Merged
Show file tree
Hide file tree
Changes from 7 commits
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
22853a6
Update templates and add ab3 template
KevinEyo1 Jan 27, 2024
e76fb5f
Remove ab3 template folder
KevinEyo1 Jan 27, 2024
e3c1138
Update files
KevinEyo1 Jan 27, 2024
ef96316
Remove unneeded changes
KevinEyo1 Jan 28, 2024
5444909
a
KevinEyo1 Jan 29, 2024
a4a4d72
Revert test changes
KevinEyo1 Jan 29, 2024
ea3aca7
Merge branch 'MarkBind:master' into master
KevinEyo1 Feb 4, 2024
a7f1a81
Replace ab3 with project
KevinEyo1 Feb 4, 2024
d926774
Remove ab3 package
KevinEyo1 Feb 4, 2024
c21eefb
Add project template folder
KevinEyo1 Feb 4, 2024
c0f79a2
Merge branch 'MarkBind:master' into master
KevinEyo1 Feb 9, 2024
c0207fd
Update project template
KevinEyo1 Feb 11, 2024
b6ed49a
Merge branch 'MarkBind:master' into 2384-markbind-template-project
KevinEyo1 Feb 11, 2024
e40a454
Update template file
KevinEyo1 Feb 11, 2024
8fd7b50
Remove unused gemfile.lock
KevinEyo1 Feb 11, 2024
c55e5b9
Merge branch '2384-markbind-template-project' of https://github.com/K…
KevinEyo1 Feb 11, 2024
5ada339
Update contributor list
KevinEyo1 Feb 11, 2024
610e546
Fix indentations
KevinEyo1 Feb 11, 2024
ab51281
Add expected template files for testing
KevinEyo1 Feb 12, 2024
9721e3e
Remove contributor part
KevinEyo1 Feb 16, 2024
47ea93d
Remove traces of ab3
KevinEyo1 Feb 18, 2024
45b8846
Merge branch 'MarkBind:master' into master
KevinEyo1 Feb 18, 2024
a3e5ae2
Merge branch 'MarkBind:master' into 2384-markbind-template-project
KevinEyo1 Feb 18, 2024
fa5c24d
Update tests
KevinEyo1 Feb 18, 2024
21628f7
Merge branch 'MarkBind:master' into master
KevinEyo1 Feb 28, 2024
3c704a8
Merge branch 'MarkBind:master' into 2384-markbind-template-project
KevinEyo1 Feb 28, 2024
b0b9deb
Improve template based on reviews
KevinEyo1 Feb 28, 2024
6c9c3ad
Merge branch '2384-markbind-template-project' of https://github.com/K…
KevinEyo1 Feb 28, 2024
e39a176
Update expected tests
KevinEyo1 Feb 28, 2024
b606951
Merge branch 'master' into 2384-markbind-template-project
KevinEyo1 Mar 7, 2024
0f10968
Update project template
KevinEyo1 Mar 7, 2024
7624b37
Merge branch 'MarkBind:master' into 2384-markbind-template-project
KevinEyo1 Mar 12, 2024
da2cdd8
Update project template docs
KevinEyo1 Mar 12, 2024
21fa90c
Merge branch 'master' of https://github.com/KevinEyo1/markbind
KevinEyo1 Mar 15, 2024
2bcf610
Merge branch 'MarkBind:master' into 2384-markbind-template-project
KevinEyo1 Mar 18, 2024
0ebb7cd
Merge branch 'MarkBind:master' into master
KevinEyo1 Mar 18, 2024
8c88572
Merge branch 'master' into 2384-markbind-template-project
KevinEyo1 Mar 18, 2024
6c17ad7
Merge branch '2384-markbind-template-project' of https://github.com/K…
KevinEyo1 Mar 18, 2024
a120fa3
Fix nits
KevinEyo1 Mar 19, 2024
f798b1d
Merge branch 'master' of https://github.com/MarkBind/markbind
KevinEyo1 Mar 20, 2024
48399bd
Merge branch 'master' of https://github.com/MarkBind/markbind
KevinEyo1 Mar 20, 2024
050620c
Merge branch 'master' into 2384-markbind-template-project
KevinEyo1 Mar 22, 2024
701183b
Merge branch 'master' of https://github.com/MarkBind/markbind
KevinEyo1 Mar 25, 2024
7d8db65
Merge branch 'master' into 2384-markbind-template-project
KevinEyo1 Mar 25, 2024
4a83981
Merge branch 'master' of https://github.com/MarkBind/markbind
KevinEyo1 Mar 29, 2024
7e7cfb7
Merge branch 'master' of https://github.com/MarkBind/markbind
KevinEyo1 Mar 29, 2024
c0d056e
Merge branch 'master' into 2384-markbind-template-project
KevinEyo1 Mar 29, 2024
2da3d63
Merge branch 'master' into 2384-markbind-template-project
KevinEyo1 Mar 30, 2024
7feb0ed
Merge changes
KevinEyo1 Mar 30, 2024
8e45510
Merge branch '2384-markbind-template-project' of https://github.com/K…
KevinEyo1 Mar 30, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion docs/userGuide/templates.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,8 @@ markbind init --template minimal
Name | Template key | Description | Quick Deploy
---- | ------- | ----------- | ------------
Default | `default` | Default template if `--template` is unspecified. Includes core features such as site and page navigation for a more convenient quick start. | <a href="https://app.netlify.com/start/deploy?repository=https://github.com/MarkBind/init-typical-netlify"><img src="https://www.netlify.com/img/deploy/button.svg" /></a>
Minimal | `minimal` | Minimalistic template that gets you started quickly. | <a href="https://app.netlify.com/start/deploy?repository=https://github.com/MarkBind/init-minimal-netlify"><img src="https://www.netlify.com/img/deploy/button.svg" /></a>
Minimal | `minimal` | Minimalistic template that gets you started quickly. | <a href="https://app.netlify.com/start/deploy?repository=https://github.com/MarkBind/init-minimal-netlify"><img src="https://www.netlify.com/img/deploy/button.svg" /></a>
Project | `project` | Project documentation template as a starting point for project developers, which includes a template user guide and developer guide. | <a href="https://markbind-template-project.netlify.app/"><img src="https://www.netlify.com/img/deploy/button.svg" /></a>
EltonGohJH marked this conversation as resolved.
Show resolved Hide resolved

{% from "njk/common.njk" import previous_next %}
{{ previous_next('addingNavigationButtons', '') }}
61 changes: 61 additions & 0 deletions packages/core/template/project/AboutUs.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
---
layout: default.md
title: "About Us"
---

# About Us
kaixin-hc marked this conversation as resolved.
Show resolved Hide resolved

We are a team based in the [School of Computing, National University of Singapore](http://www.comp.nus.edu.sg).
kaixin-hc marked this conversation as resolved.
Show resolved Hide resolved

You can reach us at the email `[email protected]`

## Project team

### John Doe

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good place to leave a tip that inside the code this format is being propogated by including the variable

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@KevinEyo1 Can you make this tip more obvious? With it being seamless, I worry users might accidentally leave it in inside their page

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good point, I removed seamless for all boxes pertaining to the user itself.

<img src="images/johndoe.png" width="200px">

[[homepage](http://www.comp.nus.edu.sg/~damithch)]
[[github](https://github.com/johndoe)]
[[portfolio](team/johndoe.md)]
kaixin-hc marked this conversation as resolved.
Show resolved Hide resolved

* Role: Project Advisor

### Jane Doe

<img src="images/johndoe.png" width="200px">

[[github](http://github.com/johndoe)]
[[portfolio](team/johndoe.md)]

* Role: Team Lead
* Responsibilities: UI

### Johnny Doe

<img src="images/johndoe.png" width="200px">

[[github](http://github.com/johndoe)] [[portfolio](team/johndoe.md)]

* Role: Developer
* Responsibilities: Data

### Jean Doe

<img src="images/johndoe.png" width="200px">

[[github](http://github.com/johndoe)]
[[portfolio](team/johndoe.md)]

* Role: Developer
* Responsibilities: Dev Ops + Threading

### James Doe

<img src="images/johndoe.png" width="200px">

[[github](http://github.com/johndoe)]
[[portfolio](team/johndoe.md)]

* Role: Developer
* Responsibilities: UI
12 changes: 12 additions & 0 deletions packages/core/template/project/Configuration.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
layout: default.md
title: "Configuration guide"
---

# Configuration guide

<box type="tip">
This page can be used to understand how to configure the application such as descriptions of the config file and how to change the configuration.
</box>

Certain properties of the application can be controlled (e.g user preferences file location, logging level) through the configuration file (default: `config.json`).
86 changes: 86 additions & 0 deletions packages/core/template/project/DevOps.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
---
layout: default.md
title: "DevOps guide"
pageNav: 3
---

# DevOps guide

<!-- * Table of Contents -->
<page-nav-print />

<!-- -------------------------------------------------------------------------------------------------------------------- -->

<box type="tip">
This page can be used to understand the DevOps practices adopted by the project.
</box>

## Build automation

This project uses Gradle for **build automation and dependency management**. **You are recommended to read [this Gradle Tutorial from the se-edu/guides](https://se-education.org/guides/tutorials/gradle.html)**.


Given below are how to use Gradle for some important project tasks.


* **`clean`**: Deletes the files created during the previous build tasks (e.g. files in the `build` folder).<br>
kaixin-hc marked this conversation as resolved.
Show resolved Hide resolved
e.g. `./gradlew clean`

* **`shadowJar`**: Uses the ShadowJar plugin to creat a fat JAR file in the `build/lib` folder, *if the current file is outdated*.<br>
e.g. `./gradlew shadowJar`.

* **`run`**: Builds and runs the application.<br>
**`runShadow`**: Builds the application as a fat JAR, and then runs it.

* **`checkstyleMain`**: Runs the code style check for the main code base.<br>
**`checkstyleTest`**: Runs the code style check for the test code base.

* **`test`**: Runs all tests.
* `./gradlew test` — Runs all tests
* `./gradlew clean test` — Cleans the project and runs tests

--------------------------------------------------------------------------------------------------------------------

## Continuous integration (CI)

This project uses GitHub Actions for CI. The project comes with the necessary GitHub Actions configurations files (in the `.github/workflows` folder). No further setting up required.

### Code coverage

As part of CI, this project uses Codecov to generate coverage reports. When CI runs, it will generate code coverage data (based on the tests run by CI) and upload that data to the CodeCov website, which in turn can provide you more info about the coverage of your tests.

However, because Codecov is known to run into intermittent problems (e.g., report upload fails) due to issues on the Codecov service side, the CI is configured to pass even if the Codecov task failed. Therefore, developers are advised to check the code coverage levels periodically and take corrective actions if the coverage level falls below desired levels.

To enable Codecov for forks of this project, follow the steps given in [this se-edu guide](https://se-education.org/guides/tutorials/codecov.html).

### Repository-wide checks

In addition to running Gradle checks, CI includes some repository-wide checks. Unlike the Gradle checks which only cover files used in the build process, these repository-wide checks cover all files in the repository. They check for repository rules which are hard to enforce on development machines such as line ending requirements.

These checks are implemented as POSIX shell scripts, and thus can only be run on POSIX-compliant operating systems such as macOS and Linux. To run all checks locally on these operating systems, execute the following in the repository root directory:

`./config/travis/run-checks.sh`

Any warnings or errors will be printed out to the console.

**If adding new checks:**

* Checks are implemented as executable `check-*` scripts within the `.github` directory. The `run-checks.sh` script will automatically pick up and run files named as such. That is, you can add more such files if you need and the CI will do the rest.

* Check scripts should print out errors in the format `SEVERITY:FILENAME:LINE: MESSAGE`
* SEVERITY is either ERROR or WARN.
* FILENAME is the path to the file relative to the current directory.
* LINE is the line of the file where the error occurred and MESSAGE is the message explaining the error.

* Check scripts must exit with a non-zero exit code if any errors occur.

--------------------------------------------------------------------------------------------------------------------

## Making a release

Here are the steps to create a new release.

1. Update the version number in [`MainApp.java`](https://github.com/se-edu/addressbook-level3/tree/master/src/main/java/seedu/address/MainApp.java).
1. Generate a fat JAR file using Gradle (i.e., `gradlew shadowJar`).
1. Tag the repo with the version number. e.g. `v0.1`
1. [Create a new release using GitHub](https://help.github.com/articles/creating-releases/). Upload the JAR file you created.
Loading
Loading