Skip to content

Commit df27c03

Browse files
Merge pull request #5 from Coding-Professional/docs/oss-readme-ci-main
Add CI and contributor docs
2 parents f53a0a9 + 32d480b commit df27c03

15 files changed

Lines changed: 555 additions & 95 deletions
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
name: Bug report
2+
description: Report a reproducible problem with the site.
3+
title: "bug: "
4+
labels: [bug]
5+
body:
6+
- type: markdown
7+
attributes:
8+
value: Before submitting, check whether this problem has already been reported.
9+
- type: textarea
10+
id: summary
11+
attributes:
12+
label: What happened?
13+
description: Describe the problem in a few sentences.
14+
validations:
15+
required: true
16+
- type: textarea
17+
id: reproduce
18+
attributes:
19+
label: Steps to reproduce
20+
placeholder: "1. Open ...\n2. Select ...\n3. See the error"
21+
validations:
22+
required: true
23+
- type: textarea
24+
id: expected
25+
attributes:
26+
label: What did you expect to happen?
27+
validations:
28+
required: true
29+
- type: input
30+
id: environment
31+
attributes:
32+
label: Browser and device
33+
placeholder: Chrome on Android, Firefox on Windows, etc.
34+
- type: checkboxes
35+
id: privacy
36+
attributes:
37+
label: Before submitting
38+
options:
39+
- label: I removed passwords, tokens and personal information from this report.
40+
required: true

‎.github/ISSUE_TEMPLATE/config.yml‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
blank_issues_enabled: false
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
name: Feature request
2+
description: Suggest an improvement for students or contributors.
3+
title: "feature: "
4+
labels: [enhancement]
5+
body:
6+
- type: textarea
7+
id: problem
8+
attributes:
9+
label: What problem should this solve?
10+
description: Explain who is affected and what they need to do.
11+
validations:
12+
required: true
13+
- type: textarea
14+
id: proposal
15+
attributes:
16+
label: What would you like to happen?
17+
description: Describe a possible solution. Screenshots or examples are welcome.
18+
validations:
19+
required: true
20+
- type: textarea
21+
id: alternatives
22+
attributes:
23+
label: Other options or context
24+
description: Add any alternatives, constraints or related issues.

‎.github/dependabot.yml‎

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
version: 2
2+
updates:
3+
- package-ecosystem: npm
4+
directory: /
5+
schedule:
6+
interval: weekly
7+
day: monday
8+
open-pull-requests-limit: 5
9+
- package-ecosystem: github-actions
10+
directory: /
11+
schedule:
12+
interval: weekly
13+
day: monday
14+
open-pull-requests-limit: 5

‎.github/pull_request_template.md‎

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
## Summary
2+
3+
<!-- What changed and why? -->
4+
5+
## Checks
6+
7+
- [ ] `npm run lint`
8+
- [ ] `npm run typecheck`
9+
- [ ] `npm test`
10+
- [ ] `npm run build`
11+
- [ ] Browser checks, when the change affects routes or interactions
12+
13+
## Review notes
14+
15+
<!-- Add screenshots for visual changes. Mention content sources and licences when relevant. -->

‎.github/workflows/ci.yml‎

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
name: CI
2+
3+
on:
4+
pull_request:
5+
push:
6+
branches: [main]
7+
workflow_dispatch:
8+
9+
permissions:
10+
contents: read
11+
12+
concurrency:
13+
group: ci-${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
14+
cancel-in-progress: true
15+
16+
jobs:
17+
verify:
18+
name: Lint, typecheck, tests and build
19+
runs-on: ubuntu-24.04
20+
timeout-minutes: 15
21+
steps:
22+
- name: Check out repository
23+
uses: actions/checkout@v5
24+
25+
- name: Set up Node.js
26+
uses: actions/setup-node@v5
27+
with:
28+
node-version: 24
29+
cache: npm
30+
31+
- name: Install dependencies
32+
run: npm ci
33+
34+
- name: Lint
35+
run: npm run lint
36+
37+
- name: Typecheck
38+
run: npm run typecheck
39+
40+
- name: Unit tests
41+
run: npm test
42+
43+
- name: Production build
44+
run: npm run build

‎CODE_OF_CONDUCT.md‎

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
# Contributor Covenant Code of Conduct
2+
3+
## Our pledge
4+
5+
We are committed to making participation in this project a respectful experience for everyone,
6+
regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics,
7+
gender identity and expression, level of experience, education, socio-economic status,
8+
nationality, personal appearance, race, religion, or sexual identity and orientation.
9+
10+
We pledge to act and interact in ways that contribute to an open, welcoming, diverse, inclusive,
11+
and healthy community.
12+
13+
## Our standards
14+
15+
Examples of behavior that contributes to a positive environment include:
16+
17+
- Showing empathy and kindness toward other people.
18+
- Giving and accepting constructive feedback respectfully.
19+
- Taking responsibility, apologizing to those affected, and learning from mistakes.
20+
- Focusing on what is best for the community.
21+
22+
Examples of unacceptable behavior include:
23+
24+
- Sexualized language or imagery, and unwelcome sexual attention.
25+
- Trolling, insulting or derogatory comments, and personal or political attacks.
26+
- Public or private harassment, including deliberate intimidation or stalking.
27+
- Publishing another person's private information without permission.
28+
- Other conduct that would reasonably be considered inappropriate in a professional setting.
29+
30+
## Enforcement responsibilities
31+
32+
Project maintainers are responsible for clarifying and enforcing these standards and may remove,
33+
edit or reject comments, commits, code, issue reports and other contributions that do not align
34+
with this Code. Maintainers may temporarily or permanently restrict participation for behavior
35+
they consider inappropriate, threatening, offensive or harmful.
36+
37+
## Scope
38+
39+
This Code applies within project spaces and when someone is officially representing the project
40+
in public spaces.
41+
42+
## Reporting
43+
44+
Report unacceptable behavior to **procoderji@gmail.com**. Reports will be reviewed and handled
45+
confidentially. Maintainers will communicate the response to the reporter when appropriate.
46+
47+
## Attribution
48+
49+
This Code of Conduct is adapted from the [Contributor Covenant](https://www.contributor-covenant.org),
50+
version 2.1, available at <https://www.contributor-covenant.org/version/2/1/code_of_conduct.html>.

‎CONTRIBUTING.md‎

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
# Contributing
2+
3+
Thanks for helping improve ProCoderJii Learning Hub. This guide explains how to set up the
4+
project, check a change and open a pull request.
5+
6+
## Before you start
7+
8+
- Check existing issues and pull requests to avoid duplicate work.
9+
- For a large change, open an issue first so the scope can be discussed.
10+
- Follow the [Code of Conduct](CODE_OF_CONDUCT.md).
11+
- For a security vulnerability, use the private reporting instructions in [SECURITY.md](SECURITY.md),
12+
not a public issue.
13+
14+
## Set up the project
15+
16+
Use Node.js 22.18 or newer and npm:
17+
18+
```bash
19+
git clone https://github.com/Coding-Professional/procoderji.git
20+
cd procoderji
21+
npm ci
22+
npm run dev
23+
```
24+
25+
Copy `.env.example` to `.env.local` only if you want to test the optional latest-video section.
26+
The documented values are public; do not add credentials or private tokens to the example file.
27+
28+
## Make a change
29+
30+
- Keep each pull request focused on one problem or feature.
31+
- Use TypeScript and the existing component and utility patterns.
32+
- Keep controls usable with a keyboard and on a phone. Give form fields labels and interactive
33+
elements visible focus states.
34+
- Add or update a unit test for new data validation or reusable logic.
35+
- Keep study material original. See [docs/content-guide.md](docs/content-guide.md) before adding
36+
notes, guides or job listings.
37+
- Do not add secrets, private user data, generated build output or unlicensed assets.
38+
39+
## Check your change
40+
41+
Run the checks that match the files you changed:
42+
43+
```bash
44+
npm run lint
45+
npm run typecheck
46+
npm test
47+
npm run build
48+
```
49+
50+
For route, link and metadata changes, also run `npm run launch-check`. For browser interaction
51+
changes, run `npm run e2e` with Chrome installed. The E2E runner refuses to run if `src/data` or
52+
`src/content` has uncommitted changes because it temporarily installs synthetic fixtures. For
53+
content changes, run `npm test` and `npm run launch-check` instead.
54+
55+
## Open a pull request
56+
57+
1. Create a branch from `main` with a short, descriptive name.
58+
2. Make focused commits with clear messages.
59+
3. Open a pull request against `main` and fill in the provided template.
60+
4. Explain the user-facing change and list the checks you ran. Include screenshots for visual
61+
changes when useful.
62+
5. Keep the pull request up to date and respond to review feedback.
63+
64+
The maintainer reviews contributions before merging. Opening a pull request does not guarantee
65+
that a proposed feature will be accepted; project scope and maintenance cost are part of review.

0 commit comments

Comments
 (0)