Skip to content

Commit

Permalink
Merge pull request #13 from CMU-17313Q/f24-p1
Browse files Browse the repository at this point in the history
P1B released
  • Loading branch information
EduardoFF authored Aug 27, 2024
2 parents 5ab32e3 + b74ab85 commit 9af144a
Show file tree
Hide file tree
Showing 6 changed files with 21 additions and 21 deletions.
10 changes: 5 additions & 5 deletions docs/_data/schedule.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
homework:
deadline: "Due Sun Sep 1 @ 11:59pm"
link: "/projects/P1"
name: "Project 1"
name: "Project 1A: Build Checkpoint"
numDays: 5
lecture:
link: "assets/pdfs/01-Intro.pdf"
Expand Down Expand Up @@ -91,10 +91,10 @@

- date: Sun Sep 01
homework:
deadline: ''
link: ''
name: ''
numDays: 0
deadline: "Due Thu Sep 5 @ 11:59pm"
link: "/projects/P1"
name: "Project 1B: Starter Task"
numDays: 5
lecture:
link: ''
name: ''
Expand Down
2 changes: 1 addition & 1 deletion docs/projects/P1/1_checkpoint.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
## Getting Started

### Repository Setup
Fork the [class-specific repository](https://github.com/CMU-17313Q/NodeBB) into your personal GitHub account.
Fork the [class-specific repository](https://github.com/CMU-17313Q/NodeBB-f24-test) into your personal GitHub account.

!!! warning
Even though this project is based off of an active open source project, we have made significant changes to ensure its suitability for our class. As such, be sure you are forking off of **CMU-17313Q/NodeBB** and direct any questions to course staff. Do **not** contact the maintainers of NodeBB for assistance with your homework questions.
Expand Down
19 changes: 9 additions & 10 deletions docs/projects/P1/2_refactoring.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Project 1B: Starter Task
## Deliverables
Starter Task - 95 points - due Thursday, September 5th, 11:59PM
Starter Task - 95 points - due Thursday, September 5th, 11:59pm

- [GitHub Issue](#github-issue-20-pts) (20 pts)
- [Code Refactoring and Validation](#task-10-pts) (10 pts)
Expand All @@ -10,7 +10,7 @@ Starter Task - 95 points - due Thursday, September 5th, 11:59PM
## Onboarding
Now that you have explored the repository, the development team would like to give you an onboarding assignment.

The team has noticed an accumulation of warnings in [SonarCloud](https://sonarcloud.io/project/issues?issueStatuses=OPEN%2CCONFIRMED&id=CMU-17313Q_NodeBB-f24-test), a continuous code quality inspection tool. Your task is to remove SonarCloud warnings by refactoring code and validating that your change takes effect within the NodeBB codebase.
The team has noticed an accumulation of warnings in [SonarCloud](https://sonarcloud.io/project/issues?issueStatuses=OPEN%2CCONFIRMED&id=CMU-17313Q_NodeBB), a continuous code quality inspection tool. Your task is to remove SonarCloud warnings by refactoring code and validating that your change takes effect within the NodeBB codebase.

## Prerequisites
### Onboarding Materials
Expand All @@ -30,24 +30,24 @@ In this project and throughout the rest of this course, you will be expected to
- [x] Creating GitHub Pull Requests and using related features (linking to issues)
- [x] Creating GitHub Project Boards

If you are not familiar with any of these steps, you are **highly recommended** to first complete Recitation 2 - Git, GitHub, as it will cover the standards we are expecting in this class (which you will be graded upon). Refer to the [Resources & Documentation](/projects/P1/documentation/#git--github-documentation) section if needed.
If you are not familiar with any of these steps, you are **highly recommended** to first complete Recitation 1 - Git, GitHub, as it will cover the standards we are expecting in this class (which you will be graded upon). Refer to the [Resources & Documentation](/projects/P1/documentation/#git--github-documentation) section if needed.


### GitHub Issue (20 pts)
First, choose a single file that has SonarCloud warning(s) and open a github issue in the [class repository](https://github.com/CMU-17313Q/NodeBB-f24-test/issues) to declare which file and SonarCloud warning(s) that you will be working on.
First, choose a single file that has SonarCloud warning(s) and open a blank github issue in the [class repository](https://github.com/CMU-17313Q/NodeBB/issues) to declare which file and SonarCloud warning(s) that you will be working on.

For the task, the file must

- **Be a Javascript file.**
- **Be in the `src/` folder.**
- **Be in the `src/` folder.** (Be careful **NOT** to select a file in `public/src`)
- **Be a file that no one else in the class has picked and created an issue for.** We expect you to look through existing issues, if any, to avoid such duplication (thus, there is an incentive for you to start early!)

The SonarCloud warning must be categorized under the Adaptability section and contain the "Refactor" key word. The goal of this task is to refactor code in the NodeBB codebase based on the specifications of the SonarCloud warning.

Title the task appropriately, such as `Refactoring code in <file name>`, and mention the file name in the description. To prevent ambiguities between similarly-named files, be sure to use the **full file path** (`src/../xx.js`) in the title and description. Additionally, within the issue description, be sure to include an explanation of the SonarCloud warnings that you are working on.

??? info "Issue Guidelines"
**Issues titles** should provide a high-level overview of what the problem is (e.g. *"Navbar button UI bugs"*, *"Unexpected registration validation errors"*). Sometimes, issues are used to propose new features (e.g. *"Add CSV export feature"*).
In general, **Issues titles** should provide a high-level overview of the problem (e.g. *"Navbar button UI bugs"*, *"Unexpected registration validation errors"*). Sometimes, issues are used to propose new features (e.g., *"Add CSV export feature"*). For this assignment, the issue title has been predetermined. In the future, please use appropriate titles.

**Issue descriptions** should then elaborate on the title. For feature-level bugs, this may include providing information about how to reproduce the bug; for codebase-level changes, you can name specific files.

Expand All @@ -58,7 +58,7 @@ You should soon see another comment by the `github-actions` bot informing you th
![Bot Issue Assignment](/assets/images/hw/bot_assignment.png)

??? info "Why Bot Assignment?"
You might be curious as to why we are using a GitHub bot instead of directly assigning yourself to the issue. As you aren’t officially recognized as a collaborator of CMU-313/NodeBB, GitHub adds some restrictions to your permissions for security purposes, including not being able to assign yourself to an issue. Hence, we are using a bot to work around these restrictions. This is similar to how you would request issues on an Open Source project!
You might be curious as to why we are using a GitHub bot instead of directly assigning yourself to the issue. As you aren’t officially recognized as a collaborator of CMU-17313Q/NodeBB, GitHub adds some restrictions to your permissions for security purposes, including not being able to assign yourself to an issue. Hence, we are using a bot to work around these restrictions. This is similar to how you would request issues on an Open Source project!

For future projects, you will have full control over these GitHub features such as managing assignees, adding labels, creating milestones, and more.

Expand All @@ -73,9 +73,9 @@ Back in your own fork, create a feature branch and implement the changes needed
- Implement the changes and ensure that they do not introduce new warnings or issues.
- Run the linter and test suite to ensure your changes pass all checks.

You can check that your refactored code removes the warning by following the SonarCloud links automatically generated in the PR after the checks are run. You could also go to [SonarCloud's Pull Request list](https://sonarcloud.io/project/pull_requests_list?id=CMU-17313Q_NodeBB-f24-test) and search for your PR there.
You can check that your refactored code removes the warning by following the SonarCloud links automatically generated in the PR after the checks are run. You could also go to [SonarCloud's Pull Request list](https://sonarcloud.io/project/pull_requests_list?id=CMU-17313Q_NodeBB) and search for your PR there.

For the validation part of the task, you only need to validate the refactored code you have worked on for one SonarCloud warning in the file you chose. You should examine the code coverage report (either the local HTML report or the online one generated by [CoverAlls](https://coveralls.io/github/CMU-313/NodeBB) when you make a pull request) to ensure that the refactored code are included in the test coverage. If not, continue with the following steps:
For the validation part of the task, you only need to validate the refactored code you have worked on for one SonarCloud warning in the file you chose. You should examine the code coverage report (either the local HTML report or the online one generated by [CoverAlls](https://coveralls.io/github/CMU-17313Q/NodeBB) when you make a pull request) to ensure that the refactored code are included in the test coverage. If not, continue with the following steps:

- Locate the tests that are currently covering that file.
- Write tests that will add coverage to the refactored code you've written.
Expand Down Expand Up @@ -125,6 +125,5 @@ To receive full credit for this project, we expect:
- [ ] A meaningful title that includes the full path of the file
- [ ] A description body that describes the changes made and links the pull request to the issue
- [ ] Meaningful commit messages
- [ ] Appropriate usage of the eslint-ignore comment
- [ ] A green checkmark signaling that all checks have passed
- [ ] Answers to the Gradescope Written Assignment that demonstrate successful completion of the project and understanding of the benefits and limitations of software metrics in the context of NodeBB
2 changes: 1 addition & 1 deletion docs/projects/P1/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ This is an **individual assignment**. There are four (4) deliverables and two (2

A) [**Build Checkpoint**](/projects/P1/1_checkpoint) - 5 points - due Sunday, September 1st, 11:59pm

B) [**Starter Task** (TBD)]() - 95 points - due Thursday, September 5th, 11:59pm
B) [**Starter Task**](/projects/P1/2_refactoring) - 95 points - due Thursday, September 5th, 11:59pm

- GitHub Issue (20 pts)
- Code Refactoring and Validation (10 pts)
Expand Down
6 changes: 3 additions & 3 deletions docs/projects/P1/installation/ubuntu.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,11 @@ Then, update the apt packages and install nodejs:
Verify installation of Node.js and npm. You should have version LTS of Node.js installed, and version 10 of npm installed:

```console
% node -v # this should output "20.17.0" or similar
% npm -v # this should output "10.8.2" or similar
% node -v # ideally v18.x or v20.x
% npm -v # ideally 9.x or above
```

There might be issues later if you are using an older Node version (<20).
There might be issues if you are using an older Node version (<18). We recommend using the LTS version of Node (20.17.0).


### Installing Redis
Expand Down
3 changes: 2 additions & 1 deletion mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,8 @@ nav:
#projects/index.md # Dummy home page; remove once we start adding homework below
- "Project 1: Hello, NodeBB!":
- projects/P1/index.md
- Project 1A Build Checkpoint: projects/P1/1_checkpoint.md
- 1A Build Checkpoint: projects/P1/1_checkpoint.md
- 1B Starter Task: projects/P1/2_refactoring.md
- Github Exercise: projects/P1/github.md
- NodeBB Installation:
- Mac: projects/P1/installation/mac.md
Expand Down

0 comments on commit 9af144a

Please sign in to comment.