Commit Graph
34 Commits
Author SHA1 Message Date
gorkem-bwl 940fc38056 docs: rename frontend-conventions to coding-conventions, add backend rules
The conventions doc grew up as an FE-only thing. After the DNS provider
PR series highlighted real backend patterns that get repeatedly missed
in code review (DI, AppError envelope, schema enum, test setup style,
centralized Zod enums, OpenAPI response schemas), it makes sense to
have a single doc that covers both halves of the codebase.

Changes:

- Rename docs/frontend-conventions.md → docs/coding-conventions.md.
- Add a new top-level rule 0: look at peer implementations and follow
  the established pattern. Applies to both FE and BE. Includes a
  4-step "how to apply" and a self-check for PR authors.
- Keep the 5 frontend rules unchanged (rules 1-5).
- Add 6 backend rules (rules 6-11):
  - Controller → Service → Repository → Mongoose layering.
  - Provider skeleton (DI, SERVICE_NAME / TIMEOUT_MS, timeRequest,
    inline setTimeout race, outer AppError catch).
  - Mongoose enum reusing types/* const tuples.
  - Provider test conventions (file location, @jest/globals, contract
    test, inline setup() per test).
  - Centralize Zod enums in types/* — don't duplicate.
  - New entity fields must land in *ResponseSchema for OpenAPI.
- Pre-PR checklist split into Universal / Frontend / Backend.
- CLAUDE.md updated to reference the new file and summarize all 11
  rules + rule 0.
2026-05-06 13:55:58 -04:00
gorkem-bwl aa7051095a docs(client): document frontend conventions and enforce via ESLint
Capture the five recurring code-review patterns from the recent PR series
(#3591–#3596) as enforceable rules so they don't have to be raised again
in review.

## Conventions
- Prefer MUI native props over `sx` (e.g. color={...}, mt={...}, width={...}).
- Use the full theme path for colors: theme.palette.text.secondary, never
  the "text.secondary" shorthand string. The shorthand is invisible to
  grep, which makes future audits and refactors miss callsites.
- No hardcoded numeric or string literals — use LAYOUT, typographyLevels,
  theme.shape.borderRadius, theme.palette tokens.
- Use useTheme() inside components; don't import { theme } from
  @/Utils/Theme/Theme (factory output, not a live mode-aware instance).
- Pair runtime tuples with derived types so they can't drift.

## Files
- docs/frontend-conventions.md — long-form doc with before/after examples
  drawn from the actual review fixes, plus a pre-PR checklist.
- CLAUDE.md — short summary in the Code Conventions section pointing to
  the doc, so it's loaded into agent context at session start.

## ESLint enforcement
- client/.eslintrc.cjs — four no-restricted-syntax selectors for each rule:
  - color="…" / bgcolor="…" / borderColor="…" with a dotted shorthand value
  - sx={{ key: ... }} where key has a native equivalent, only on hoistable
    components (Box, Stack, Typography, Grid, Container, Paper, Card*,
    Divider, Link, Chip) — Dialog/Drawer/Menu etc. only accept sx.
  - import { theme } from "@/Utils/Theme/Theme"
  - Typography fontSize={13} (the body default — drop the prop).
- TypeScript files are now actually parsed: added @typescript-eslint/parser
  and @typescript-eslint/eslint-plugin and a TS override that extends the
  React plugin configs. Several @typescript-eslint/recommended rules
  disabled to avoid noise on the existing codebase.
- client/package.json — lint script now covers .ts/.tsx; new lint-strict
  script for CI use once the codebase is conformant; --max-warnings 0
  removed from `lint` so existing-code warnings don't block the workflow.

## Surface
Running `npm run lint` after this change reports ~280 warnings against
the existing codebase, almost all from rule #1 (sx-vs-native). These are
intentionally warnings, not errors — they surface the work without
blocking. Each warning links to the rule number in the conventions doc
so the reasoning is one click away.
2026-04-29 13:49:58 -04:00
Gorkem Cetin 29f1041cc3 Merge pull request #3578 from ZeinebMegaadi/fix/docs-link
fix:replaced the broken link with the working one everywhere
2026-04-25 19:40:31 -04:00
ZeinebMegaadi a613bfb45a fix:replaced the broken link with the working one everywhere 2026-04-25 15:33:42 +01:00
Smolcup 4435a66255 docs: add i18n contribution guide 2026-04-19 21:21:04 +02:00
ppmar ff2f84d46b resolve disk selection persistence and validation issues 2025-12-17 23:50:40 +01:00
Tafadzwa Chiwozva f381b0ce4a docs: add guide and tooling for custom CA trust in Dockerized Checkmate (Fixes #2747) 2025-08-13 17:50:30 -04:00
Alex Holliday 24736a7bc1 extract server 2025-02-17 19:08:36 -08:00
Alex Holliday df36e4d1f6 Update docs for docker monitors 2024-11-14 11:32:51 +08:00
Rogerio Bordignon cabb6b28a8 Fix typo in documentation 2024-10-15 23:16:40 -03:00
Alex Holliday 6f3cf2759a Merge branch 'master' into develop 2024-10-11 09:38:44 +08:00
Alex Holliday 9b2480d8b3 Merge branch 'master' of github.com:bluewave-labs/bluewave-uptime 2024-10-10 07:52:48 +08:00
Alex Holliday 00aa848dcf Create guides folder 2024-10-10 07:51:45 +08:00
Gorkem Cetin (BWL) bc001c6a0e Delete docs directory 2024-10-09 19:48:13 -04:00
Alexander Holliday 53445befea Update quickstart.md 2024-10-10 07:42:38 +08:00
Alex Holliday 7984972191 update docs 2024-10-10 07:39:25 +08:00
Alex Holliday fe22e778ff Update quickstart documentation 2024-10-10 07:32:31 +08:00
Alex Holliday 2c0d02c84e move diagrams to /docs/diagrams 2024-10-10 07:16:45 +08:00
Alex Holliday 2f2d354576 Merge branch 'develop' into feat/flow-docs 2024-10-10 07:15:21 +08:00
Dr. Gorkem Cetin 86bed1b3b2 GITBOOK-20: No subject 2024-10-09 04:10:02 +00:00
Dr. Gorkem Cetin 308e884b36 GITBOOK-20: No subject 2024-10-04 16:22:25 +00:00
Dr. Gorkem Cetin bdeb33b8d3 GITBOOK-19: No subject 2024-10-04 16:14:18 +00:00
Dr. Gorkem Cetin a9a34f8725 GITBOOK-18: No subject 2024-10-04 13:35:14 +00:00
Dr. Gorkem Cetin f7a3172251 GITBOOK-16: No subject 2024-10-04 13:20:04 +00:00
Gorkem Cetin (BWL) f3e7e5eca6 testing sync 2024-10-04 01:15:02 -04:00
Dr. Gorkem Cetin 35ae579509 GITBOOK-12: No subject 2024-10-04 05:13:57 +00:00
Alex Holliday 45a52d9e7c Add jobqueue flow chart 2024-10-01 13:57:17 +08:00
Gorkem Cetin (BWL) 022682ce4e Create CNAME 2024-08-07 14:18:49 -04:00
Alexander Holliday e25cff65bd Merge pull request #549 from bluewave-labs/develop
Bugfix & Pagespeed
2024-08-06 11:45:10 -07:00
Gorkem Cetin (BWL) c299b5a319 Create CNAME 2024-08-06 13:33:15 -04:00
Gorkem Cetin (BWL) 31b828e3ae Create index.html 2024-08-06 13:25:39 -04:00
Gorkem Cetin (BWL) f15c93868d Delete CNAME 2024-08-06 13:22:16 -04:00
Gorkem Cetin (BWL) c622c10756 Delete CNAME 2024-08-06 13:20:32 -04:00
Gorkem Cetin (BWL) b04962e29e Create CNAME 2024-08-01 16:56:57 -04:00