Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
85 commits
Select commit Hold shift + click to select a range
2326338
Initial QA deployment
Dec 5, 2025
7bdd435
Activate QA branch on Vercel
Dec 9, 2025
125ef79
Fix CORS preview
Dec 9, 2025
569be33
Fix CORS preview v2
Dec 9, 2025
23c5765
docs: add release badge to README
Dec 13, 2025
dc2e0b9
Merge pull request #1 from Bond52/feature/local-testing
Bond52 Dec 13, 2025
9a5b794
ci: setup automated tests and QA-ready features
Dec 20, 2025
3268a02
test: skip MongoDB connection in CI environment
Dec 20, 2025
b1697a0
test: remove MongoDB dependency from products endpoint test
Dec 20, 2025
43cb03f
docs: restore API routes comments (no functional change)
Dec 20, 2025
39188a3
Merge pull request #25 from Bond52/feature/projectsearch
Bond52 Dec 20, 2025
aa43af2
docs: sync documentation from main to qa
Jan 2, 2026
ac0f01e
Fix menu display on mobile + Home page refactor
Jan 3, 2026
209632d
Merge pull request #47 from Bond52/feature/qa-homepage-figma
Bond52 Jan 3, 2026
d88cc4c
Add Agent Developer Context documentation
Jan 22, 2026
d10a41d
Merge pull request #49 from Bond52/feature/agent-developer-context
Bond52 Jan 22, 2026
d2f918c
docs(ba): add Business Analysis information management approach
Jan 26, 2026
368a73c
Enhance Jest configuration and CI setup; update MongoDB connection lo…
Jan 28, 2026
8109d3f
Update README and CONTRIBUTING documentation for clarity and organiza…
Jan 28, 2026
d4c9158
Refactor environment variable handling and improve testing instructio…
Jan 28, 2026
0bbe5b5
Update package-lock.json files to add new dependencies and update exi…
Jan 28, 2026
9e75627
Merge pull request #54 from Bond52/feature/agent-developer-context
Bond52 Jan 28, 2026
5ef1f32
docs(pages): publish JSDoc and Swagger UI to GitHub Pages
Jan 30, 2026
f0b36a3
Merge pull request #57 from Bond52/feature/docs-github-pages
Bond52 Jan 30, 2026
036232a
ci(pages): fix permissions and enable GitHub Pages deployment
Jan 30, 2026
133d70d
Merge branch 'main' into qa
Bond52 Jan 30, 2026
58baba6
docs(ba): add Business Analysis information management approach
Jan 26, 2026
1c53bbf
docs: clean and standardize README
Jan 2, 2026
f16198a
ci(docs): split QA validation and prod GitHub Pages publishing
Jan 30, 2026
c5cf036
Merge pull request #59 from Bond52/feature/docs-github-pages
Bond52 Jan 30, 2026
0c9c341
Update contact email in Code of Conduct
Bond52 Feb 5, 2026
fd9c320
docs: add PESTLE, market analysis, glossary, API docs, and funding co…
Feb 5, 2026
82adda4
docs: add stakeholder matrix (Excel artifact)
Feb 6, 2026
ee4b3dd
docs: publish context analysis and glossary via GitHub Pages (QA)
Feb 6, 2026
2cc5a57
ci: enable GitHub Pages deployment from qa branch
Feb 6, 2026
a21aab6
ci(docs): validate API and business documentation on qa
Feb 6, 2026
6160691
docs(context): finalize PESTLE and glossary content for QA review
Feb 6, 2026
6548fd1
chore: update funding configuration
Feb 7, 2026
0c64eb1
docs(context): update stakeholder matrix (Excel artifact)
Feb 7, 2026
06e84a2
docs: add strategic analysis QA dashboard
Feb 21, 2026
ae79f0b
docs: add supplier requirements (docx + md)
Mar 22, 2026
3777562
Add structured requirement templates (BR/FR/NFR)
Mar 27, 2026
32a4394
Fix NFR template display
Mar 27, 2026
5af17ab
feat(qa): refine test case template and align with project fields
Mar 27, 2026
2b2d4ee
feat(templates): improve task template structure
Mar 27, 2026
8a7e215
docs: add test plan and requirements for add-supplier feature
Apr 6, 2026
214a641
feat(api): add new endpoint for suppliers with magic link functionality
Apr 11, 2026
a5b0227
feat(api): implement validation for supplier magic link endpoint
Apr 12, 2026
dff7996
feat(api): enhance validation logic for supplier magic link endpoint
Apr 12, 2026
d76a312
feat(api): further refine validation logic for supplier magic link en…
Apr 12, 2026
9ec66e3
feat(api): implement retry logic for email sending in EmailService
May 2, 2026
bdf048e
Remove outdated test files and Jest setup; update package-lock.json w…
May 2, 2026
a8a2a72
fix(frontend): resolve Category type issue in SupplierForm
May 2, 2026
b614d46
Merge pull request #199 from Bond52/feature/add-supplier
Bond52 May 2, 2026
ed76b39
fix(email): disable Brevo tracking for magic link activation
May 2, 2026
ced8024
refactor(email): replace hardcoded magic link URL with utility functi…
May 23, 2026
c4adf9a
fix(email): update email template for magic link notifications to imp…
May 23, 2026
3dee3f6
Merge pull request #211 from Bond52/feature/add-supplier
Bond52 May 23, 2026
91f91b2
fix(email): enhance magic link notification template for better user …
May 23, 2026
ac5a916
Merge pull request #213 from Bond52/feature/add-supplier
Bond52 May 23, 2026
03961d3
feat(frontend): add /supplier/activate page for magic-link onboarding
May 23, 2026
f01a97a
Merge pull request #216 from Bond52/feature/add-supplier
Bond52 May 23, 2026
64685f8
feat(i18n): implement English and French localization support
Jun 2, 2026
1216c55
test(e2e): make supplier tests localization-safe
Jun 2, 2026
340899a
Merge pull request #222 from Bond52/feature/i18n-support
Bond52 Jun 3, 2026
c03ecd7
feat(i18n): add language switcher to header
Jun 3, 2026
9633ae8
Merge pull request #223 from Bond52/feature/language-switcher
Bond52 Jun 3, 2026
aae6209
fix(supplier): require at least one category
Jun 5, 2026
3b201d3
Merge pull request #224 from Bond52/feature/language-switcher
Bond52 Jun 5, 2026
83ddce0
feat(marketplace): add supplier onboarding CTA
Jun 5, 2026
269f4e5
Merge pull request #225 from Bond52/feature/add-supplier
Bond52 Jun 5, 2026
71e2a5e
chore(security): upgrade Next.js to 13.5.11
Jun 5, 2026
2edf13f
Merge pull request #226 from Bond52/chore/nextjs-security-upgrade
Bond52 Jun 5, 2026
d6683f7
feat: add Terms of Use page
Jun 22, 2026
ecb89bb
Merge pull request #246 from Bond52/feature/terms-of-use
Bond52 Jun 22, 2026
5291cc3
feat: add privacy policy page
Jun 22, 2026
3f0b5e2
Merge pull request #247 from Bond52/feature/privacy-policy
Bond52 Jun 22, 2026
c369bf1
feat: add bilingual support for terms and privacy pages
Jun 23, 2026
1058383
Merge pull request #248 from Bond52/feature/legal-pages-i18n
Bond52 Jun 23, 2026
a685bd1
feat: add bilingual support and update legal contact email
Jun 23, 2026
5e5315e
Merge pull request #249 from Bond52/feature/legal-pages-i18n
Bond52 Jun 23, 2026
6be9d8d
feat: add bilingual mission page
Jun 29, 2026
cf04e65
Merge pull request #251 from Bond52/feature/mission-page
Bond52 Jun 29, 2026
47f59ef
docs: remove Canada reference from mission page
Jun 29, 2026
2927657
Merge pull request #252 from Bond52/feature/mission-page
Bond52 Jun 29, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .eslintrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"extends": "next/core-web-vitals"
}
3 changes: 3 additions & 0 deletions .github/FUNDING.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
github: Bond52
ko_fi: bond52

32 changes: 17 additions & 15 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -1,21 +1,23 @@
---
name: πŸ› Bug Report
about: Signaler un bug dans Sawaka
name: Bug report
about: Report a bug
title: "[BUG] "
labels: ["bug"]
---

# πŸ› Description du bug
Décrivez clairement le problème rencontré.
### Description
What is the bug?

## πŸ” Γ‰tapes pour reproduire
1. …
2. …
3. …
### Steps to Reproduce
1. ...
2. ...

## βœ” Comportement attendu
DΓ©crivez ce qui aurait dΓ» se produire.
### Expected Behavior
...

## πŸ–₯️ Environnement
- OS :
- Navigateur :
- Version backend :
- Version frontend :
### Actual Behavior
...

### Definition of Done
- [ ] Bug fixed
- [ ] Regression tested
1 change: 1 addition & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
blank_issues_enabled: false
43 changes: 43 additions & 0 deletions .github/ISSUE_TEMPLATE/requirement-business.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
name: "Requirement β€” Business"
description: "Define a business-level requirement"
title: "BR β€” "
labels: ["requirement", "business"]
body:
- type: textarea
id: description
attributes:
label: Description
placeholder: Describe the business need
validations:
required: true

- type: textarea
id: business_objective
attributes:
label: Business Objective
placeholder: What business goal does this support?
validations:
required: true

- type: textarea
id: expected_outcome
attributes:
label: Expected Outcome
placeholder: What value should be delivered?
validations:
required: true

- type: dropdown
id: priority
attributes:
label: Priority
options:
- High
- Medium
- Low

- type: textarea
id: relationships
attributes:
label: Relationships
placeholder: Parent / Derived from / Related to
53 changes: 53 additions & 0 deletions .github/ISSUE_TEMPLATE/requirement-functional.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
name: "Requirement β€” Functional"
description: "Define a functional requirement"
title: "FR β€” "
labels: ["requirement", "functional"]
body:
- type: textarea
id: description
attributes:
label: Description
placeholder: Describe the feature behavior
validations:
required: true

- type: textarea
id: business_intent
attributes:
label: Business Intent
placeholder: Why is this needed?
validations:
required: true

- type: textarea
id: expected_outcome
attributes:
label: Expected Outcome
placeholder: What should happen?
validations:
required: true

- type: textarea
id: acceptance
attributes:
label: Acceptance Criteria
placeholder: |
- [ ] Criteria 1
- [ ] Criteria 2
validations:
required: true

- type: dropdown
id: priority
attributes:
label: Priority
options:
- High
- Medium
- Low

- type: textarea
id: relationships
attributes:
label: Relationships
placeholder: Parent / Derived from / Related to
43 changes: 43 additions & 0 deletions .github/ISSUE_TEMPLATE/requirement-nfr.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
name: "Requirement β€” Non-Functional"
description: "Define a non-functional requirement (performance, security, reliability...)"
title: "NFR - "
labels: ["requirement", "nfr"]
body:
- type: textarea
id: description
attributes:
label: Description
placeholder: Describe the requirement clearly
validations:
required: true

- type: textarea
id: objective
attributes:
label: Objective
placeholder: What is the goal of this requirement?
validations:
required: true

- type: textarea
id: metric
attributes:
label: Success Metric
placeholder: Example: β‰₯ 95% delivery success rate
validations:
required: true

- type: dropdown
id: priority
attributes:
label: Priority
options:
- High
- Medium
- Low

- type: textarea
id: relationships
attributes:
label: Relationships
placeholder: Parent / Derived from / Related to
17 changes: 17 additions & 0 deletions .github/ISSUE_TEMPLATE/task.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
## Description
What needs to be done and why.

## Scope
- [ ] Define scope item 1
- [ ] Define scope item 2

## Technical Notes
Implementation details (UI / API / Backend / Infra)

## Dependencies
- Related issues / requirements / blockers

## Definition of Done
- [ ] Implementation completed
- [ ] Code reviewed
- [ ] Tested
36 changes: 36 additions & 0 deletions .github/ISSUE_TEMPLATE/test-case.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
name: "Test Case"
description: "Define a test case for validation"
title: "TC - "
labels: ["test-case"]

body:
- type: textarea
id: description
attributes:
label: Description
placeholder: Describe the test case clearly
validations:
required: true

- type: textarea
id: steps
attributes:
label: Test Steps
placeholder: Step-by-step execution

- type: textarea
id: expected
attributes:
label: Expected Results

- type: textarea
id: test_data
attributes:
label: Test Data
placeholder: Input values used in the test

- type: textarea
id: notes
attributes:
label: Notes
placeholder: Optional remarks / edge cases
21 changes: 21 additions & 0 deletions .github/ISSUE_TEMPLATE/user_story.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
---
name: User Story
about: Create a user story
title: "[US] "
labels: ["user story"]
assignees: ""
---

### User Story
As a user, I want to ... so that ...

### Acceptance Criteria
- Given ...
- When ...
- Then ...

### Definition of Done
- [ ] Acceptance criteria met
- [ ] Tested in QA
- [ ] No critical bugs
- [ ] Documentation updated (if needed)
92 changes: 92 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
name: Sawaka CI

on:
push:
branches: [main, qa]
pull_request:
branches: [main, qa]

jobs:
ci:
runs-on: ubuntu-latest

services:
mongo:
image: mongo:6
ports:
- 27017:27017
options: >-
--health-cmd "mongosh --eval 'db.runCommand({ ping: 1 })'"
--health-interval 10s
--health-timeout 5s
--health-retries 5

env:
NODE_ENV: test
CI: "true"
MONGO_URI: mongodb://localhost:27017/sawaka_test
JWT_SECRET: ci-dummy-secret-do-not-use-in-prod
FRONTEND_URL: http://localhost:3000

steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "18"
cache: "npm"

- name: Install frontend dependencies
run: npm ci

# ==================================================
# Backend β€” Jest
# ==================================================
- name: Install backend dependencies
working-directory: backend-api
run: npm ci

- name: Run backend tests (Jest)
working-directory: backend-api
run: npm test

# ==================================================
# API β€” Newman (server must be running)
# ==================================================
- name: Start API, wait, then run Newman
run: |
(cd backend-api && node index.js) &
npx wait-on -t 30000 http://localhost:5000/
npx newman run tests/api/postman/sawaka.postman_collection.json \
-e tests/api/postman/sawaka.postman_environment.json \
--delay-request 100

# ==================================================
# Frontend β€” lint, build
# ==================================================
- name: Lint
run: npm run lint

- name: Build
run: npm run build

# ==================================================
# Frontend β€” Playwright (app must be running)
# ==================================================
- name: Install Playwright browsers
run: npx playwright install --with-deps

- name: Start Next.js, wait, then run Playwright
run: |
npm run start &
npx wait-on -t 60000 http://localhost:3000/
npx playwright test

# ==================================================
# Docs generation
# ==================================================
- name: Generate documentation
working-directory: backend-api
run: npm run docs:generate
Loading
Loading