Skip to content

Conversation

@rushi-018
Copy link

@rushi-018 rushi-018 commented Aug 23, 2025

Description

This PR adds a "Quick Start for Contributors" section to the README and clarifies the setup instructions for new contributors. The goal is to make it easier for first-time contributors to get started with the project and understand the steps required to set up the development environment.


How Has This Been Tested?

Verified that the new instructions are clear and accurate.
Followed the updated steps to ensure they work as described.


Type of Change

Bug fix
New feature
Code style update
Breaking change
Documentation update

Summary by CodeRabbit

  • Documentation

    • Added a "Quick Start for Contributors", expanded CONTRIBUTING guidance (branch/commit/PR workflows, sign-offs), and reorganized the README into a dependency-first setup with Node guidance, install/start steps, env configuration, Docker Compose option, updated repo badges and contributor link. Expanded testing docs with runnable commands, config notes, linked specs, and troubleshooting.
  • Chores

    • Pinned Node version for development and added project setup scripts; added a cross-platform test helper dev dependency.

@netlify
Copy link

netlify bot commented Aug 23, 2025

Deploy Preview for github-spy ready!

Name Link
🔨 Latest commit 26f2df0
🔍 Latest deploy log https://app.netlify.com/projects/github-spy/deploys/68a9b10cb5d9e100087efe46
😎 Deploy Preview https://deploy-preview-198--github-spy.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Aug 23, 2025

Walkthrough

README and CONTRIBUTING.md introduce a contributor Quick Start and a dependency-first setup flow (nvm guidance, root+backend install, backend .env, start steps, Docker notes, expanded Jasmine test instructions). Added .nvmrc (Node 18.20.3) and a root setup npm script; cross-env devDependency added.

Changes

Cohort / File(s) Summary of Changes
Docs
README.md, CONTRIBUTING.md
Added "Quick Start for Contributors"; restructured setup to install dependencies first (root + backend), added nvm/Node guidance and .nvmrc reference, explicit backend .env steps (MONGO_URI, SESSION_SECRET, PORT), start steps for backend and frontend, local MongoDB and Docker Compose notes, and expanded Jasmine testing docs (install/run/test DB commands, test file links, Jasmine config, troubleshooting). CONTRIBUTING.md adds branching workflow, topic branches, commit conventions, optional DCO sign-off guidance, and detailed first-time contributor steps.
Config / Project scripts
.nvmrc, package.json
Added .nvmrc with 18.20.3. Added engines.node: "18.20.x" and scripts: setup, setup:ci, backend:install to package.json. Added cross-env to devDependencies (^7.0.3).

Sequence Diagram(s)

sequenceDiagram
    autonumber
    participant Dev as Contributor
    participant GH as Git Host
    participant Local as Local Repo

    Dev->>GH: Fork repository
    Dev->>Local: Clone fork
    Dev->>Local: Add upstream, create feature branch
    Dev->>Local: Edit files, commit, rebase as needed
    Dev->>GH: Push branch
    Dev->>GH: Open Pull Request
    Note over Dev,GH: Quick Start contributor flow (README & CONTRIBUTING)
Loading
sequenceDiagram
    autonumber
    participant Dev as Developer
    participant Root as Project Root
    participant BE as backend/
    participant FE as Frontend Dev Server
    participant DB as MongoDB (local)

    Dev->>Root: Read README, ensure Node v18.20.3 (.nvmrc)
    Dev->>Root: npm run setup
    Note right of Root: runs `npm install` + `npm --prefix backend install`
    Dev->>DB: Ensure MongoDB running (local or Docker)
    Dev->>BE: npm start (backend) — uses backend/.env (MONGO_URI, SESSION_SECRET, PORT)
    Dev->>FE: npm run dev (frontend)
    Dev->>Dev: Open app in browser
    Note over Root,BE: Jasmine tests use test DB and cross-env in run commands
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Suggested labels

level1

Poem

I'm a rabbit with a README bright,
I hop through setup late at night.
Node pinned snug, deps all aligned,
Tests listed, envs defined.
Merge my nibble — I'll dance in light. 🥕

Tip

🔌 Remote MCP (Model Context Protocol) integration is now available!

Pro plan users can now connect to remote MCP servers from the Integrations page. Connect with popular remote MCPs such as Notion and Linear to add more context to your reviews and chats.

✨ Finishing Touches
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

CodeRabbit Commands (Invoked using PR/Issue comments)

Type @coderabbitai help to get the list of available commands.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Status, Documentation and Community

  • Visit our Status Page to check the current availability of CodeRabbit.
  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

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

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (2)
README.md (2)

111-116: Avoid telling contributors to install runtime deps as devDependencies

express-session, passport, passport-local, and bcryptjs are runtime deps of the backend app, not Jasmine itself. Installing them as devDeps here is misleading and risks drift from package.json. Recommend relying on the repository’s existing dependencies instead.

Replace the block with:

-Install all required dependencies:
-```sh
-npm install
-npm install --save-dev jasmine @types/jasmine supertest express-session passport passport-local bcryptjs
-```
+Install dependencies (root and backend):
+```sh
+npm install
+cd backend && npm install
+```
+Jasmine is already configured in the repo; if not installed, add it as a dev dependency:
+```sh
+npm install --save-dev jasmine
+```

118-126: Update Jasmine invocation in README to use the .mjs config

The repository currently only includes a spec/support/jasmine.mjs config (no jasmine.json), so the “Run Jasmine tests” step in the README must explicitly point to that file:

• File: README.md
• Location: Lines 118–126

- 2. **Run Jasmine tests:**
-    ```sh
-    npx jasmine
-    ```
+ 2. **Run Jasmine tests with the MJS config:**
+    ```sh
+    npx jasmine --config=spec/support/jasmine.mjs
+    ```
🧹 Nitpick comments (6)
README.md (6)

4-27: Nice “Quick Start” — add upstream remote/sync so contributors can keep forks current

Adding upstream helps avoid diverged branches and messy PRs. Consider inserting a brief “Add upstream and sync” step after cloning.

Apply this diff to add the step:

 2
 <!-- top -->
 3
 
 ## 🚩 Quick Start for Contributors
@@
 2. **Clone** your fork:
@@
   cd github_tracker

+3. Add the upstream remote (original repository) and sync:

-3. Create a new branch for your change:
+4. Create a new branch for your change (if you didn’t in the previous step):

git checkout -b my-first-contribution

-4. Make your changes (e.g., edit README.md to improve instructions).
-5. Commit and push:
+5. Make your changes (e.g., edit README.md to improve instructions).
+6. Commit and push:
@@
-6. Open a Pull Request from your branch to the main repository.
+7. Open a Pull Request from your branch to the main repository.


---

`21-23`: **Use Conventional Commits in the example commit message**

Minor polish: prefer a scoped Conventional Commit, e.g., “docs(readme): improve setup instructions,” which aligns with conventional-changelog/semantic-release setups.


```diff
-  git commit -m "docs: improve README instructions"
+  git commit -m "docs(readme): improve setup instructions"

95-97: Fix markdownlint MD034 (bare URL) and clarify ports

Wrap the URL to avoid lint errors and optionally call out typical frontend/backend ports.

-Visit the URL shown in the terminal (usually http://localhost:5173).
+Visit the URL shown in the terminal (usually <http://localhost:5173>).
+If the backend runs locally, it typically listens on <http://localhost:3000> unless overridden.

98-99: Add a quick-start option for MongoDB via Docker (optional)

A Docker one-liner helps contributors who don’t have MongoDB installed locally.

 > **Note:** Make sure MongoDB is running locally (default: `mongodb://127.0.0.1:27017`).
+
+> Optional: Run MongoDB with Docker
+> ```bash
+> docker run --name github-tracker-mongo -p 27017:27017 -d mongo:6
+> ```

107-110: Call out the test database URI explicitly

Your specs connect to mongodb://127.0.0.1:27017/github_tracker_test. Make this explicit so local runs don’t hit the dev DB by mistake.

 ### Prerequisites
 - **Node.js** and **npm** installed
 - **MongoDB** running locally (default: `mongodb://127.0.0.1:27017`)
 
 ### Running the Tests
 1. **Start MongoDB** (if not already running):
@@
 2. **Run Jasmine tests:**
   ```sh
-  npx jasmine
+  # tests use the test database (e.g., github_tracker_test). Ensure your env/config points to it.
+  # Example (if your app reads MONGODB_URI):
+  MONGODB_URI="mongodb://127.0.0.1:27017/github_tracker_test" npx jasmine


Also applies to: 118-126

---

`71-81`: **Add a Node.js version declaration and nvm usage tip**  

We ran the provided script and confirmed that neither `package.json` (root or `backend/`) defines an `engines` field, nor is there a `.nvmrc` or `.node-version` file in the repo. To help new contributors avoid “wrong Node version” errors, we should:

• Add a Node.js version declaration  
  – Either add an `"engines": { "node": ">=16 <19" }` block to your root (and/or backend) `package.json`, or create a `.nvmrc` file at the project root with your chosen version (e.g. `16.20.0`).  
• Update the README snippet (lines 71–81) to reference that version and show how to switch with nvm.

Proposed diff for `README.md`:

```diff
 ### 1. Install dependencies for both frontend and backend

 In the project root:
 ```bash
 npm install

Then in the backend folder:

cd backend
npm install

+> Tip: Use the project’s Node.js version. If you’ve set it in .nvmrc or package.json#engines, nvm will pick it up.
+>
+> With nvm:
+> bash +> nvm use # switch to the version in .nvmrc (or install it if needed) +>


</blockquote></details>

</blockquote></details>

<details>
<summary>📜 Review details</summary>

**Configuration used**: CodeRabbit UI

**Review profile**: CHILL

**Plan**: Pro

**💡 Knowledge Base configuration:**

- MCP integration is disabled by default for public repositories
- Jira integration is disabled by default for public repositories
- Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

<details>
<summary>📥 Commits</summary>

Reviewing files that changed from the base of the PR and between cda5a3aa45f73f7d7d582dbf18c9a210f30e1de7 and b9e6ef38b7361d5facccb9b1d8d5f57bebe767bf.

</details>

<details>
<summary>📒 Files selected for processing (1)</summary>

* `README.md` (2 hunks)

</details>

<details>
<summary>🧰 Additional context used</summary>

<details>
<summary>🪛 LanguageTool</summary>

<details>
<summary>README.md</summary>

[grammar] ~4-~4: There might be a mistake here.
Context: ... -->  ## 🚩 Quick Start for Contributors  Want to contribute? Here’s how to get sta...

(QB_NEW_EN)

</details>

</details>
<details>
<summary>🪛 markdownlint-cli2 (0.17.2)</summary>

<details>
<summary>README.md</summary>

96-96: Bare URL used

(MD034, no-bare-urls)

</details>

</details>

</details>

</details>

<details>
<summary>🔇 Additional comments (3)</summary><blockquote>

<details>
<summary>README.md (3)</summary><blockquote>

`132-139`: **Config snippet looks good; optionally show full file path/name**

No action required; snippet is clear. If you keep using `.mjs`, ensure `type: "module"` or the explicit `--config` flag as noted above.

---

`89-93`: **Dev script verified – no changes needed**  
The root-level `package.json` includes a `dev` script (`"dev": "vite --host"`), so the `npm run dev` command in the README is correct as written.

---

`83-87`: **npm start script confirmed**

The `backend/package.json` defines:

- `"start": "node server.js"`

so the README’s `npm start` command is correct as written. No changes are needed to that section.  

Optional: if your backend requires any environment variables (e.g. a database URL, API keys), consider listing them just above the start instructions for clarity. Let me know if you’d like me to draft that documentation.

</blockquote></details>

</blockquote></details>

<!-- This is an auto-generated comment by CodeRabbit for review status -->

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 3

🧹 Nitpick comments (5)
README.md (5)

131-139: Standardize code fence language and avoid re-stating earlier steps

Minor polish: use bash consistently for shell blocks and avoid repeating the earlier install steps unless needed for a self-contained section.

-Install dependencies (root and backend):
-```sh
-npm install
-cd backend && npm install
-```
-Jasmine is already configured in the repo; if not installed locally, add it as a dev dependency:
-```sh
-npm install --save-dev jasmine
-```
+Install dependencies (root and backend) if you haven’t already:
+```bash
+npm install
+cd backend && npm install
+```
+Jasmine is already configured in the repo; if missing locally:
+```bash
+npm install --save-dev jasmine
+```

121-125: Nice coverage overview; consider linking directly to the spec files

Good list. For fast onboarding, link each bullet to the actual test file mentioned below, or collapse both lists into one with links.

Also applies to: 171-175


34-34: Ensure CONTRIBUTING.md covers all contributor guidelines

CONTRIBUTING.md is present at the repo root, but it currently only includes the Code of Conduct. To keep your Quick Start and contributor experience in sync, please extend CONTRIBUTING.md to include:

• The branching workflow (e.g. fork the repo, add an upstream remote, branch from upstream/main)
• Commit conventions (e.g. Conventional Commits, any commitlint setup, required prefixes)
• DCO or sign-off requirements (if you enforce Developer Certificate of Origin)
• A link back to your Quick Start or README for consistency

Once these sections are added, contributors will have a single, authoritative source for both setup and process.


78-95: Add a root-level “setup” npm script for a one-liner bootstrap

We’ve verified that there is currently no “setup” script in the root package.json. Introducing one will streamline the install process for contributors who prefer a single command.

• In package.json (repo root), under "scripts", add:

  "scripts": {
    "dev": "vite --host",
+   "setup": "npm install && cd backend && npm install",
    // …
  }

• In README.md, update the install step to mention the helper script:

 ### 1. Install dependencies for both frontend and backend

 In the project root:
 ```bash
 npm install

Then in the backend folder:

cd backend
npm install

+Or, to run both in one go:
+bash +npm run setup # installs root and backend dependencies +

Tip: Use the project’s Node.js version. If you’ve set it in .nvmrc or package.json#engines, nvm will pick it up.

With nvm:

nvm use
This change is purely additive and non-breaking, but can improve onboarding speed.

---

`112-118`: **Persist MongoDB data in Docker and clarify default DB name**

The current Docker command starts MongoDB in an ephemeral container—any data is lost when the container is removed. We can mount a named volume so that your database files survive container restarts/removals, and also show how to point the app at the correct database name via `MONGO_URI` (the app reads this variable by default; see `backend/.env.sample`).


```diff
 > Optional: Run MongoDB with Docker
 ```bash
-docker run --name github-tracker-mongo -p 27017:27017 -d mongo:6
+docker volume create github-tracker-mongo
+docker run --name github-tracker-mongo \
+  -p 27017:27017 \
+  -v github-tracker-mongo:/data/db \
+  -d mongo:6
+
+# Then, in another shell, point your app at this volume-backed database:
+# export MONGO_URI="mongodb://127.0.0.1:27017/githubTracker"
This mounts a Docker volume at MongoDB’s data directory and hints at the default database name (`githubTracker`) defined in `backend/.env.sample`.

</blockquote></details>

</blockquote></details>

<details>
<summary>📜 Review details</summary>

**Configuration used**: CodeRabbit UI

**Review profile**: CHILL

**Plan**: Pro

**💡 Knowledge Base configuration:**

- MCP integration is disabled by default for public repositories
- Jira integration is disabled by default for public repositories
- Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

<details>
<summary>📥 Commits</summary>

Reviewing files that changed from the base of the PR and between b9e6ef38b7361d5facccb9b1d8d5f57bebe767bf and 72ec866e38c346824db1b938a18e5a9179668575.

</details>

<details>
<summary>📒 Files selected for processing (1)</summary>

* `README.md` (3 hunks)

</details>

<details>
<summary>🧰 Additional context used</summary>

<details>
<summary>🪛 LanguageTool</summary>

<details>
<summary>README.md</summary>

[grammar] ~4-~4: There might be a mistake here.
Context: ... -->  ## 🚩 Quick Start for Contributors  Want to contribute? Here’s how to get sta...

(QB_NEW_EN)

---

[grammar] ~109-~109: There might be a mistake here.
Context: ...minal (usually <http://localhost:5173>). If the backend runs locally, it typicall...

(QB_NEW_EN)

---

[grammar] ~141-~141: There might be a mistake here.
Context: ...e-dev jasmine ```  ### Running the Tests 1. **Start MongoDB** (if not already running)...

(QB_NEW_EN)

</details>

</details>

</details>

</details>

<details>
<summary>🔇 Additional comments (1)</summary><blockquote>

<details>
<summary>README.md (1)</summary><blockquote>

`76-111`: **Docs overall: strong improvement to onboarding flow**

The dependency-first setup and explicit backend→frontend start order are clear and friendly for first-timers. The Mongo note and default URLs are useful.

</blockquote></details>

</blockquote></details>

<!-- This is an auto-generated comment by CodeRabbit for review status -->

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🧹 Nitpick comments (7)
package.json (1)

11-11: Make setup script more robust and cross-shell without cd

Using cd inside npm scripts can be brittle (PATH/stateful) and a bit less portable. Prefer npm’s -C/--prefix to target the backend directory directly. Consider npm ci for reproducible installs in CI.

Apply one of these:

-  "setup": "npm install && cd backend && npm install",
+  "setup": "npm install && npm --prefix backend install"

or with reproducible installs (great for CI/local parity):

-  "setup": "npm install && cd backend && npm install",
+  "setup": "npm ci && npm -C backend ci"
CONTRIBUTING.md (3)

41-60: Branching workflow reads well; add explicit commit example to Step 4

Step 4 says “Commit your work … and push,” but only shows git push. A tiny snippet makes it foolproof for first-timers.

 4. Commit your work to your topic branch and push to your fork:
 ```bash
+ git add .
+ git commit -m "feat: <short message>"
  git push -u origin <topic-branch>

---

`71-77`: **DCO instructions are correct; optionally mention `--signoff` alias**

As a nicety, you can add `--signoff` long form to help discoverability.



```diff
-git commit -s -m "docs(readme): clarify install steps"
+git commit -s --signoff -m "docs(readme): clarify install steps"

79-82: Link back is helpful; consider deep-linking to the Quick Start anchor

Make it a one-click jump.

-For first-time setup and commands, see the Quick Start in `README.md`.
+For first-time setup and commands, see the [Quick Start](README.md#-quick-start-for-contributors).
README.md (3)

72-95: Avoid duplication; reference the new setup script here

Since you added npm run setup, surface it as the primary path and keep manual steps as fallback.

-### 1. Install dependencies for both frontend and backend
-
-In the project root:
-```bash
-npm install
-```
-Then in the backend folder:
-```bash
-cd backend
-npm install
-```
-Or, to run both in one go:
-```bash
-npm run setup
-```
+### 1. Install dependencies for both frontend and backend
+
+Preferred (one command):
+```bash
+npm run setup
+```
+Fallback (manual):
+```bash
+npm install
+cd backend && npm install
+```

126-139: Mention existing Docker Compose scripts as an alternative

You already ship docker:dev/docker:prod scripts. Advertise them here to reduce manual steps.

 > Optional: Run MongoDB with Docker
@@
 > ```
+
+Alternatively, to start the full stack with Compose:
+
+```bash
+# Dev profile (hot reload etc.)
+npm run docker:dev
+
+# Production-like profile
+npm run docker:prod
+```

152-160: Reuse the setup script in the Testing “Installation” section

Avoids repeating per-folder installs.

-Install dependencies (root and backend) if you haven’t already:
-```bash
-npm install
-cd backend && npm install
-```
+Install dependencies (root and backend) if you haven’t already:
+```bash
+npm run setup
+```
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

💡 Knowledge Base configuration:

  • MCP integration is disabled by default for public repositories
  • Jira integration is disabled by default for public repositories
  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 72ec866 and 3613b39.

📒 Files selected for processing (4)
  • .nvmrc (1 hunks)
  • CONTRIBUTING.md (1 hunks)
  • README.md (2 hunks)
  • package.json (1 hunks)
✅ Files skipped from review due to trivial changes (1)
  • .nvmrc
🧰 Additional context used
🪛 LanguageTool
README.md

[grammar] ~4-~4: There might be a mistake here.
Context: ... --> ## 🚩 Quick Start for Contributors Want to contribute? Here’s how to get sta...

(QB_NEW_EN)


[grammar] ~123-~123: There might be a mistake here.
Context: ...minal (usually http://localhost:5173). If the backend runs locally, it typicall...

(QB_NEW_EN)


[grammar] ~140-~140: There might be a mistake here.
Context: ... Unit & Integration Testing with Jasmine This project uses the Jasmine framework f...

(QB_NEW_EN)


[grammar] ~142-~142: There might be a mistake here.
Context: ... and integration tests. The tests cover: - [User model (password hashing, schema, pa...

(QB_NEW_EN)


[grammar] ~143-~143: There might be a mistake here.
Context: ...rd hashing, schema, password comparison)](spec/user.model.spec.cjs) - [Authentication routes (signup, login, lo...

(QB_NEW_EN)


[grammar] ~144-~144: There might be a mistake here.
Context: ...ntication routes (signup, login, logout)](spec/auth.routes.spec.cjs) - Passport authentication logic (via integ...

(QB_NEW_EN)


[grammar] ~147-~147: There might be a mistake here.
Context: ...ia integration tests) ### Prerequisites - Node.js and npm installed - **Mong...

(QB_NEW_EN)


[grammar] ~148-~148: There might be a mistake here.
Context: ...ites - Node.js and npm installed - MongoDB running locally (default: `mon...

(QB_NEW_EN)


[grammar] ~151-~151: There might be a mistake here.
Context: ...db://127.0.0.1:27017`) ### Installation Install dependencies (root and backend) ...

(QB_NEW_EN)


[grammar] ~162-~162: There might be a mistake here.
Context: ...e-dev jasmine ``` ### Running the Tests 1. Start MongoDB (if not already running)...

(QB_NEW_EN)

🔇 Additional comments (3)
CONTRIBUTING.md (1)

61-70: Conventional Commits section looks solid

Clear guidance with good examples. No changes needed.

README.md (2)

4-31: Quick Start is clear and contributor-friendly

Nice flow (fork → branch from upstream/main → push with -u). This will reduce common PR friction.


167-179: Cross-platform test commands look good

Clear root directory note and separate macOS/Linux vs PowerShell instructions. Nice.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (2)
README.md (2)

52-56: Fix shields badges to point to this org/repo

The badges still reference mehul-m-prajapati/github_tracker. Update to GitMetricsLab/github_tracker.

-<td><img alt="Stars" src="https://img.shields.io/github/stars/mehul-m-prajapati/github_tracker?style=flat&logo=github"/></td>
-<td><img alt="Forks" src="https://img.shields.io/github/forks/mehul-m-prajapati/github_tracker?style=flat&logo=github"/></td>
-<td><img alt="Issues" src="https://img.shields.io/github/issues/mehul-m-prajapati/github_tracker?style=flat&logo=github"/></td>
-<td><img alt="Open Pull Requests" src="https://img.shields.io/github/issues-pr/mehul-m-prajapati/github_tracker?style=flat&logo=github"/></td>
-<td><img alt="Closed Pull Requests" src="https://img.shields.io/github/issues-pr-closed/mehul-m-prajapati/github_tracker?style=flat&color=critical&logo=github"/></td>
+<td><img alt="Stars" src="https://img.shields.io/github/stars/GitMetricsLab/github_tracker?style=flat&logo=github"/></td>
+<td><img alt="Forks" src="https://img.shields.io/github/forks/GitMetricsLab/github_tracker?style=flat&logo=github"/></td>
+<td><img alt="Issues" src="https://img.shields.io/github/issues/GitMetricsLab/github_tracker?style=flat&logo=github"/></td>
+<td><img alt="Open Pull Requests" src="https://img.shields.io/github/issues-pr/GitMetricsLab/github_tracker?style=flat&logo=github"/></td>
+<td><img alt="Closed Pull Requests" src="https://img.shields.io/github/issues-pr-closed/GitMetricsLab/github_tracker?style=flat&color=critical&logo=github"/></td>

217-219: Update repo link in Contributors section

The anchor links to mehul-m-prajapati/github_tracker while the image already points to GitMetricsLab/github_tracker. Align the href to this org.

-  <a href="https://github.com/mehul-m-prajapati/github_tracker">
+  <a href="https://github.com/GitMetricsLab/github_tracker">
🧹 Nitpick comments (8)
CONTRIBUTING.md (4)

41-62: Branching workflow looks good; add an explicit “keep up-to-date” step

New contributors often forget to rebase/merge from upstream before opening a PR. Add a small step to keep the topic branch current with upstream/main.

Apply this diff to append a step and a safe update command:

  5. Open a Pull Request from `<your-username>:<topic-branch>` to `GitMetricsLab:main`.
+
+6. Keep your branch up to date with the latest upstream changes:
+   ```bash
+   git fetch upstream
+   git rebase upstream/main
+   # if you've already pushed, use a safe update:
+   git push --force-with-lease
+   ```

55-60: Conventional commit example: keep imperative mood and avoid angle brackets in literal messages

The example is fine, but some contributors may copy it verbatim. Prefer an example without placeholders.

-   git commit -m "feat: <short message>"
+   git commit -m "feat: add contributor quick-start to README"

63-72: Link to Conventional Commits spec for clarity

Add an authoritative link so contributors can confirm types/scopes.

-This helps with change logs and automated releases.
+This helps with change logs and automated releases. See https://www.conventionalcommits.org/.

73-79: DCO example uses duplicate flags

-s and --signoff are equivalent; using both is redundant.

-git commit -s --signoff -m "docs(readme): clarify install steps"
+git commit -s -m "docs(readme): clarify install steps"
README.md (4)

4-30: Quick Start is solid; consider a one-liner to sync before branching

Minor enhancement: show how to ensure the local main is current right before creating the topic branch.

   git remote add upstream https://github.com/GitMetricsLab/github_tracker.git
   git fetch upstream
   # create your branch from the latest upstream main
   git checkout -b my-first-contribution upstream/main
+  # later, to refresh your branch:
+  # git fetch upstream && git rebase upstream/main

118-135: Nice Docker tip; tweak env example to be directly copy-pastable

Use an actual command rather than a commented example so newcomers can copy/paste; keep the comment above it.

-> # Then, point your app at this database, for example:
-> # export MONGO_URI="mongodb://127.0.0.1:27017/githubTracker"
+> # Then, point your app at this database, for example:
+> export MONGO_URI="mongodb://127.0.0.1:27017/githubTracker"

157-165: Avoid advising global jasmine install; prefer project-local or npx

To prevent version drift across contributors, suggest npx jasmine or add an npm script ("test": "jasmine --config=spec/support/jasmine.mjs").

-Jasmine is already configured in the repo; if missing locally:
-```bash
-npm install --save-dev jasmine
-```
+Jasmine is already configured in the repo; run it via `npx` or an npm script to avoid global installs:
+```bash
+npx jasmine --config=spec/support/jasmine.mjs
+# or add to package.json:
+# "scripts": { "test": "jasmine --config=spec/support/jasmine.mjs" }
+```

172-184: Cross-platform test command looks good; offer cross-env as a single-command alternative

Optional: using cross-env provides one command that works across shells.

-  # Use a test database (e.g., github_tracker_test) to avoid clobbering dev data
-  MONGO_URI="mongodb://127.0.0.1:27017/github_tracker_test" npx jasmine --config=spec/support/jasmine.mjs
+  # Use a test database (e.g., github_tracker_test) to avoid clobbering dev data
+  npx cross-env MONGO_URI="mongodb://127.0.0.1:27017/github_tracker_test" jasmine --config=spec/support/jasmine.mjs

Note: add cross-env as a dev dependency if you adopt this.

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

💡 Knowledge Base configuration:

  • MCP integration is disabled by default for public repositories
  • Jira integration is disabled by default for public repositories
  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 3613b39 and aae0906.

📒 Files selected for processing (3)
  • CONTRIBUTING.md (1 hunks)
  • README.md (2 hunks)
  • package.json (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • package.json
🧰 Additional context used
🪛 LanguageTool
README.md

[grammar] ~4-~4: There might be a mistake here.
Context: ... --> ## 🚩 Quick Start for Contributors Want to contribute? Here’s how to get sta...

(QB_NEW_EN)


[grammar] ~119-~119: There might be a mistake here.
Context: ...minal (usually http://localhost:5173). If the backend runs locally, it typicall...

(QB_NEW_EN)


[grammar] ~146-~146: There might be a mistake here.
Context: ... Unit & Integration Testing with Jasmine This project uses the Jasmine framework f...

(QB_NEW_EN)


[grammar] ~148-~148: There might be a mistake here.
Context: ... and integration tests. The tests cover: - [User model (password hashing, schema, pa...

(QB_NEW_EN)


[grammar] ~149-~149: There might be a mistake here.
Context: ...rd hashing, schema, password comparison)](spec/user.model.spec.cjs) - [Authentication routes (signup, login, lo...

(QB_NEW_EN)


[grammar] ~150-~150: There might be a mistake here.
Context: ...ntication routes (signup, login, logout)](spec/auth.routes.spec.cjs) - Passport authentication logic (via integ...

(QB_NEW_EN)


[grammar] ~157-~157: There might be a mistake here.
Context: ...db://127.0.0.1:27017`) ### Installation Install dependencies (root and backend) ...

(QB_NEW_EN)


[grammar] ~167-~167: There might be a mistake here.
Context: ...e-dev jasmine ``` ### Running the Tests 1. Start MongoDB (if not already running)...

(QB_NEW_EN)

🔇 Additional comments (3)
README.md (3)

92-105: Good env setup; minor clarity

Consider explicitly stating that the .env file is only needed for the backend and lives under backend/.


146-151: Testing section is clear and actionable

Good links to concrete specs; this will help newcomers discover coverage.


136-144: Verified: docker:dev and docker:prod scripts are present

The package.json includes both scripts referenced in the README (lines 12–13):

  • "docker:dev": "docker compose --profile dev up --build"
  • "docker:prod": "docker compose --profile prod up -d --build"

No further changes needed.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

♻️ Duplicate comments (1)
CONTRIBUTING.md (1)

88-91: Quick Start anchor slug fixed — nice

The README anchor now correctly targets #quick-start-for-contributors (emoji ignored by GitHub). Nothing else to do.

🧹 Nitpick comments (5)
CONTRIBUTING.md (3)

56-60: Use docs(readme) instead of feat in commit example

This example updates documentation. Prefer Conventional Commits type docs for consistency with the section below.

-   git commit -m "feat: add contributor quick-start to README"
+   git commit -m "docs(readme): add contributor quick-start"

63-68: Clarify safe force-push usage post-rebase

Good call using --force-with-lease. Add a short note that it should be used only after rebasing your own branch (not on shared branches).

Proposed addition:

   git rebase upstream/main
   # if you've already pushed, use a safe update:
   git push --force-with-lease
+  # Note: use --force-with-lease only on your own topic branch after a rebase.
+  # Avoid force-pushing shared branches.

72-79: Avoid bare URL per markdownlint MD034

Wrap the Conventional Commits site in a markdown link.

-This helps with change logs and automated releases. See https://www.conventionalcommits.org/.
+This helps with change logs and automated releases. See [Conventional Commits](https://www.conventionalcommits.org/).
README.md (2)

78-101: Remove duplicated nvm tip to reduce noise

You already instruct nvm use at the start of this section. The extra tip repeats the same command.

 ### 1. Install dependencies for both frontend and backend

 First, switch to the project’s Node.js version (from `.nvmrc`) if you use nvm:
 ```bash
 nvm use

@@
Fallback (manual):

npm install
cd backend && npm install

-> Tip: Use the project’s Node.js version. If you’ve set it in .nvmrc or package.json#engines, nvm will pick it up.
->
-> With nvm:
-> bash -> nvm use ->


---

`128-145`: **Add Windows-friendly env example in Docker note**

Provide a PowerShell variant alongside export to help Windows contributors.


```diff
 > # Then, point your app at this database, for example:
-> export MONGO_URI="mongodb://127.0.0.1:27017/githubTracker"
+> # macOS/Linux (Bash):
+> export MONGO_URI="mongodb://127.0.0.1:27017/githubTracker"
+> # Windows (PowerShell):
+> $env:MONGO_URI="mongodb://127.0.0.1:27017/githubTracker"
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

💡 Knowledge Base configuration:

  • MCP integration is disabled by default for public repositories
  • Jira integration is disabled by default for public repositories
  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between aae0906 and d64e3a7.

📒 Files selected for processing (2)
  • CONTRIBUTING.md (1 hunks)
  • README.md (4 hunks)
🧰 Additional context used
🪛 LanguageTool
README.md

[grammar] ~4-~4: There might be a mistake here.
Context: ... --> ## 🚩 Quick Start for Contributors Want to contribute? Here’s how to get sta...

(QB_NEW_EN)


[grammar] ~129-~129: There might be a mistake here.
Context: ...minal (usually http://localhost:5173). If the backend runs locally, it typicall...

(QB_NEW_EN)


[grammar] ~156-~156: There might be a mistake here.
Context: ... Unit & Integration Testing with Jasmine This project uses the Jasmine framework f...

(QB_NEW_EN)


[grammar] ~158-~158: There might be a mistake here.
Context: ... and integration tests. The tests cover: - [User model (password hashing, schema, pa...

(QB_NEW_EN)


[grammar] ~159-~159: There might be a mistake here.
Context: ...rd hashing, schema, password comparison)](spec/user.model.spec.cjs) - [Authentication routes (signup, login, lo...

(QB_NEW_EN)


[grammar] ~160-~160: There might be a mistake here.
Context: ...ntication routes (signup, login, logout)](spec/auth.routes.spec.cjs) - Passport authentication logic (via integ...

(QB_NEW_EN)


[grammar] ~167-~167: There might be a mistake here.
Context: ...db://127.0.0.1:27017`) ### Installation Install dependencies (root and backend) ...

(QB_NEW_EN)


[grammar] ~179-~179: There might be a mistake here.
Context: ...asmine.mjs" } ``` ### Running the Tests 1. Start MongoDB (if not already running)...

(QB_NEW_EN)

CONTRIBUTING.md

[grammar] ~61-~61: There might be a mistake here.
Context: ...toGitMetricsLab:main`. 6. Keep your branch up to date with the lat...

(QB_NEW_EN)

🪛 markdownlint-cli2 (0.17.2)
CONTRIBUTING.md

78-78: Bare URL used

(MD034, no-bare-urls)

🔇 Additional comments (5)
README.md (5)

4-35: Quick Start looks clear and minimal — approved

The fork → upstream → feature branch flow is accurate, includes tracking on first push, and links back to CONTRIBUTING.md.


56-60: Badges updated to the correct org/repo — good

The shields now point to GitMetricsLab/github_tracker and include closed PRs. Looks correct.


34-35: Align PR “Type of Change” with docs-only changes

This PR appears documentation-only. In the PR description, select only Documentation update to avoid noise in changelogs and release tooling.


231-231: Contributors image link updated — approved

Link now targets the GitMetricsLab/github_tracker repo correctly.


146-154: Docker scripts verified in package.json

The setup, docker:dev, and docker:prod scripts are present and correctly defined in the root package.json. No updates to the README are required.

Comment on lines +186 to +198
macOS/Linux (Bash):
```bash
# Use a test database (e.g., github_tracker_test) to avoid clobbering dev data
MONGO_URI="mongodb://127.0.0.1:27017/github_tracker_test" npx jasmine --config=spec/support/jasmine.mjs
# Or cross-platform with one command:
npx cross-env MONGO_URI="mongodb://127.0.0.1:27017/github_tracker_test" jasmine --config=spec/support/jasmine.mjs
```

Windows (PowerShell):
```powershell
# Use a test database (e.g., github_tracker_test) to avoid clobbering dev data
$env:MONGO_URI="mongodb://127.0.0.1:27017/github_tracker_test"; npx jasmine --config=spec/support/jasmine.mjs
```
Copy link
Contributor

Choose a reason for hiding this comment

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

💡 Verification agent

🧩 Analysis chain

Ensure cross-env is available or provide install hint

The cross-platform example uses cross-env; verify it’s a devDependency or add a one-line install hint.

Verification script:

Optional README tweak if missing:

-  npx cross-env MONGO_URI="mongodb://127.0.0.1:27017/github_tracker_test" jasmine --config=spec/support/jasmine.mjs
+  # Requires cross-env (install once: npm i -D cross-env)
+  npx cross-env MONGO_URI="mongodb://127.0.0.1:27017/github_tracker_test" jasmine --config=spec/support/jasmine.mjs

🏁 Script executed:

#!/bin/bash
set -euo pipefail
echo "Checking for cross-env in root or backend package.json..."
rg -n '"cross-env"\s*:' -g 'package.json' -g 'backend/package.json' -n -C1 || {
  echo "cross-env not found in devDependencies. Consider adding:"; 
  echo 'npm install -D cross-env';
  exit 1;
}

Length of output: 408


Add cross-env as a devDependency and surface an install hint in the README

The verification script confirmed that cross-env is not currently declared in your devDependencies. Without it, the cross-platform example will fail for users on non-Unix shells.

• Package manifest

  • In your package.json (root or backend/), add cross-env to devDependencies:
    npm install --save-dev cross-env

• README.md (Lines 186–198)

  • Update the Bash/PowerShell snippet to call out the one-time install. For example:
      # Or cross-platform with one command:
    - npx cross-env MONGO_URI="mongodb://127.0.0.1:27017/github_tracker_test" jasmine --config=spec/support/jasmine.mjs
    + # Requires cross-env (install once: npm i -D cross-env)
    + npx cross-env MONGO_URI="mongodb://127.0.0.1:27017/github_tracker_test" jasmine --config=spec/support/jasmine.mjs
🤖 Prompt for AI Agents
In README.md around lines 186–198 the cross-platform test example uses cross-env
but the package.json does not declare cross-env as a devDependency; add
cross-env to your devDependencies in the repository package.json where tests are
executed (root or backend) by running the one-time install (npm install
--save-dev cross-env), and update the README snippet to mention this one-time
install step and call out which package.json to update so users on Windows can
run the cross-platform example successfully.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🧹 Nitpick comments (8)
package.json (2)

11-11: Setup script works; consider adding a CI-friendly variant and a dedicated backend install alias

The combined install is fine for contributors. For reproducibility in CI (or locked installs), consider adding a separate script that uses npm ci when lockfiles exist, and an alias for backend-only installs.

Example:

   "scripts": {
     "dev": "vite --host",
     "build": "vite build",
     "lint": "eslint .",
     "preview": "vite preview",
-    "setup": "npm install && npm --prefix backend install",
+    "setup": "npm install && npm --prefix backend install",
+    "setup:ci": "npm ci && npm --prefix backend ci",
+    "backend:install": "npm --prefix backend install"
   },

Additionally, consider adding engines to reflect .nvmrc:

"engines": { "node": "18.20.x" }

49-49: Good addition of cross-env; align README note now that it’s devDependency

Now that cross-env is in devDependencies, the README’s “(one-time) npm install --save-dev cross-env” note can be removed to avoid confusing first-time contributors.

README.md (6)

4-35: Quick Start flow reads well; add a safe-push tip after rebase

The upstream/branching instructions are clear. After “rebase upstream/main”, many first-timers hit non-fast-forward errors if they’ve already pushed. Consider adding a one-liner to push safely.

Suggested addition after Line 24:

# if you already pushed before the rebase
git push --force-with-lease

78-101: De-duplicate the nvm tip (appears twice) and keep the first occurrence

You already ask users to run nvm use at Lines 80–83. The tip block at Lines 95–100 repeats the same guidance and can be removed for brevity.

 > Tip: Use the project’s Node.js version. If you’ve set it in `.nvmrc` or `package.json#engines`, nvm will pick it up.
->
-> With nvm:
-> ```bash
-> nvm use
-> ```

116-131: Backend/frontend start flow is coherent; minor wording tweak optional

Wording is accurate and aligns with the port guidance below. Optionally, add “from the backend folder” inline with the code block caption for scannability.


132-145: Dockerized Mongo snippet is solid; add a quick compose-network note (optional)

If users later run the full stack via Compose, they’ll be on a different network. A brief note that the standalone container exposes 27017 on localhost helps set expectations.


169-177: Jasmine usage via npx is good; consider a package script for newcomers

To further reduce command length and unify across platforms, consider adding a root test script and referencing it here.

Example package.json addition:

"scripts": {
  "test": "jasmine --config=spec/support/jasmine.mjs"
}

184-199: Now that cross-env is installed, trim the one-time install comment

The cross-platform example is helpful. Since cross-env is in devDependencies, remove the “(one-time) install” line to avoid confusion.

   # Or cross-platform with one command:
-  # (one-time) npm install --save-dev cross-env  # in the repository root
   npx cross-env MONGO_URI="mongodb://127.0.0.1:27017/github_tracker_test" jasmine --config=spec/support/jasmine.mjs
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

💡 Knowledge Base configuration:

  • MCP integration is disabled by default for public repositories
  • Jira integration is disabled by default for public repositories
  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between d64e3a7 and ebf9bd5.

📒 Files selected for processing (2)
  • README.md (4 hunks)
  • package.json (2 hunks)
🧰 Additional context used
🧬 Code graph analysis (1)
README.md (1)
src/pages/Contributors/Contributors.tsx (3)
  • contributors (27-142)
  • contributor (74-137)
  • Contributor (19-25)
🪛 LanguageTool
README.md

[grammar] ~4-~4: There might be a mistake here.
Context: ... --> ## 🚩 Quick Start for Contributors Want to contribute? Here’s how to get sta...

(QB_NEW_EN)


[grammar] ~129-~129: There might be a mistake here.
Context: ...minal (usually http://localhost:5173). If the backend runs locally, it typicall...

(QB_NEW_EN)


[grammar] ~156-~156: There might be a mistake here.
Context: ... Unit & Integration Testing with Jasmine This project uses the Jasmine framework f...

(QB_NEW_EN)


[grammar] ~158-~158: There might be a mistake here.
Context: ... and integration tests. The tests cover: - [User model (password hashing, schema, pa...

(QB_NEW_EN)


[grammar] ~159-~159: There might be a mistake here.
Context: ...rd hashing, schema, password comparison)](spec/user.model.spec.cjs) - [Authentication routes (signup, login, lo...

(QB_NEW_EN)


[grammar] ~160-~160: There might be a mistake here.
Context: ...ntication routes (signup, login, logout)](spec/auth.routes.spec.cjs) - Passport authentication logic (via integ...

(QB_NEW_EN)


[grammar] ~167-~167: There might be a mistake here.
Context: ...db://127.0.0.1:27017`) ### Installation Install dependencies (root and backend) ...

(QB_NEW_EN)


[grammar] ~179-~179: There might be a mistake here.
Context: ...asmine.mjs" } ``` ### Running the Tests 1. Start MongoDB (if not already running)...

(QB_NEW_EN)

🔇 Additional comments (5)
README.md (5)

56-60: Shields updated to the correct org/repo — looks good

All badge endpoints point to GitMetricsLab/github_tracker. No issues spotted.


102-115: Env setup is clear and platform-friendly — nice

Explicit Windows and POSIX examples, plus minimal required keys, are helpful. No changes requested.


201-204: Direct links to spec files are a nice touch

Good DX improvement for first-time contributors.


67-73: Tech Stack mentions “React Query” but it’s not in dependencies — align or update

The README lists “React Query”, but package.json does not include @tanstack/react-query. Either add it (if used) or update the bullet to avoid confusion.

If you intend to use it, install and document:

npm install @tanstack/react-query

Or update the bullet to omit it.


232-232: Contributors image repo link updated — looks correct

Anchor points to GitMetricsLab/github_tracker. LGTM.

Comment on lines 146 to 154
Alternatively, to start the full stack with Compose:
```bash
$ npm i
$ npm start
# Dev profile (hot reload etc.)
npm run docker:dev
# Production-like profile
npm run docker:prod
```
Copy link
Contributor

Choose a reason for hiding this comment

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

💡 Verification agent

🧩 Analysis chain

Verify compose profiles exist (dev/prod) and document prerequisites if needed

The scripts reference --profile dev and --profile prod. Please verify those profiles are present in your compose file and call it out if Docker Desktop/Compose v2 is required.


🏁 Script executed:

#!/bin/bash
# Verify compose file and profiles
fd -a -t f -g "docker-compose*.yml" -g "compose*.yml" || true
rg -n -C2 -i 'profiles:\s*\n\s*-+\s*dev|profiles:\s*\n\s*-+\s*prod' -g 'docker-compose*.yml' -g 'compose*.yml' || true

Length of output: 474


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "Searching for Docker Compose files..."
compose_files=$(find . -maxdepth 4 -type f \( -name 'docker-compose*.yml' -o -name 'compose*.yml' \) || true)

if [ -z "$compose_files" ]; then
  echo "No Compose files found in the repository."
  exit 0
fi

for file in $compose_files; do
  echo
  echo "----- Checking $file -----"
  
  echo "Looking for 'dev' profile..."
  if rg -U -n 'profiles:\s*\n\s*-\s*dev' "$file" >/dev/null; then
    echo "  ✓ 'dev' profile found"
  else
    echo "  ✗ 'dev' profile NOT found"
  fi

  echo "Looking for 'prod' profile..."
  if rg -U -n 'profiles:\s*\n\s*-\s*prod' "$file" >/dev/null; then
    echo "  ✓ 'prod' profile found"
  else
    echo "  ✗ 'prod' profile NOT found"
  fi
done

Length of output: 790


Compose profiles verified – add Compose v2 prerequisite

  • Verified that docker-compose.yml defines both dev and prod profiles.
  • Profiles require Docker Compose v2 (either via Docker Desktop v3.0+ or the standalone v2 CLI).
  • Please update the README.md snippet (lines 146–154) to call out this prerequisite so users don’t encounter errors when running npm run docker:dev or npm run docker:prod.
🤖 Prompt for AI Agents
In README.md around lines 146 to 154, the compose snippet omits a prerequisite
that the user must have Docker Compose v2 (Docker Desktop v3.0+ or the
standalone v2 CLI) to use named profiles; add a one-line note immediately above
the code block stating that Compose v2 is required and optionally link to
installation/update instructions for Docker Desktop or the Compose v2 CLI so
users know how to upgrade before running `npm run docker:dev` or `npm run
docker:prod`.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

♻️ Duplicate comments (1)
CONTRIBUTING.md (1)

92-92: Quick Start anchor fixed.

Anchor now matches GitHub’s slug; link works as expected.

🧹 Nitpick comments (4)
package.json (1)

14-16: Setup scripts are clear; consider a small convenience addition.

Current scripts cover local and CI end-to-end. Optional: add a direct backend CI helper for parity with backend:install (keeps CI logs/snippets simpler when you only want to run backend install deterministically).

   "scripts": {
     "dev": "vite --host",
     "build": "vite build",
     "lint": "eslint .",
     "preview": "vite preview",
     "setup": "npm install && npm --prefix backend install",
     "setup:ci": "npm ci && npm --prefix backend ci",
     "backend:install": "npm --prefix backend install",
+    "backend:ci": "npm --prefix backend ci",
     "docker:dev": "docker compose --profile dev up --build",
     "docker:prod": "docker compose --profile prod up -d --build"
   },

Also applies to: 16-16

README.md (2)

146-148: Fix markdownlint MD034 (bare URL).

Wrap the Compose docs URL in a proper link label to satisfy linters and improve readability.

-> See https://docs.docker.com/compose/ for installation and upgrade instructions.
+> See [Docker Compose docs](https://docs.docker.com/compose/) for installation and upgrade instructions.

187-193: Cross-platform Jasmine examples are accurate; minor reinforcement.

Since cross-env is now a devDependency, consider adding a brief note that it’s already included so users don’t try to install it globally.

   # Or cross-platform with one command:
-  npx cross-env MONGO_URI="mongodb://127.0.0.1:27017/github_tracker_test" jasmine --config=spec/support/jasmine.mjs
+  # cross-env is included as a devDependency
+  npx cross-env MONGO_URI="mongodb://127.0.0.1:27017/github_tracker_test" jasmine --config=spec/support/jasmine.mjs
CONTRIBUTING.md (1)

122-125: Use -u on first push to set upstream (consistency with README).

This mirrors the README example and simplifies subsequent pushes/pulls.

-git push origin your-feature-name
+git push -u origin your-feature-name
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

💡 Knowledge Base configuration:

  • MCP integration is disabled by default for public repositories
  • Jira integration is disabled by default for public repositories
  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between ebf9bd5 and 26f2df0.

📒 Files selected for processing (3)
  • CONTRIBUTING.md (1 hunks)
  • README.md (4 hunks)
  • package.json (2 hunks)
🧰 Additional context used
🪛 LanguageTool
README.md

[grammar] ~4-~4: There might be a mistake here.
Context: ... --> ## 🚩 Quick Start for Contributors Want to contribute? Here’s how to get sta...

(QB_NEW_EN)


[grammar] ~127-~127: There might be a mistake here.
Context: ...minal (usually http://localhost:5173). If the backend runs locally, it typicall...

(QB_NEW_EN)


[grammar] ~157-~157: There might be a mistake here.
Context: ... Unit & Integration Testing with Jasmine This project uses the Jasmine framework f...

(QB_NEW_EN)


[grammar] ~159-~159: There might be a mistake here.
Context: ... and integration tests. The tests cover: - [User model (password hashing, schema, pa...

(QB_NEW_EN)


[grammar] ~160-~160: There might be a mistake here.
Context: ...rd hashing, schema, password comparison)](spec/user.model.spec.cjs) - [Authentication routes (signup, login, lo...

(QB_NEW_EN)


[grammar] ~161-~161: There might be a mistake here.
Context: ...ntication routes (signup, login, logout)](spec/auth.routes.spec.cjs) - Passport authentication logic (via integ...

(QB_NEW_EN)


[grammar] ~164-~164: There might be a mistake here.
Context: ...ia integration tests) ### Prerequisites - Node.js and npm installed - **Mong...

(QB_NEW_EN)


[grammar] ~165-~165: There might be a mistake here.
Context: ...ites - Node.js and npm installed - MongoDB running locally (default: `mon...

(QB_NEW_EN)


[grammar] ~168-~168: There might be a mistake here.
Context: ...db://127.0.0.1:27017`) ### Installation Install dependencies (root and backend) ...

(QB_NEW_EN)


[grammar] ~180-~180: There might be a mistake here.
Context: ...asmine.mjs" } ``` ### Running the Tests 1. Start MongoDB (if not already running)...

(QB_NEW_EN)

CONTRIBUTING.md

[grammar] ~61-~61: There might be a mistake here.
Context: ...toGitMetricsLab:main`. 6. Keep your branch up to date with the lat...

(QB_NEW_EN)

🪛 markdownlint-cli2 (0.17.2)
README.md

147-147: Bare URL used

(MD034, no-bare-urls)

🔇 Additional comments (9)
package.json (2)

6-8: Engines pin looks good and aligns with .nvmrc (18.20.x).

This will prevent accidental installs on unsupported Node versions. No further action needed.


54-54: Good catch adding cross-env for cross-platform test commands.

This matches the README’s Jasmine examples and avoids Windows env var issues.

README.md (5)

8-36: Quick Start flow reads well and uses rebase + --force-with-lease.

Solid contributor UX. Nice touch documenting the safe force-push.


60-64: Badge targets corrected to GitMetricsLab org.

URLs and labels look right.


84-98: nvm before install is the right order.

Running nvm use before npm run setup prevents version-mismatch headaches for first-timers. Good improvement.


100-113: Backend env setup is explicit and platform-friendly.

The .env.sample copy steps and variable names match the backend guidance. Good clarity.


126-129: Port note now matches backend default (5000).

Thanks for aligning this with the sample .env and Dockerfiles.

CONTRIBUTING.md (2)

41-55: Branching workflow is clear and matches README’s Quick Start.

Using upstream/main as the base and creating a topic branch is the right guidance for contributors.


63-70: Great call-out on --force-with-lease.

This reduces risk when updating rebased branches.

@rushi-018
Copy link
Author

Addressed all suggestions: portable setup + setup:ci, engines, rebase tip + safe push, Compose v2 note, badges/org links, port 5000, MONGO_URI consistency, cross-env added to devDeps, npx jasmine guidance, links to spec files. Ready for review. @mehul-m-prajapati

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant