724events

Redesign and stabilization of the 724events one‑page website. Bug diagnosis, targeted fixes, stronger tests (unit/integration), writing the test plan (QA checklist) and preparing the presentation, to enable a fast and safe production release.

1. Context

• Client: 724events, an events agency looking to publish the new version of its one‑page marketing website.

• Team: Artdantech (freelance front‑end), Jean‑Baptiste (Marketing Director).

• Deliverables: fixed and stable website, green test suite, completed QA checklist/test plan, presentation outline and slides.

• Starting point: existing repo with partial integration, an “Issues” note from the previous developer, and a test plan to finish.

2. Need

• Finalize integration, fix blocking/UX bugs, secure component behavior, and stabilize the build.

• Improve tooling: run and interpret tests, use React DevTools, document via the QA checklist/test plan.

• Ensure a fast release without regressions with sufficient test coverage.

3. Client / Users

• Visitors: 724events prospects and partners, multi‑device browsing (mobile-first).

• Stakeholder: Jean‑Baptiste (Marketing), needs a smooth site, error‑free, ready to promote.

4. Goals

4.1 Functional

• Smooth one‑page navigation (anchors, header, sections), working interactive components (Slider, Forms, FAQ/Accordions, etc.).

• Responsive layout and baseline accessibility (keyboard navigation, contrast, labels).

• Green application tests and a QA checklist/test plan covering critical scenarios.

4.2 Technical

• Local run via yarn start, tests via yarn test --watch, zero build/lint errors.

• Fix state/props, context/data, effects (useEffect) and event handling.

• Update/add Jest + React Testing Library tests (unit and integration).

5. Constraints / Challenges

• Legacy code with partial integration, technical debt, and undocumented behavior.

• Short deadline: prioritize high-impact bugs (crashes, blockers, key journeys).

• Prevent regressions: align tests ↔ QA checklist ↔ requirements.

6. Process / Methodology

6.1 Analysis

• Review the “Issues” tab, read the QA checklist/test plan, map problematic components.

• Quick audit with DevTools (console, network, performance) and React DevTools (state/props/context).

• Inventory failing tests and correlate them with observed bugs.

6.2 Breakdown into GitHub issues

• Environment: Node/Yarn/commands, fix scripts if needed, lint/format.

• UI debugging: Slider (index, looping, rendering), anchor navigation/smooth-scroll, forms (validation/submission), responsive fixes.

• State management: validate Context/props drilling, sync state ↔ UI.

• Tests: fix existing tests, add unit tests (components/helpers) and integration tests (Home/critical sections).

• Accessibility/UX: visible focus, aria-labels, roles, contrast, tab order.

• Documentation: complete the QA checklist/test plan, presentation outline.

6.3 Architecture & logic

• Structure: page/sections (Header, Hero, Services, References, Testimonials, Contact), UI components (Button, Slider, Modal, Accordion).

• Fix strategy:
  - Reproduce each bug, write/enable a minimal failing test (red), fix until green.
  - Scope effects (useEffect) with correct dependencies, avoid infinite setState loops.
  - Normalize props (types/defaults) and avoid mutations.

• Testing:
  - Unit: conditional rendering, callbacks, formatting helpers.
  - Integration: user journeys (navigation, slider, contact submission, anchors).

6.4 Technical choices (rationale)

• React DevTools to understand real-time state changes in the Slider/dynamic sections.

• Jest + React Testing Library: user-focused tests, less coupled to implementation details.

• Lightweight BDD (Given/When/Then) in the QA checklist to align business ↔ engineering.

6.5 Main flows

• Visitor: lands → browses sections via nav → interacts (slider, CTA) → contact form.

• Internal admin: checks mobile/desktop responsiveness, correct anchors, no console errors.

• QA: runs the test suite, compares results with the QA checklist, validates the release.

6.6 Tests & quality

• Targets:
  - Slider: slide changes, loop edges, index display, focus/keyboard.

  • Navigation: anchor links, active highlight, back-to-top.

  • Form: validation (required/format), states (loading/success/error).

  • Responsive: mobile/tablet/desktop breakpoints.

• Criteria: 0 failed tests, 0 console errors, smooth core UX, baseline accessibility OK.

7. Analysis

• Instability mostly came from approximate state handling (Slider indices, effect dependencies) and incomplete validations (form).

• Testing before/after each fix (red → green) secured behavior and prevented regressions.

8. Technical decisions

• Tools: React DevTools, Chrome DevTools, Jest, React Testing Library, ESLint/Prettier.

• Practices: clear component boundaries, immutable props, well-scoped hooks, usage-oriented tests.

9. Resolution logic

• Set up env → audit issues/tests → reproduce + red test → fix → green test → a11y/responsive review → complete QA checklist → prep presentation.

10. Stack used

• Tech: React 18+, Hooks/Context, Yarn, Node ≥ 16.14.2.

• Testing: Jest, React Testing Library, jest-dom, user-event.

• Quality: ESLint, Prettier, Husky (optional pre-commit).

11. Final outcome

• Stable 724events one‑page site with no blocking bugs, smooth navigation and responsive layout.

• Green test suite (unit + integration) covering critical journeys.

• Complete QA checklist/test plan and presentation outline ready, making production release and demonstration easier.