Compare commits
12
Commits
main
...
758922f5c4
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
758922f5c4 | ||
|
|
c4d3c6ea9e | ||
|
|
5d93e87771 | ||
|
|
c68a43449f | ||
|
|
02e1483087 | ||
|
|
36ab46b9d1 | ||
|
|
155cf783ae | ||
|
|
6dc8444139 | ||
|
|
d0e727f107 | ||
|
|
d8868bd6b6 | ||
|
|
f4eccacbc2 | ||
|
|
a71366ec9f |
@@ -15,6 +15,4 @@ lib/zxcvbn-php-master/vendor/sebastian/
|
||||
# custom files
|
||||
notes/
|
||||
docs/
|
||||
.claude/
|
||||
SESSION.php
|
||||
sdlc/
|
||||
|
||||
Executable
+32
@@ -0,0 +1,32 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)"
|
||||
ROOT_DIR="$(cd -- "$SCRIPT_DIR/.." && pwd)"
|
||||
TOOL_DIR="$SCRIPT_DIR/sdlc-delivery"
|
||||
SOURCE_DIR="$ROOT_DIR/sdlc"
|
||||
DELIVERY_ROOT="$ROOT_DIR/sdlc-delivery"
|
||||
STAGING_DIR="$ROOT_DIR/.sdlc-delivery.staging"
|
||||
|
||||
if [[ ! -d "$TOOL_DIR/node_modules/playwright" ]]; then
|
||||
echo "Installing the local PDF renderer..."
|
||||
npm install --prefix "$TOOL_DIR"
|
||||
npx --prefix "$TOOL_DIR" playwright install chromium
|
||||
fi
|
||||
|
||||
rm -rf "$STAGING_DIR"
|
||||
mkdir -p "$STAGING_DIR"
|
||||
|
||||
while IFS= read -r -d '' source; do
|
||||
relative="${source#"$ROOT_DIR/sdlc/"}"
|
||||
destination="$STAGING_DIR/${relative%.md}.pdf"
|
||||
echo "Rendering ${relative%.md}.pdf"
|
||||
node "$TOOL_DIR/render-sdlc.mjs" "$source" "$destination"
|
||||
done < <(find "$SOURCE_DIR" -type f -name '*.md' -print0 | sort -z)
|
||||
|
||||
echo "Verifying staged delivery package..."
|
||||
"$SCRIPT_DIR/verify-sdlc-delivery.sh" "$STAGING_DIR"
|
||||
|
||||
rm -rf "$DELIVERY_ROOT"
|
||||
mv "$STAGING_DIR" "$DELIVERY_ROOT"
|
||||
echo "Delivery and verification passed: $DELIVERY_ROOT"
|
||||
Binary file not shown.
@@ -0,0 +1,7 @@
|
||||
<table class="document-control">
|
||||
<tbody>
|
||||
<tr><th>Document</th><td>{{documentType}}</td><th>Release</th><td>{{release}}</td></tr>
|
||||
<tr><th>Project</th><td>{{projectName}}</td><th>Project code</th><td>{{projectCode}}</td></tr>
|
||||
<tr><th>Project period</th><td colspan="3">{{projectPeriod}}</td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
@@ -0,0 +1,4 @@
|
||||
<div style="border-top:1.5pt solid #1f2933; color:#52606d; display:flex; font-family:'BRN Thai',Arial,sans-serif; font-size:8pt; justify-content:space-between; margin:0 16mm; padding-top:2.5mm; width:calc(100% - 32mm);">
|
||||
<span>ISO/IEC 29110-4-1:2018</span>
|
||||
<span>{{projectCode}}</span>
|
||||
</div>
|
||||
@@ -0,0 +1,8 @@
|
||||
<header class="document-header">
|
||||
<img class="document-header__logo" src="{{logoPath}}" alt="B.R.N. Enterprise Co., Ltd.">
|
||||
<div class="document-header__company">
|
||||
<p class="document-header__company-name">B.R.N. ENTERPRISE CO., LTD.</p>
|
||||
<p class="document-header__address">1011 Supalai Grand Tower, 7th Floor, Unit 6-7, Rama 3 Road, Chongnonsi, Yannawa, Bangkok 10120<br>Tel. (+66) 2687 0250 Fax. (+66) 2687 0255</p>
|
||||
</div>
|
||||
<div class="document-header__title">{{documentTitle}}</div>
|
||||
</header>
|
||||
@@ -0,0 +1,37 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>SDLC delivery theme preview</title>
|
||||
<link rel="stylesheet" href="sdlc-delivery.css">
|
||||
</head>
|
||||
<body>
|
||||
<main class="delivery-document">
|
||||
<header class="document-header">
|
||||
<img class="document-header__logo" src="../../../app/assets/images/logo.png" alt="B.R.N. Enterprise Co., Ltd.">
|
||||
<div class="document-header__company">
|
||||
<p class="document-header__company-name">B.R.N. ENTERPRISE CO., LTD.</p>
|
||||
<p class="document-header__address">1011 Supalai Grand Tower, 7th Floor, Unit 6-7, Rama 3 Road, Chongnonsi, Yannawa, Bangkok 10120<br>Tel. (+66) 2687 0250 Fax. (+66) 2687 0255</p>
|
||||
</div>
|
||||
<div class="document-header__title">Software Project Plan</div>
|
||||
</header>
|
||||
|
||||
<table class="document-control">
|
||||
<tbody>
|
||||
<tr><th>Document</th><td>Software Project Plan</td><th>Release</th><td>05/01/26 V1.0 Final</td></tr>
|
||||
<tr><th>Project</th><td>BRN WMS</td><th>Project code</th><td>200-WMS-26-001-00</td></tr>
|
||||
<tr><th>Project period</th><td colspan="3">05/01/26–24/08/26</td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<h2>Project overview</h2>
|
||||
<p>This preview demonstrates the shared A4 header, document-control table, headings, and standard data tables used by every generated delivery PDF.</p>
|
||||
|
||||
<table>
|
||||
<thead><tr><th>Phase</th><th>Period</th><th>Primary output</th></tr></thead>
|
||||
<tbody><tr><td>Planning</td><td>12/01/26–18/02/26</td><td>Project Plan</td></tr></tbody>
|
||||
</table>
|
||||
</main>
|
||||
<footer class="document-footer"><span>ISO/IEC 29110-4-1:2018</span><span>200-WMS-26-001-00 · 1 / 1</span></footer>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,162 @@
|
||||
@page {
|
||||
size: A4;
|
||||
margin: 18mm 16mm 20mm;
|
||||
}
|
||||
|
||||
:root {
|
||||
--brn-blue: #0789c9;
|
||||
--brn-red: #bd0e2d;
|
||||
--brn-ink: #1f2933;
|
||||
--brn-muted: #52606d;
|
||||
--brn-line: #aab7c4;
|
||||
--brn-pale-blue: #eaf6fc;
|
||||
}
|
||||
|
||||
* { box-sizing: border-box; }
|
||||
|
||||
html, body {
|
||||
color: var(--brn-ink);
|
||||
font-family: "BRN Thai", Arial, sans-serif;
|
||||
font-size: 10.5pt;
|
||||
line-height: 1.45;
|
||||
}
|
||||
|
||||
body { margin: 0; }
|
||||
|
||||
.delivery-document { width: 100%; }
|
||||
|
||||
.document-header {
|
||||
align-items: center;
|
||||
border-bottom: 1.5pt solid var(--brn-blue);
|
||||
display: flex;
|
||||
gap: 9mm;
|
||||
margin: 0 0 7mm;
|
||||
min-height: 22mm;
|
||||
padding: 0 0 3mm;
|
||||
}
|
||||
|
||||
.document-header__logo {
|
||||
flex: 0 0 auto;
|
||||
height: 16mm;
|
||||
object-fit: contain;
|
||||
width: 16mm;
|
||||
}
|
||||
|
||||
.document-header__company { flex: 1; min-width: 0; }
|
||||
|
||||
.document-header__company-name {
|
||||
font-size: 13pt;
|
||||
font-weight: 700;
|
||||
letter-spacing: .03em;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.document-header__address {
|
||||
color: var(--brn-muted);
|
||||
font-size: 7.5pt;
|
||||
line-height: 1.35;
|
||||
margin: 1mm 0 0;
|
||||
}
|
||||
|
||||
.document-header__title {
|
||||
background: var(--brn-blue);
|
||||
color: #fff;
|
||||
font-size: 15pt;
|
||||
font-weight: 500;
|
||||
flex: 0 1 72mm;
|
||||
overflow-wrap: break-word;
|
||||
min-width: 52mm;
|
||||
padding: 4mm 6mm;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.document-control {
|
||||
border-collapse: collapse;
|
||||
margin: 0 0 7mm;
|
||||
page-break-inside: avoid;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.document-control th,
|
||||
.document-control td {
|
||||
border: .5pt solid var(--brn-line);
|
||||
padding: 2mm 3mm;
|
||||
text-align: left;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
.document-control th {
|
||||
background: var(--brn-pale-blue);
|
||||
font-weight: 700;
|
||||
white-space: nowrap;
|
||||
width: 1%;
|
||||
}
|
||||
|
||||
h1, h2, h3 { break-after: avoid; color: var(--brn-ink); }
|
||||
h1 { font-size: 18pt; margin: 0 0 5mm; }
|
||||
h2 { border-left: 4pt solid var(--brn-blue); font-size: 14pt; margin: 6mm 0 3mm; padding-left: 3mm; }
|
||||
h3 { color: var(--brn-blue); font-size: 11.5pt; margin: 4mm 0 2mm; }
|
||||
|
||||
p { margin: 0 0 3mm; }
|
||||
|
||||
ul, ol { margin: 0 0 3.5mm; padding-left: 7mm; }
|
||||
li { margin: 0 0 1mm; }
|
||||
|
||||
code {
|
||||
font-family: "DejaVu Sans Mono", "Courier New", monospace;
|
||||
font-size: .9em;
|
||||
letter-spacing: 0;
|
||||
}
|
||||
|
||||
table:not(.document-control) {
|
||||
border-collapse: collapse;
|
||||
border: .75pt solid #718096;
|
||||
break-inside: auto;
|
||||
font-size: 9pt;
|
||||
margin: 0 0 5mm;
|
||||
table-layout: auto;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
table:not(.document-control) th,
|
||||
table:not(.document-control) td {
|
||||
border: .5pt solid var(--brn-line);
|
||||
break-inside: avoid;
|
||||
overflow-wrap: break-word;
|
||||
padding: 1.6mm 2mm;
|
||||
text-align: left;
|
||||
vertical-align: top;
|
||||
word-break: normal;
|
||||
}
|
||||
|
||||
table:not(.document-control) th { background: var(--brn-pale-blue); font-weight: 700; }
|
||||
|
||||
/* Column alignment carried over from the Markdown separator row. */
|
||||
table:not(.document-control) th.a-right,
|
||||
table:not(.document-control) td.a-right { text-align: right; }
|
||||
table:not(.document-control) th.a-center,
|
||||
table:not(.document-control) td.a-center { text-align: center; }
|
||||
|
||||
/* Short columns (IDs, dates, counts) shrink to their content instead of
|
||||
taking an equal share of the table width. */
|
||||
table:not(.document-control) th.tight,
|
||||
table:not(.document-control) td.tight { white-space: nowrap; width: 1%; }
|
||||
|
||||
thead { display: table-header-group; }
|
||||
tr { break-inside: avoid; }
|
||||
|
||||
.approval-block__person { break-inside: avoid; margin: 0 0 6mm; }
|
||||
.approval-block__person h3 { margin: 0 0 2mm; }
|
||||
|
||||
.approval-block__line {
|
||||
border-bottom: .5pt solid var(--brn-ink);
|
||||
display: inline-block;
|
||||
min-width: 68mm;
|
||||
vertical-align: baseline;
|
||||
}
|
||||
|
||||
.approval-fields {
|
||||
line-height: 1.55;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
Generated
+54
@@ -0,0 +1,54 @@
|
||||
{
|
||||
"name": "brn-wms-sdlc-delivery",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "brn-wms-sdlc-delivery",
|
||||
"dependencies": {
|
||||
"playwright": "1.50.0"
|
||||
}
|
||||
},
|
||||
"node_modules/fsevents": {
|
||||
"version": "2.3.2",
|
||||
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
|
||||
"integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
|
||||
"hasInstallScript": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"darwin"
|
||||
],
|
||||
"engines": {
|
||||
"node": "^8.16.0 || ^10.6.0 || >=11.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/playwright": {
|
||||
"version": "1.50.0",
|
||||
"resolved": "https://registry.npmjs.org/playwright/-/playwright-1.50.0.tgz",
|
||||
"integrity": "sha512-+GinGfGTrd2IfX1TA4N2gNmeIksSb+IAe589ZH+FlmpV3MYTx6+buChGIuDLQwrGNCw2lWibqV50fU510N7S+w==",
|
||||
"dependencies": {
|
||||
"playwright-core": "1.50.0"
|
||||
},
|
||||
"bin": {
|
||||
"playwright": "cli.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"fsevents": "2.3.2"
|
||||
}
|
||||
},
|
||||
"node_modules/playwright-core": {
|
||||
"version": "1.50.0",
|
||||
"resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.50.0.tgz",
|
||||
"integrity": "sha512-CXkSSlr4JaZs2tZHI40DsZUN/NIwgaUPsyLuOAaIZp2CyF2sN5MM5NJsyB188lFSSozFxQ5fPT4qM+f0tH/6wQ==",
|
||||
"bin": {
|
||||
"playwright-core": "cli.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"name": "brn-wms-sdlc-delivery",
|
||||
"private": true,
|
||||
"type": "module",
|
||||
"dependencies": {
|
||||
"playwright": "1.50.0"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,220 @@
|
||||
import fs from 'node:fs/promises';
|
||||
import path from 'node:path';
|
||||
import { fileURLToPath } from 'node:url';
|
||||
import { chromium } from 'playwright';
|
||||
|
||||
const here = path.dirname(fileURLToPath(import.meta.url));
|
||||
const root = path.resolve(here, '../..');
|
||||
const assets = path.join(here, 'assets');
|
||||
|
||||
const escapeHtml = (value) => value
|
||||
.replaceAll('&', '&')
|
||||
.replaceAll('<', '<')
|
||||
.replaceAll('>', '>');
|
||||
|
||||
const renderInline = (value) => escapeHtml(value)
|
||||
.replace(/\*\*(.+?)\*\*/g, '<strong>$1</strong>')
|
||||
.replace(/`([^`]+)`/g, '<code>$1</code>')
|
||||
.replace(/_{3,}/g, '<span class="approval-block__line"></span>')
|
||||
.replace(/\\([\\*_`~])/g, '$1');
|
||||
|
||||
const applyTemplate = (template, values) => template.replace(/{{(\w+)}}/g, (_, key) => values[key] ?? '');
|
||||
|
||||
function isTableLine(line) {
|
||||
return /^\|.*\|\s*$/.test(line.trim());
|
||||
}
|
||||
|
||||
function tableCells(line) {
|
||||
return line.trim().slice(1, -1).split('|').map((cell) => cell.trim());
|
||||
}
|
||||
|
||||
function isSeparator(cells) {
|
||||
return cells.every((cell) => /^:?-{3,}:?$/.test(cell));
|
||||
}
|
||||
|
||||
const TIGHT_COLUMN_MAX = 12;
|
||||
|
||||
function columnAlignment(separatorCells) {
|
||||
return separatorCells.map((cell) => {
|
||||
const left = cell.startsWith(':');
|
||||
const right = cell.endsWith(':');
|
||||
if (left && right) return 'a-center';
|
||||
if (right) return 'a-right';
|
||||
return '';
|
||||
});
|
||||
}
|
||||
|
||||
function renderTable(lines, className = '') {
|
||||
const rows = lines.map(tableCells);
|
||||
const header = rows[0];
|
||||
const hasSeparator = isSeparator(rows[1] ?? []);
|
||||
const align = hasSeparator ? columnAlignment(rows[1]) : header.map(() => '');
|
||||
const data = hasSeparator ? rows.slice(2) : rows.slice(1);
|
||||
|
||||
// A column whose longest cell is short (IDs, dates, counts, statuses) is
|
||||
// marked "tight" so auto table layout shrinks it to its content instead of
|
||||
// handing every column an equal share of the page width.
|
||||
const widest = header.map((_, column) => Math.max(
|
||||
(header[column] ?? '').length,
|
||||
...data.map((row) => (row[column] ?? '').replace(/[`*]/g, '').length)
|
||||
));
|
||||
const classFor = (column) => [
|
||||
align[column] ?? '',
|
||||
widest[column] <= TIGHT_COLUMN_MAX ? 'tight' : ''
|
||||
].filter(Boolean).join(' ');
|
||||
|
||||
const cells = (tag, row) => row.map((cell, column) => {
|
||||
const attr = classFor(column);
|
||||
return `<${tag}${attr ? ` class="${attr}"` : ''}>${renderInline(cell)}</${tag}>`;
|
||||
}).join('');
|
||||
return `<table${className ? ` class="${className}"` : ''}><thead><tr>${cells('th', header)}</tr></thead><tbody>${data.map((row) => `<tr>${cells('td', row)}</tr>`).join('')}</tbody></table>`;
|
||||
}
|
||||
|
||||
function renderParagraph(lines) {
|
||||
return lines.map((line, index) => {
|
||||
const trimmed = line.trimEnd();
|
||||
const hasHardBreak = /\s{2,}$/.test(line);
|
||||
const isApprovalField = /^(Name|Role|Signature|Date|Position|Company|Project roles|Decision):/.test(trimmed);
|
||||
const separator = hasHardBreak || isApprovalField ? '<br>' : (index < lines.length - 1 ? ' ' : '');
|
||||
return `${renderInline(trimmed)}${separator}`;
|
||||
}).join('');
|
||||
}
|
||||
|
||||
function markdownToHtml(markdown) {
|
||||
const lines = markdown.replaceAll('\r\n', '\n').split('\n');
|
||||
const output = [];
|
||||
let index = 0;
|
||||
|
||||
while (index < lines.length) {
|
||||
const line = lines[index];
|
||||
if (!line.trim()) { index += 1; continue; }
|
||||
|
||||
if (isTableLine(line)) {
|
||||
const table = [];
|
||||
while (index < lines.length && isTableLine(lines[index])) table.push(lines[index++]);
|
||||
output.push(renderTable(table));
|
||||
continue;
|
||||
}
|
||||
|
||||
const heading = line.match(/^(#{1,3})\s+(.+)$/);
|
||||
if (heading) {
|
||||
const level = heading[1].length;
|
||||
output.push(`<h${level}>${renderInline(heading[2])}</h${level}>`);
|
||||
index += 1;
|
||||
continue;
|
||||
}
|
||||
|
||||
if (/^[-*]\s+/.test(line)) {
|
||||
const items = [];
|
||||
while (index < lines.length && /^[-*]\s+/.test(lines[index])) items.push(`<li>${renderInline(lines[index++].replace(/^[-*]\s+/, ''))}</li>`);
|
||||
output.push(`<ul>${items.join('')}</ul>`);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (/^\d+\.\s+/.test(line)) {
|
||||
const items = [];
|
||||
while (index < lines.length && /^\d+\.\s+/.test(lines[index])) items.push(`<li>${renderInline(lines[index++].replace(/^\d+\.\s+/, ''))}</li>`);
|
||||
output.push(`<ol>${items.join('')}</ol>`);
|
||||
continue;
|
||||
}
|
||||
|
||||
const paragraph = [];
|
||||
while (index < lines.length && lines[index].trim() && !isTableLine(lines[index]) && !/^(#{1,3})\s+/.test(lines[index]) && !/^[-*]\s+/.test(lines[index]) && !/^\d+\.\s+/.test(lines[index])) paragraph.push(lines[index++]);
|
||||
const isApproval = paragraph.some((line) => /^(Name|Role|Signature|Date|Position|Company|Project roles|Decision):/.test(line.trimEnd()));
|
||||
const html = `<p${isApproval ? ' class="approval-fields"' : ''}>${renderParagraph(paragraph)}</p>`;
|
||||
// Keep a signatory's heading and fields on one page.
|
||||
if (isApproval && /^<h3>/.test(output[output.length - 1] ?? '')) {
|
||||
output.push(`<div class="approval-block__person">${output.pop()}${html}</div>`);
|
||||
} else {
|
||||
output.push(html);
|
||||
}
|
||||
}
|
||||
|
||||
return output.join('\n');
|
||||
}
|
||||
|
||||
function extractDocument(markdown) {
|
||||
const titleMatch = markdown.match(/^#\s+(.+)\n+/m);
|
||||
const title = titleMatch?.[1] ?? 'BRN WMS';
|
||||
const afterTitle = markdown.slice((titleMatch?.index ?? 0) + (titleMatch?.[0].length ?? 0));
|
||||
const lines = afterTitle.split('\n');
|
||||
const metadata = {};
|
||||
let bodyStart = 0;
|
||||
|
||||
for (let index = 0; index < lines.length; index += 1) {
|
||||
if (!isTableLine(lines[index])) continue;
|
||||
|
||||
const table = [];
|
||||
while (index < lines.length && isTableLine(lines[index])) table.push(lines[index++]);
|
||||
const candidate = {};
|
||||
const dataStart = isSeparator(tableCells(table[1] ?? '')) ? 2 : 1;
|
||||
for (const row of table.slice(dataStart).map(tableCells)) {
|
||||
if (row.length >= 2) candidate[row[0]] = row[1];
|
||||
}
|
||||
|
||||
if (candidate.Document && candidate.Project) {
|
||||
Object.assign(metadata, candidate);
|
||||
bodyStart = index;
|
||||
break;
|
||||
}
|
||||
|
||||
index -= 1;
|
||||
}
|
||||
|
||||
return { title, metadata, body: lines.slice(bodyStart).join('\n') };
|
||||
}
|
||||
|
||||
async function main() {
|
||||
const [source, destination] = process.argv.slice(2);
|
||||
if (!source || !destination) throw new Error('Usage: render-sdlc.mjs SOURCE.md DESTINATION.pdf');
|
||||
|
||||
const [markdown, css, headerTemplate, footerTemplate, logo, thaiFont] = await Promise.all([
|
||||
fs.readFile(source, 'utf8'),
|
||||
fs.readFile(path.join(assets, 'sdlc-delivery.css'), 'utf8'),
|
||||
fs.readFile(path.join(assets, 'header.html'), 'utf8'),
|
||||
fs.readFile(path.join(assets, 'footer.html'), 'utf8'),
|
||||
fs.readFile(path.join(root, 'app/assets/images/logo.svg')),
|
||||
fs.readFile(path.join(assets, 'LeelawadeeUI.ttf'))
|
||||
]);
|
||||
const { title, metadata, body } = extractDocument(markdown);
|
||||
const hasWideTable = markdown.split('\n').some((line) => isTableLine(line) && tableCells(line).length >= 8);
|
||||
const isLandscape = metadata.Document === 'Work Schedule' || title === 'Work Schedule' || hasWideTable;
|
||||
const values = {
|
||||
logoPath: `data:image/svg+xml;base64,${logo.toString('base64')}`,
|
||||
documentTitle: title,
|
||||
documentType: metadata.Document ?? title,
|
||||
release: metadata.Release ?? '',
|
||||
projectName: metadata.Project ?? 'BRN WMS',
|
||||
projectCode: metadata['Project code'] ?? '200-WMS-26-001-00',
|
||||
projectPeriod: metadata['Project period'] ?? '05/01/26–24/08/26',
|
||||
pageNumber: '<span class="pageNumber"></span>',
|
||||
totalPages: '<span class="totalPages"></span>'
|
||||
};
|
||||
const control = await fs.readFile(path.join(assets, 'document-control.html'), 'utf8');
|
||||
const pdfFooter = applyTemplate(footerTemplate, values);
|
||||
const fontFace = `@font-face { font-family: "BRN Thai"; src: url(data:font/ttf;base64,${thaiFont.toString('base64')}) format("truetype"); font-weight: 400 700; }`;
|
||||
const pageLayout = isLandscape
|
||||
? '@page { size: A4 landscape; margin: 18mm 16mm 28mm; }'
|
||||
: '';
|
||||
const html = `<!doctype html><html><head><meta charset="utf-8"><style>${fontFace}${css}${pageLayout}</style></head><body><main class="delivery-document">${applyTemplate(headerTemplate, values)}${applyTemplate(control, values)}${markdownToHtml(body)}</main></body></html>`;
|
||||
|
||||
await fs.mkdir(path.dirname(destination), { recursive: true });
|
||||
const browser = await chromium.launch({ headless: true });
|
||||
try {
|
||||
const page = await browser.newPage();
|
||||
await page.setContent(html, { waitUntil: 'networkidle' });
|
||||
await page.pdf({
|
||||
path: destination,
|
||||
format: 'A4',
|
||||
printBackground: true,
|
||||
preferCSSPageSize: true,
|
||||
displayHeaderFooter: true,
|
||||
headerTemplate: '<div></div>',
|
||||
footerTemplate: pdfFooter
|
||||
});
|
||||
} finally {
|
||||
await browser.close();
|
||||
}
|
||||
}
|
||||
|
||||
main().catch((error) => { console.error(error); process.exit(1); });
|
||||
@@ -0,0 +1,91 @@
|
||||
import { execFile } from 'node:child_process';
|
||||
import fs from 'node:fs/promises';
|
||||
import path from 'node:path';
|
||||
import { promisify } from 'node:util';
|
||||
|
||||
const execFileAsync = promisify(execFile);
|
||||
|
||||
function isTableLine(line) {
|
||||
return /^\|.*\|\s*$/.test(line.trim());
|
||||
}
|
||||
|
||||
function tableCells(line) {
|
||||
return line.trim().slice(1, -1).split('|').map((cell) => cell.trim());
|
||||
}
|
||||
|
||||
function isSeparator(cells) {
|
||||
return cells.every((cell) => /^:?-{3,}:?$/.test(cell));
|
||||
}
|
||||
|
||||
function extractDocumentContent(markdown) {
|
||||
const titleMatch = markdown.match(/^#\s+.+\n+/m);
|
||||
const afterTitle = markdown.slice((titleMatch?.index ?? 0) + (titleMatch?.[0].length ?? 0));
|
||||
const lines = afterTitle.split('\n');
|
||||
|
||||
for (let index = 0; index < lines.length; index += 1) {
|
||||
if (!isTableLine(lines[index])) continue;
|
||||
const table = [];
|
||||
while (index < lines.length && isTableLine(lines[index])) table.push(lines[index++]);
|
||||
const dataStart = isSeparator(tableCells(table[1] ?? '')) ? 2 : 1;
|
||||
const fields = Object.fromEntries(table.slice(dataStart).map(tableCells).filter((row) => row.length >= 2));
|
||||
if (fields.Document && fields.Project) return { body: lines.slice(index).join('\n'), fields };
|
||||
index -= 1;
|
||||
}
|
||||
|
||||
return { body: afterTitle, fields: {} };
|
||||
}
|
||||
|
||||
function words(text) {
|
||||
return new Set((text.normalize('NFC').toLocaleLowerCase().match(/[\p{L}\p{N}]+/gu) ?? []));
|
||||
}
|
||||
|
||||
function compact(text) {
|
||||
return text.normalize('NFC').toLocaleLowerCase().replace(/[^\p{L}\p{N}]/gu, '');
|
||||
}
|
||||
|
||||
async function markdownFiles(directory) {
|
||||
const entries = await fs.readdir(directory, { withFileTypes: true });
|
||||
const results = await Promise.all(entries.map(async (entry) => {
|
||||
const target = path.join(directory, entry.name);
|
||||
if (entry.isDirectory()) return markdownFiles(target);
|
||||
return entry.isFile() && entry.name.endsWith('.md') ? [target] : [];
|
||||
}));
|
||||
return results.flat();
|
||||
}
|
||||
|
||||
async function pdfText(pdf) {
|
||||
const { stdout } = await execFileAsync('pdftotext', [pdf, '-'], { maxBuffer: 32 * 1024 * 1024 });
|
||||
return stdout;
|
||||
}
|
||||
|
||||
async function main() {
|
||||
const [sourceRoot, deliveryRoot] = process.argv.slice(2);
|
||||
if (!sourceRoot || !deliveryRoot) throw new Error('Usage: verify-content.mjs SOURCE_DIRECTORY DELIVERY_DIRECTORY');
|
||||
|
||||
const sources = (await markdownFiles(sourceRoot)).sort();
|
||||
const failures = [];
|
||||
|
||||
for (const source of sources) {
|
||||
const relative = path.relative(sourceRoot, source);
|
||||
const pdf = path.join(deliveryRoot, relative.replace(/\.md$/, '.pdf'));
|
||||
const [markdown, extracted] = await Promise.all([fs.readFile(source, 'utf8'), pdfText(pdf)]);
|
||||
const { body, fields } = extractDocumentContent(markdown);
|
||||
const controlText = ['Document', 'Project', 'Project code', 'Project period', 'Release']
|
||||
.map((field) => fields[field] ?? '')
|
||||
.join('\n');
|
||||
const expected = words(`${body}\n${controlText}`);
|
||||
const actual = compact(extracted);
|
||||
const missing = [...expected].filter((word) => !actual.includes(word));
|
||||
if (missing.length) failures.push(`${relative}: missing ${missing.slice(0, 12).join(', ')}${missing.length > 12 ? ', …' : ''}`);
|
||||
}
|
||||
|
||||
if (failures.length) {
|
||||
console.error(`Content coverage failed for ${failures.length}/${sources.length} PDFs:`);
|
||||
failures.forEach((failure) => console.error(`- ${failure}`));
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
console.log(`Content coverage passed: ${sources.length}/${sources.length} PDFs.`);
|
||||
}
|
||||
|
||||
main().catch((error) => { console.error(error); process.exit(1); });
|
||||
Executable
+28
@@ -0,0 +1,28 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)"
|
||||
ROOT_DIR="$(cd -- "$SCRIPT_DIR/.." && pwd)"
|
||||
SOURCE_DIR="$ROOT_DIR/sdlc"
|
||||
TOOL_DIR="$SCRIPT_DIR/sdlc-delivery"
|
||||
PACKAGE_DIR="$(realpath -m "${1:-$ROOT_DIR/sdlc-delivery}")"
|
||||
|
||||
[[ -d "$PACKAGE_DIR" ]] || { echo "Delivery package not found: $PACKAGE_DIR" >&2; exit 2; }
|
||||
|
||||
expected="$(find "$SOURCE_DIR" -type f -name '*.md' | wc -l | tr -d ' ')"
|
||||
produced="$(find "$PACKAGE_DIR" -type f -name '*.pdf' | wc -l | tr -d ' ')"
|
||||
[[ "$expected" == "$produced" ]] || { echo "Expected $expected PDFs, found $produced." >&2; exit 1; }
|
||||
|
||||
node "$TOOL_DIR/verify-content.mjs" "$SOURCE_DIR" "$PACKAGE_DIR"
|
||||
|
||||
format_errors=0
|
||||
while IFS= read -r -d '' pdf; do
|
||||
page_size="$(pdfinfo "$pdf" | awk -F': *' '/^Page size/ {print $2}')"
|
||||
case "$page_size" in
|
||||
'594.96 x 841.92 pts (A4)'|'841.92 x 594.96 pts (A4)') ;;
|
||||
*) echo "Non-A4 PDF: $pdf ($page_size)" >&2; format_errors=$((format_errors + 1));;
|
||||
esac
|
||||
done < <(find "$PACKAGE_DIR" -type f -name '*.pdf' -print0 | sort -z)
|
||||
|
||||
[[ "$format_errors" == 0 ]] || exit 1
|
||||
echo "Format verification passed: $produced PDFs use A4 portrait or landscape."
|
||||
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
+100
@@ -0,0 +1,100 @@
|
||||
# Statement of Work
|
||||
|
||||
**B.R.N. ENTERPRISE CO., LTD.**
|
||||
1011 Supalai Grand Tower, 7th Floor, Unit 6-7, Rama 3 Road,
|
||||
Chongnonsi, Yannawa, Bangkok 10120
|
||||
|
||||
| Document field | Value |
|
||||
|---|---|
|
||||
| Document | Statement of Work |
|
||||
| Project | BRN WMS |
|
||||
| Project code | 200-WMS-26-001-00 |
|
||||
| Project name | Warehouse Management System Development Project |
|
||||
| Project period | 05/01/26–24/08/26 |
|
||||
| Release | 05/01/26 V1.0 Final |
|
||||
| Status | Final — ready for authorized approval |
|
||||
|
||||
Date 05/01/26
|
||||
|
||||
**Subject:** Scope of work for the Warehouse Management System Development Project
|
||||
|
||||
**To:** Executives and project stakeholders
|
||||
|
||||
B.R.N. Enterprise Co., Ltd. intends to carry out the Warehouse Management System Development Project to increase the accuracy and speed of warehouse operations, enabling systematic tracking of inventory, product movements, purchase orders, business documents, and related accounting data, using centralized data and access rights defined by user role.
|
||||
|
||||
This document defines the project's scope, deliverables, acceptance criteria, responsibilities, and timeline in accordance with ISO/IEC 29110, with details as follows.
|
||||
|
||||
## 1. Objectives
|
||||
|
||||
- Develop a web-based system for inventory control and multi-warehouse operations.
|
||||
- Support receiving, issuing, transfers, adjustments, and stock verification, with tracking of Lot, Serial Number, and expiry date.
|
||||
- Reduce errors from manual work and increase traceability.
|
||||
- Support management of purchase orders, procurement, product returns, invoices, reports, and related accounting entries.
|
||||
- Provide security, per-company data separation, access rights management, and real-time notifications.
|
||||
|
||||
## 2. Scope of Work
|
||||
|
||||
### 2.1 Analysis and Design
|
||||
|
||||
- Gather and analyze user requirements; define workflows, data, and business rules.
|
||||
- Design system architecture, database, user interface, service integrations, and security measures.
|
||||
|
||||
### 2.2 System Development
|
||||
|
||||
- Master data: companies, users, contacts, products, warehouses, zones, aisles, storage locations, and units of measure.
|
||||
- Inventory: receiving, issuing, transfers, stock adjustments, stock counts, balances, and movement history.
|
||||
- Business documents: Sales Order, Purchase Order, Return, Invoice, and document numbering sequences.
|
||||
- Finance and accounting: income, expenses, journals, accounting entries, and system-supported reports.
|
||||
- Dashboard, reports, data export, Barcode/Label, and file attachments.
|
||||
- Authentication, role assignment (Owner/Admin/Staff/Viewer), per-company data restriction, and session control.
|
||||
- Real-time notification services and scheduled jobs using Node.js/Socket.IO.
|
||||
|
||||
### 2.3 Testing and Delivery
|
||||
|
||||
- Prepare and execute tests against requirements, record results, fix defects, and perform confirmation testing.
|
||||
- Prepare user manuals, installation/operation manuals, and maintenance documentation.
|
||||
- Prepare verification, validation, and acceptance evidence.
|
||||
|
||||
## 3. Deliverables
|
||||
|
||||
Deliverables consist of the software, source code, installation and database scripts, configuration, manuals, and Work Products of the Project Management and Software Implementation processes under ISO/IEC 29110, totaling 22 items, stored in the Project Repository under version control.
|
||||
|
||||
## 4. Exclusions and Assumptions
|
||||
|
||||
- Excludes procurement of servers, network equipment, barcode scanners, or third-party services, unless separately approved.
|
||||
- Migration of existing data, ERP/external service integrations, and customizations outside the scope must go through the Change Request process.
|
||||
- Stakeholders must provide information, review documents, and participate in testing/acceptance as scheduled.
|
||||
|
||||
## 5. Plan and Milestones
|
||||
|
||||
- Project initiation and planning: 05/01/26–18/02/26
|
||||
- Internal development and testing: 19/02/26–29/05/26
|
||||
- Acceptance testing, documentation, delivery, and stabilization: 30/05/26–24/08/26
|
||||
- Official project completion date: 24/08/26
|
||||
|
||||
## 6. Acceptance Criteria
|
||||
|
||||
- In-scope functions pass Test Cases and are linked to requirements in the Traceability Record.
|
||||
- Critical defects that block usage are resolved, or an approach accepted by the authorized approver is in place.
|
||||
- Installation, user, operation, and maintenance documentation are available.
|
||||
- Verification, Validation, and Acceptance results are reviewed and signed off by the authorized approver.
|
||||
|
||||
## 7. Change Management
|
||||
|
||||
Changes to scope, schedule, or deliverables must be recorded in the Change Report, assessed for impact, and approved before implementation. Defect corrections must be recorded in the Correction Register and linked to the relevant test evidence.
|
||||
|
||||
This Statement of Work has therefore been prepared to serve as the framework for the project's execution, and stakeholders are requested to review and approve it within their authority.
|
||||
|
||||
## 8. Approval
|
||||
|
||||
**Name:** Seri Viriyasakultorn
|
||||
|
||||
**Project roles:** Project Sponsor / Customer Representative / Authorized Approver
|
||||
|
||||
**Position:** Managing Director
|
||||
|
||||
**Company:** B.R.N. Enterprise Co., Ltd.
|
||||
|
||||
**Signature:** ______________________________________________
|
||||
|
||||
**Date:** ___________________________________________________
|
||||
+75
@@ -0,0 +1,75 @@
|
||||
# Project Repository (Backup)
|
||||
|
||||
| Document field | Value |
|
||||
|---|---|
|
||||
| Document | Project Repository (Backup) |
|
||||
| Project | BRN WMS |
|
||||
| Project code | 200-WMS-26-001-00 |
|
||||
| Title | Project Repository Backup Record |
|
||||
| Project period | 05/01/26–24/08/26 |
|
||||
| Release | 17/08/26 V1.0 |
|
||||
| Closure status date | 24/08/26 |
|
||||
| Standard | ISO/IEC 29110 Basic Profile |
|
||||
| System Analyst | Noppong Chareunsook |
|
||||
| Developer | Thanakorn Sathitwitayakul |
|
||||
| Project Manager | Apirach Supattaratpateep |
|
||||
| Project Sponsor / Customer Representative | Seri Viriyasakultorn |
|
||||
| Status | Final |
|
||||
|
||||
## 1. Purpose
|
||||
|
||||
This record identifies the backup mechanisms protecting BRN WMS source code and SDLC work products against loss of the primary repository, per the Project Repository record (Section 2).
|
||||
|
||||
## 2. Code backup
|
||||
|
||||
| Field | Value |
|
||||
|---|---|
|
||||
| Backup mechanism | Secondary Git remote |
|
||||
| Backup remote name | `backup` |
|
||||
| Backup remote URL | `git@github.com:thanakorninbox-dev/wms-app.git` |
|
||||
| Configuration | Secondary remote mirrors the delivered software baseline from `origin/main`; SDLC sources and the generated package are controlled on the documentation delivery branch `sdlc`. |
|
||||
| Sync status | Delivered software baseline `6c39700` confirmed on both `origin/main` and `backup/main`; the final controlled `sdlc` branch and release tag `sdlc-v1.0-final` were synchronized to the backup remote and checked by remote-reference retrieval. |
|
||||
| Restoration check | Performed manually by the Developer and confirmed successful. Carried out outside version control, so no Git artefact records it. |
|
||||
|
||||
## 3. Document backup
|
||||
|
||||
| Field | Value |
|
||||
|---|---|
|
||||
| Backup mechanism | Generated PDF package controlled in Git and included in the project backup process |
|
||||
| Location | `sdlc-delivery/` in the repository, generated from `sdlc/` by `scripts/build-sdlc-delivery.sh` |
|
||||
| Contents | 46 PDFs covering the PM, SI, and Other Document work products, including all 4 Meeting Records |
|
||||
| Verification | Verified as non-empty and readable |
|
||||
|
||||
## 4. Backup verification items
|
||||
|
||||
| ID | Item | Owner | Required before |
|
||||
|---|---|---|---|
|
||||
| BK-001 | Confirm the `backup` remote is reachable and contains the delivered software baseline from `origin/main`. | Developer | **Closed** — baseline `6c39700` confirmed by the Developer |
|
||||
| BK-002 | Perform and record a restoration check (clone from `backup` and verify integrity). | Developer | **Closed** — performed manually by the Developer |
|
||||
| BK-003 | Regenerate the PDF delivery package so it covers all 46 controlled files, including the 4 Meeting Records. | Developer | **Closed** — all 46 PDFs included |
|
||||
| BK-004 | Synchronize the final controlled SDLC delivery commit/branch and release tag to the backup remote and confirm that they can be retrieved. | Developer | **Closed 24/08/26** — `backup/sdlc` and `sdlc-v1.0-final` confirmed by remote-reference retrieval |
|
||||
|
||||
## 5. Approval
|
||||
|
||||
### Prepared by
|
||||
|
||||
Name: Thanakorn Sathitwitayakul
|
||||
Role: Developer
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
|
||||
### Reviewed by
|
||||
|
||||
Name: Apirach Supattaratpateep
|
||||
Role: Project Manager
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
|
||||
### Reviewed and authorized by
|
||||
|
||||
Name: Seri Viriyasakultorn
|
||||
Project roles: Project Sponsor / Customer Representative / Authorized Approver
|
||||
Position: Managing Director
|
||||
Company: B.R.N. Enterprise Co., Ltd.
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
+99
@@ -0,0 +1,99 @@
|
||||
# Work Schedule
|
||||
|
||||
| Document field | Value |
|
||||
|---|---|
|
||||
| Document | Work Schedule |
|
||||
| Project | BRN WMS |
|
||||
| Project code | 200-WMS-26-001-00 |
|
||||
| Project period | 05/01/26–24/08/26 |
|
||||
| Project end date | 24/08/26 |
|
||||
| Release | 17/08/26 V1.0 Final |
|
||||
| Schedule baseline | 05/01/26 |
|
||||
| Standard | ISO/IEC 29110 Basic Profile |
|
||||
| Status | Final — reviewed and authorized |
|
||||
|
||||
## Revision history
|
||||
|
||||
| Version | Date | Change | Prepared by |
|
||||
|---|---|---|---|
|
||||
| V1.0 | 17/08/26 | Initial controlled issue, subsequently updated with closure outcomes through 24/08/26: training, operational controls, delivery packaging, and repository-backup synchronization completed. | Apirach Supattaratpateep |
|
||||
|
||||
The Status, Actual/evidence date and Remarks columns below record outcomes through formal closure on 24/08/26. The Start, Finish and Duration columns retain the 05/01/26 planned baseline; where a task finished after its planned Finish date, the Remarks column states the actual finish.
|
||||
|
||||
## Schedule basis
|
||||
|
||||
| No. | Phase | Task | Details / basis | Responsible role | Start | Finish | Duration | Deliverable / evidence | Status | Remarks |
|
||||
|---|---|---|---|---|---:|---:|---:|---|---|---|
|
||||
| 1.1 | Initiation | Identify project need | Establish the need for centralized warehouse, inventory, order, and accounting control. | Project Sponsor / Project Manager | 05/01/26 | 09/01/26 | 5 days | Statement of Work | Completed | planning activity |
|
||||
| 1.2 | Initiation | Identify stakeholders and objectives | Identify sponsor, operational users, system administrator, development, and approval roles. | Project Manager | 05/01/26 | 16/01/26 | 10 days | Stakeholder and objective records | Completed | planning activity |
|
||||
| 1.3 | Initiation | Approve project scope | Confirm project boundaries, assumptions, deliverables, and acceptance approach. | Project Sponsor | 19/01/26 | 23/01/26 | 5 days | Approved Statement of Work | Completed | Approved scope recorded |
|
||||
| 2.1 | Planning | Collect customer requirements | Document functional, data, security, operational, and quality requirements. | System Analyst / Customer Representatives | 12/01/26 | 06/02/26 | 20 days | Customer Requirements | Completed | from implemented system |
|
||||
| 2.2 | Planning | Prepare Software Project Plan | Define lifecycle, resources, risks, repository, configuration, communication, and controls. | Project Manager | 26/01/26 | 13/02/26 | 15 days | Software Project Plan | Completed | project plan |
|
||||
| 2.3 | Planning | Baseline requirements and schedule | Review initial requirements, priorities, milestones, and work-product responsibilities. | Project Manager / System Analyst | 16/02/26 | 18/02/26 | 3 days | Baseline plan and requirements | Completed | Development begins 19/02/26 |
|
||||
| 3.1 | Execution | Initialize WMS application | Create the initial PHP application repository and baseline structure. | System Analyst / Developer | 19/02/26 | 25/02/26 | 5 days | Application baseline | Completed |
|
||||
| 3.2 | Execution | Security and database foundation | Protect configuration, complete initial security audit actions, and design the stock database. | Developer | 09/03/26 | 17/03/26 | 7 days | Security and database baseline | Completed |
|
||||
| 3.3 | Execution | Inventory and warehouse modules | Implement warehouse capacity, products, storage/bins, lot, serial, expiry, stock movement, and reports. | Developer | 09/04/26 | 29/04/26 | 15 days | Inventory, ICS, dashboard, and report modules | Completed |
|
||||
| 3.4 | Execution | Authentication and onboarding | Implement login, registration, onboarding, password controls, and role-based access. | Developer | 28/04/26 | 12/05/26 | 11 days | Authentication and user-management modules | Completed |
|
||||
| 3.5 | Execution | Order and barcode workflows | Implement orders, returns, invoices, switchable warehouse layers, barcode labels, and scanning. | Developer | 02/05/26 | 08/05/26 | 5 days | Order and barcode modules | Completed |
|
||||
| 3.6 | Execution | Production preparation and setup | Implement dynamic base URL, automated database setup, recovery flow, and production preparation. | Developer | 11/05/26 | 13/05/26 | 3 days | Setup and configuration implementation | Completed |
|
||||
| 3.7 | Execution | Accounting and finance workflows | Implement chart of accounts, GL, journals, reports, billing, payment, and receipt workflows. | Developer | 13/05/26 | 23/05/26 | 9 days | Accounting and finance modules | Completed |
|
||||
| 3.8 | Execution | Real-time services and scheduled jobs | Implement Socket.IO notifications, stock/GL aggregates, and operational alerts. | Developer | 22/05/26 | 27/05/26 | 4 days | Node.js service and scheduled jobs | Completed |
|
||||
| 3.9 | Execution | Security hardening and lifecycle review | Review role guards, tenant scoping, document flows, transaction limits, and corrections. | Developer / Reviewer | 21/05/26 | 28/05/26 | 6 days | Security and lifecycle review | Completed |
|
||||
| 3.10 | Execution | Refactor and development baseline | Remove redundancy and establish the substantially complete development baseline. | Developer | 29/05/26 | 29/05/26 | 1 day | Development baseline | Completed |
|
||||
| 4.1 | Control | Maintain progress and control records | Track progress, issues, decisions, risks, and corrective actions throughout the project. | Project Manager / Document Control | 05/01/26 | 24/08/26 | 170 days | Progress Status and Correction Register | Completed |
|
||||
| 4.2 | Control | Configuration and repository control | Control source, baselines, document versions, configuration, and backups. | Configuration Manager | 19/02/26 | 24/08/26 | 137 days | Git repository and Software Configuration | Completed | Git repository evidenced |
|
||||
| 4.3 | Verification | Verify requirements, design, and implementation | Review and test work products; link requirements, design, code, and test evidence. | Reviewer / Tester | 30/05/26 | 31/07/26 | 45 days | Verification Results and Traceability Record | Completed | Actual finish 17/08/26, after the scheduled finish of 31/07/26. Traceability Record complete (34/34 requirements linked and verified); Round 2 independent verification performed by Yaowalak Bangchomphoo (Document Control) on 17/08/26 |
|
||||
| 4.4 | Validation | Customer-oriented system validation | Validate operational workflows and quality attributes against intended use. | Customer Representatives / Tester | 01/06/26 | 07/08/26 | 50 days | Validation Results and Test Report | Completed | Actual finish 14/08/26, after the scheduled finish of 07/08/26. All 34 test cases and 12 validation scenarios were executed and passed over 10/08/26–14/08/26, confirmed by the project user on 17/08/26; per-case execution dates within that window were not separately recorded |
|
||||
| 4.5 | Documentation | Prepare operational documentation | Prepare user, operation, configuration, deployment, and maintenance guidance. | Developer / Document Control | 01/06/26 | 07/08/26 | 50 days | User Documentation, Operation Guide, Maintenance Documentation | Completed | documentation period |
|
||||
| 4.6 | Stabilization | Configuration and login corrections | Correct login and environment configuration issues identified after baseline. | Developer | 03/08/26 | 03/08/26 | 1 day | Configuration and login correction | Completed |
|
||||
| 4.7 | Stabilization | Prepare demonstration data | Populate controlled demonstration data for validation and handover support. | Developer / Tester | 14/08/26 | 14/08/26 | 1 day | Demonstration data | Completed |
|
||||
| 5.1 | Closure | Final repository and work-product review | Confirm required work products, traceability, configuration items, and unresolved actions. | Project Manager / Document Control | 10/08/26 | 24/08/26 | 15 days | Repository review and List of Evidence | Completed | Round 2 independent verification performed by Document Control on 17/08/26 |
|
||||
| 5.2 | Closure | Acceptance and project closure | Obtain authorized acceptance and record project closure and follow-up actions. | Project Sponsor / Project Manager | 14/08/26 | 24/08/26 | 11 days | Acceptance Report, Training Report, operational-control closure, and repository-backup record | Completed | Product accepted 17/08/26; training completed 22/08/26; operational controls closed 23/08/26; administrative and repository-backup closure completed 24/08/26 |
|
||||
|
||||
## Milestones
|
||||
|
||||
| Milestone | Date | Basis |
|
||||
|---|---:|---|
|
||||
| Formal project start | 05/01/26 | Agreed project boundary |
|
||||
| Requirements and planning baseline | 18/02/26 | Planned pre-development completion |
|
||||
| Development start | 19/02/26 | Application development begins |
|
||||
| Development substantially complete | 29/05/26 | Final main-development refactoring commit |
|
||||
| Post-development correction | 03/08/26 | Login and configuration correction commit |
|
||||
| Demonstration data | 14/08/26 | Final repository commit |
|
||||
| Project end date | 24/08/26 | Formal project completion date |
|
||||
|
||||
## Approval
|
||||
|
||||
### Prepared by
|
||||
|
||||
Name: Apirach Supattaratpateep
|
||||
|
||||
Role: Project Manager / Document Creator
|
||||
|
||||
Signature: ______________________________________________
|
||||
|
||||
Date: ___________________________________________________
|
||||
|
||||
### Technical contributor
|
||||
|
||||
Name: Thanakorn Sathitwitayakul
|
||||
|
||||
Role: Developer
|
||||
|
||||
Signature: ______________________________________________
|
||||
|
||||
Date: ___________________________________________________
|
||||
|
||||
### Reviewed and authorized by
|
||||
|
||||
Name: Seri Viriyasakultorn
|
||||
|
||||
Project roles: Project Sponsor / Customer Representative / Authorized Approver
|
||||
|
||||
Position: Managing Director
|
||||
|
||||
Company: B.R.N. Enterprise Co., Ltd.
|
||||
|
||||
Signature: ______________________________________________
|
||||
|
||||
Date: ___________________________________________________
|
||||
+437
@@ -0,0 +1,437 @@
|
||||
# Software Project Plan
|
||||
|
||||
| Document field | Value |
|
||||
|---|---|
|
||||
| Document | Software Project Plan |
|
||||
| Project | BRN WMS |
|
||||
| Project code | 200-WMS-26-001-00 |
|
||||
| Title | Warehouse Management System Development Project Plan |
|
||||
| Project period | 05/01/26–24/08/26 |
|
||||
| Release | 17/08/26 V1.0 Final |
|
||||
| Planning baseline | 05/01/26 |
|
||||
| Standard | ISO/IEC 29110 Basic Profile |
|
||||
| Project Manager | Apirach Supattaratpateep |
|
||||
| Status | Final — reviewed and authorized |
|
||||
|
||||
## Revision history
|
||||
|
||||
| Version | Date | Change | Prepared by |
|
||||
|---|---|---|---|
|
||||
| V1.0 | 17/08/26 | Initial controlled issue. Consolidates the 05/01/26 planning baseline with lifecycle, quality, equipment-evidence, and configuration outcomes recorded through closure preparation. | Apirach Supattaratpateep |
|
||||
|
||||
Sections 6, 8.5, 12.2 and 16 describe outcomes as at 17/08/26; the remaining sections retain the 05/01/26 planning baseline.
|
||||
|
||||
## 1. Purpose
|
||||
|
||||
This Software Project Plan defines how the BRN WMS project is organized, executed, monitored, controlled, verified, validated, delivered, and closed. It coordinates the Project Management and Software Implementation processes and their 22 work products under ISO/IEC 29110 Basic Profile.
|
||||
|
||||
### 1.1 Standards basis and applicability
|
||||
|
||||
BRN WMS applies the ISO/IEC 29110 software engineering Generic Basic Profile for one non-safety-critical software product developed by one project team under a customer project agreement. The standards basis for this project is:
|
||||
|
||||
- **ISO/IEC 29110-4-1:2018** — Software engineering profile specifications for the Generic profile group, including the Basic profile.
|
||||
- **ISO/IEC 29110-5-1-2:2025** — Software engineering management and engineering guidelines for the Generic Basic profile.
|
||||
|
||||
| Applicability item | BRN WMS application |
|
||||
|---|---|
|
||||
| Profile group | Generic profile group |
|
||||
| Profile | Basic profile |
|
||||
| Engineering discipline | Software engineering |
|
||||
| Project organization | One project team with assigned management, analysis, development, testing, document-control, and customer-approval roles |
|
||||
| Product scope | One browser-based warehouse management software product and its supporting deployment/service components |
|
||||
| Agreement | Customer project agreement controlled through the Statement of Work and Customer Requirements |
|
||||
| Safety criticality | Non-safety-critical software |
|
||||
| Management process | Project Management |
|
||||
| Engineering process | Software Implementation |
|
||||
| Lifecycle | Incremental/evolutionary implementation with controlled requirements, configuration baselines, verification, validation, and acceptance |
|
||||
| Tailoring principle | Work-product structure and detail are scaled to BRN WMS size and complexity while retaining controlled content, responsibility, review, and traceability |
|
||||
|
||||
### 1.2 Work-product tailoring
|
||||
|
||||
- Project Plan content is controlled across the Work Schedule, this Software Project Plan, and Customer Requirements.
|
||||
- The Software work product is the Git-controlled application baseline; work product 17 is its controlled identification and repository pointer record.
|
||||
- The Traceability Record (work product 13) is the master requirements matrix. The additional Traceability Record Table is a summary/pointer and does not create a second competing baseline.
|
||||
- Test Cases and Test Procedures defines the tests and records their execution status; the separate Test Report consolidates the results and disclosed evidence limitations.
|
||||
- The Project Charter Report, Stakeholder Register, List of Evidence, Traceability Record Table, and Training Report supplement the Basic-profile work products without replacing them.
|
||||
- Markdown files under `sdlc/` are the controlled editable document sources. PDFs under `sdlc-delivery/` are generated delivery/printing outputs and are not edited independently.
|
||||
- No Project Management or Software Implementation process is declared excluded. Content granularity is scaled where documented, including requirement-level traceability for the 34 controlled requirements.
|
||||
|
||||
## 2. Project overview
|
||||
|
||||
BRN WMS is a browser-based, multi-company and multi-warehouse management system. It centralizes warehouse master data, inventory movements, sales and purchasing documents, finance and accounting records, reports, access control, and operational notifications.
|
||||
|
||||
The project is intended to:
|
||||
|
||||
- Improve the accuracy and timeliness of warehouse operations.
|
||||
- Provide current stock visibility across authorized warehouses and locations.
|
||||
- Preserve lot, serial-number, expiry-date, and movement traceability.
|
||||
- Control sales, purchasing, return, invoice, receipt, payment, and accounting workflows.
|
||||
- Separate company data and restrict functions according to authorized roles.
|
||||
- Provide management reports, operational alerts, and auditable records.
|
||||
|
||||
## 3. Scope
|
||||
|
||||
### 3.1 Included scope
|
||||
|
||||
- Company, user, role, application-access, SMTP, and system configuration.
|
||||
- Contact, product, category, warehouse, storage-area, and bin master data.
|
||||
- Stock-in, stock-out, stock transfer, balance, lot, serial number, and expiry control.
|
||||
- Warehouse capacity, occupancy, movement, expired-stock, and product-lot reporting.
|
||||
- SKU and warehouse-location barcode labels and supported scanning workflows.
|
||||
- Quotations, sales orders, returns, invoices, and credit notes.
|
||||
- Purchase requests, purchase orders, purchase invoices, and supplier returns.
|
||||
- Receipt billing, receipts, payment billing, and payments.
|
||||
- Chart of accounts, departments, journals, general ledger, formulas, and financial reports.
|
||||
- Controlled document numbering and lifecycle/status handling.
|
||||
- Real-time notifications using Node.js and Socket.IO.
|
||||
- Scheduled stock/GL maintenance, low-stock alerts, and overdue-invoice alerts.
|
||||
- Deployment configuration, database setup, operating guidance, and maintenance information.
|
||||
- ISO/IEC 29110 work products and controlled project repository.
|
||||
|
||||
### 3.2 Excluded scope
|
||||
|
||||
- Procurement of servers, networks, barcode scanners, printers, or user devices.
|
||||
- Legacy-data migration unless separately assessed and approved.
|
||||
- Integration with external ERP, banking, shipping, tax, or third-party services unless approved through change control.
|
||||
- Custom functionality outside the baselined requirements.
|
||||
- Production hosting or third-party subscription fees unless separately authorized.
|
||||
|
||||
## 4. Objectives and success criteria
|
||||
|
||||
The project is successful when:
|
||||
|
||||
- All acceptance-critical requirements are implemented and traceable to verification evidence.
|
||||
- Representative warehouse, sales, purchasing, finance, and accounting workflows pass validation.
|
||||
- No unresolved critical defect blocks intended operation or compromises security or data integrity.
|
||||
- Installation, configuration, user, operation, and maintenance documentation is available.
|
||||
- Software and controlled work products are stored in the project repository.
|
||||
- Verification, validation, and acceptance records receive the required review and authorization.
|
||||
|
||||
## 5. Lifecycle and schedule
|
||||
|
||||
| Phase | Period | Main activities | Primary outputs |
|
||||
|---|---:|---|---|
|
||||
| Initiation | 05/01/26–23/01/26 | Establish need, stakeholders, objectives, scope, and authority. | Statement of Work, stakeholder records |
|
||||
| Planning | 12/01/26–18/02/26 | Collect requirements; define schedule, resources, risks, controls, and baselines. | Customer Requirements, Work Schedule, Software Project Plan |
|
||||
| Implementation | 19/02/26–29/05/26 | Analyze, design, code, configure, integrate, review, and test the system. | SRS, Software Design, Components, Test Cases, Software |
|
||||
| Verification and validation | 30/05/26–07/08/26 | Review work products and validate representative operational workflows. | Traceability, Test Report, Verification and Validation Results |
|
||||
| Documentation and stabilization | 01/06/26–24/08/26 | Prepare guides, close corrections, configure deployment, and prepare demonstration data. | User Documentation, Operation Guide, Maintenance Documentation |
|
||||
| Closure | 10/08/26–24/08/26 | Review repository, resolve open actions, obtain acceptance, and close the project. | Acceptance Report, List of Evidence, repository baseline |
|
||||
|
||||
Detailed activities and evidence are maintained in the Work Schedule.
|
||||
|
||||
## 6. Software development lifecycle methodology
|
||||
|
||||
BRN WMS follows an incremental/evolutionary development approach, with features, modules, and security corrections delivered throughout implementation.
|
||||
|
||||
BRN WMS is more accurately described as **incremental/evolutionary**, within the same overall lifecycle stages used for planning and reporting purposes (Section 5):
|
||||
|
||||
| Stage | How it was actually approached |
|
||||
|---|---|
|
||||
| Requirements | Captured once at a level (Customer Requirements), then implicitly refined as implementation proceeded — e.g., the Rack→Bin terminology change (CH-001) and multiple onboarding/security corrections show requirements being clarified during implementation, not frozen beforehand |
|
||||
| Design | Not produced as an upfront, separate artifact; Software Design (work product 12) was derived from the as-built architecture, not authored before coding began |
|
||||
| Implementation | Continuous, feature-by-feature, evidenced by 100 commits across the implementation period (19/02/26–29/05/26; 110 in the repository overall) with no clean phase boundary between "build" and "test/fix" |
|
||||
| Verification | Interleaved throughout implementation (ongoing manual exercising and correction, per the Correction Register) rather than concentrated in a single verification phase; formal Round 2A document-control and Round 2B technical work-product verification was completed on 17/08/26 and recorded in work product 21 |
|
||||
| Stabilization/closure | A distinct late-stage effort (03/08/26 onward) closer to a traditional stabilization phase |
|
||||
|
||||
## 7. Organization and responsibilities
|
||||
|
||||
| Role | Assigned person | Responsibilities |
|
||||
|---|---|---|
|
||||
| Project Sponsor / Customer Representative / Authorized Approver | Seri Viriyasakultorn | Represent customer needs; authorize scope, resources, baseline changes, acceptance, and project closure. |
|
||||
| Project Manager | Apirach Supattaratpateep | Plan and monitor work; assign responsibilities; manage risks, issues, communication, changes, and closure. |
|
||||
| System Analyst | Noppong Chareunsook | Analyze customer requirements, specify system behavior, and maintain technical traceability. |
|
||||
| Developer | Thanakorn Sathitwitayakul | Design, implement, configure, correct, and maintain source code, aligned with Git implementation evidence. |
|
||||
| Tester / Reviewer | Parin Ngamkham | Prepare and execute tests, review work products, report defects, and confirm corrections. |
|
||||
| Document Control | Yaowalak Bangchomphoo | Control identifiers, versions, approvals, distribution, repository content, and evidence. |
|
||||
|
||||
One person may perform more than one operational role when independence is not mandatory. Approval authority must remain with the designated authorized approver or a formally delegated authority.
|
||||
|
||||
## 8. Resources and environment
|
||||
|
||||
### 8.1 Schedule summary
|
||||
|
||||
| Phase | Calendar span | Approx. duration |
|
||||
|---|---|---:|
|
||||
| Initiation | 05/01/26–23/01/26 | 19 days |
|
||||
| Planning | 12/01/26–18/02/26 | 38 days |
|
||||
| Implementation | 19/02/26–29/05/26 | 100 days |
|
||||
| Verification and validation | 30/05/26–07/08/26 | 70 days |
|
||||
| Documentation and stabilization | 01/06/26–24/08/26 | 85 days |
|
||||
| Closure | 10/08/26–24/08/26 | 15 days |
|
||||
|
||||
These are calendar spans rather than effort estimates.
|
||||
|
||||
### 8.2 Software and infrastructure
|
||||
|
||||
- PHP 8.0 or later.
|
||||
- MySQL or MariaDB.
|
||||
- Nginx or another compatible PHP web server.
|
||||
- Node.js, npm, Socket.IO, and PM2 for real-time and scheduled services.
|
||||
- Git repository with `main` as the controlled integration baseline.
|
||||
- Current standards-based desktop and mobile browsers.
|
||||
- Asia/Bangkok time zone across application and scheduled-job environments.
|
||||
|
||||
### 8.3 Logical application components
|
||||
|
||||
| Component | Purpose |
|
||||
|---|---|
|
||||
| PHP web application | Main user interface and operational APIs |
|
||||
| Identity/company database | Users, companies, access, SMTP, usage, and related configuration |
|
||||
| WMS/accounting database | Warehouse, inventory, documents, finance, and accounting records |
|
||||
| Node.js notification service | Browser notifications and application event relay |
|
||||
| Node.js scheduler | Aggregate maintenance and scheduled operational alerts |
|
||||
|
||||
### 8.4 Configuration constraints
|
||||
|
||||
- Local configuration and secrets must not be committed to Git.
|
||||
- Production database credentials must use the minimum privileges required after installation.
|
||||
- Application, database, upload, and service configuration must follow the controlled configuration guide.
|
||||
- Public access to source-control metadata, secrets, and internal service endpoints must be restricted.
|
||||
|
||||
### 8.5 Computer and equipment resources
|
||||
|
||||
The example reference package's Section 7 lists specific equipment (notebook count, scanner, Git server, software licenses). No equipment inventory record exists as project evidence for BRN WMS — this is not fabricated here. What is evidenced instead:
|
||||
|
||||
| Item | Evidence |
|
||||
|---|---|
|
||||
| Git hosting | Primary remote `origin` (`188.166.228.62:nok/wms-app.git`) and backup remote `backup` (GitHub) — see Project Repository, work product 9 |
|
||||
| Deployment target | Manual LAMP install or Docker Compose stack (`php-apache`, `mariadb`, `node/pm2`) — see Software Configuration, work product 8, and Product Operation Guide, work product 19 |
|
||||
| Developer workstation(s) | Not recorded — no inventory evidence exists |
|
||||
| Office/licensed software (word processor, spreadsheet, etc.) | Not recorded — no inventory evidence exists |
|
||||
|
||||
## 9. Deliverables and work products
|
||||
|
||||
### 9.1 Project Management work products
|
||||
|
||||
1. Statement of Work
|
||||
2. Project Plan, including Work Schedule, Software Project Plan, and Customer Requirements
|
||||
3. Progress Status Record
|
||||
4. Correction Register
|
||||
5. Acceptance Report
|
||||
6. Change Report
|
||||
7. Meeting Record
|
||||
8. Software Configuration
|
||||
9. Project Repository
|
||||
10. Project Repository Backup
|
||||
|
||||
### 9.2 Software Implementation work products
|
||||
|
||||
11. Software Requirements Specification
|
||||
12. Software Design
|
||||
13. Traceability Record
|
||||
14. Software Components
|
||||
15. Test Cases and Test Procedures
|
||||
16. Test Report
|
||||
17. Software
|
||||
18. Software User Documentation
|
||||
19. Product Operation Guide
|
||||
20. Maintenance Documentation
|
||||
21. Verification Results
|
||||
22. Validation Results
|
||||
|
||||
## 10. Monitoring and communication
|
||||
|
||||
| Record or activity | Frequency or trigger | Owner | Audience |
|
||||
|---|---|---|---|
|
||||
| Work Schedule update | At least weekly during active work | Project Manager | Project team and sponsor |
|
||||
| Progress Status Record | Weekly during active work | Project Manager | Project team and sponsor |
|
||||
| Project meeting | At planned reviews or when decisions are required | Project Manager | Relevant stakeholders |
|
||||
| Meeting Record | For each formal project/review meeting | Recorder | Attendees and affected stakeholders |
|
||||
| Correction Register | When a defect, issue, or nonconformity is identified | Tester / Project Manager | Assigned owner and reviewer |
|
||||
| Change Report | When a baseline change is requested | Project Manager | Sponsor, affected team, customer representative |
|
||||
| Repository review | At each baseline and project closure | Document Control | Project Manager and reviewer |
|
||||
|
||||
Progress status includes completed work, planned work, deviations, risks, issues, required decisions, corrective actions, and schedule impact.
|
||||
|
||||
## 11. Risk management
|
||||
|
||||
| ID | Risk | Impact | Planned response / control | Owner |
|
||||
|---|---|---|---|---|
|
||||
| R-01 | Pre-development planning records were prepared after the fact | Audit evidence may be weaker than the records suggest. | Mark assumptions clearly and obtain review and approval. | Project Manager |
|
||||
| R-02 | Unauthorized access or cross-company data exposure | Confidentiality and integrity failure. | Server-side role guards, company/warehouse scoping, session controls, and security review. | Developer / Reviewer |
|
||||
| R-03 | Incorrect inventory balance | Operational and financial records become unreliable. | Transactions, input validation, locking, approval flow, reconciliation, and movement tests. | Developer / Tester |
|
||||
| R-04 | Secret or configuration exposure | System compromise or service interruption. | Ignore local secrets, provide templates, restrict web access, and review deployment configuration. | Configuration Manager |
|
||||
| R-05 | Incomplete requirement or acceptance evidence | Delivery cannot be objectively demonstrated. | Maintain bidirectional traceability and obtain signatures before baselining. | Project Manager |
|
||||
| R-06 | Uncontrolled scope expansion | Schedule and quality degradation. | Require Change Report, impact analysis, authorization, and re-planning. | Project Manager / Sponsor |
|
||||
| R-07 | Inadequate backup or recovery | Loss of source, documents, or operational data. | Maintain repository backup and documented database/file backup and recovery procedures. | Configuration Manager |
|
||||
| R-08 | Third-party or environment incompatibility | Deployment or notification failure. | Document supported versions and verify the target environment before acceptance. | Developer / System Administrator |
|
||||
|
||||
Risks are reviewed with progress status. New risks and changes to exposure or response are recorded by the Project Manager.
|
||||
|
||||
### 11.1 Contingency actions for non-completed tasks
|
||||
|
||||
Distinct from the risk table above (which addresses project-level threats), this table addresses the specific, recurring situation of an individual task or work product not finishing by its planned date.
|
||||
|
||||
| Situation | Common cause | Likely impact | Contingency action | Owner |
|
||||
|---|---|---|---|---|
|
||||
| Task not finished by its due date | Timeline or resource estimate was too tight | Downstream tasks slip; delivery date at risk | Meet with the team to reassess status and priority; agree and communicate a revised timeline | Project Manager |
|
||||
| Delay due to insufficient staffing (illness, unavailability) | Single-person roles (Section 7) have no backup | Work stalls until the person returns | Document a handover/knowledge-transfer note; consider temporary outside help for the specific gap only with Sponsor authorization | Project Manager |
|
||||
| Delay due to late or incomplete requirement/content input | Upstream dependency (customer input, data) not ready | Downstream development or testing cannot proceed | Escalate to the Sponsor with a clear description of what is blocking; agree a revised input date | Project Manager |
|
||||
| Delay due to unexpected technical complexity | Underestimated integration/defect complexity discovered during work | Task takes materially longer than planned | Prioritize by severity (Critical/High/Low, per Section 12.1); temporarily set aside lower-priority items | Developer |
|
||||
| Delay because scope changed mid-task | Requirement changed after work started | Effort already spent may be partially invalidated | Raise a Change Report; obtain authorization before continuing under the new scope | Project Manager |
|
||||
|
||||
## 12. Quality assurance
|
||||
|
||||
- Assign a unique identifier to each approved requirement.
|
||||
- Review requirements for clarity, completeness, consistency, testability, and scope alignment.
|
||||
- Review design against requirements and operational constraints.
|
||||
- Review implementation for authorization, tenant isolation, data integrity, configuration safety, and error handling.
|
||||
- Trace requirements to design elements, components, test cases, and results.
|
||||
- Record defects and nonconformities in the Correction Register.
|
||||
- Re-test corrected behavior and retain objective evidence.
|
||||
- Validate representative end-to-end scenarios with customer-oriented data.
|
||||
|
||||
### 12.1 Defect disposition
|
||||
|
||||
| Severity | Meaning | Acceptance treatment |
|
||||
|---|---|---|
|
||||
| Critical | Prevents core operation, compromises security, causes cross-company exposure, or corrupts essential data. | Must be corrected and verified before acceptance. |
|
||||
| Major | Material function fails without an acceptable workaround. | Correct before acceptance or obtain explicit authorized disposition. |
|
||||
| Minor | Limited impact with an acceptable workaround. | Record planned correction or authorized acceptance. |
|
||||
| Observation | Improvement or documentation item without functional failure. | Record and prioritize as appropriate. |
|
||||
|
||||
### 12.2 Quality criteria and evaluation methods
|
||||
|
||||
The example reference package states measurable quality thresholds directly in the Software Project Plan (response time, uptime, security scan result, etc.). BRN WMS's measurable criteria are already defined as non-functional requirements in Customer Requirements (Section 8) and restated as technical requirements in the SRS (work product 11); this table cross-references them here rather than duplicating a second copy that could drift out of sync.
|
||||
|
||||
| Quality area | Criterion | Evaluation method | Reference |
|
||||
|---|---|---|---|
|
||||
| Functional correctness | All Must requirements implemented and traceable | Traceability Record review + Test Report execution | NFR-009, work products 13, 16 |
|
||||
| Performance | Practical operational response time; aggregates support dashboards/reports | Representative-operation timing under agreed data volume | NFR-006, SR05:001–003, TC-NFR-006 |
|
||||
| Security | No unresolved critical security defect; server-side auth/tenant scope enforced | Negative-authorization/invalid-input testing | NFR-002, SR07:001–005, TC-NFR-002 |
|
||||
| Reliability/integrity | No invalid negative/duplicate stock or GL movement | Failure/rollback and concurrency test | NFR-003, SR09:003, TC-NFR-003 |
|
||||
| Usability | Responsive UI usable on desktop and warehouse-floor devices | Representative-screen check at agreed viewport sizes | NFR-005, SR02:002, TC-NFR-005 |
|
||||
| Installability | Installation/configuration/backup/recovery repeatable | Follow Product Operation Guide end-to-end | NFR-004, TC-NFR-004 |
|
||||
| Post-delivery support | Backup and restoration | Restoration check performed manually by the Developer | Project Repository (Backup), work product 10 |
|
||||
|
||||
Actual results belong in the Test Report and Verification/Validation Results, which show 34 of 34 passed and 12 of 12 passed, executed 10/08/26–14/08/26 (see the Acceptance Report's current-status note).
|
||||
|
||||
## 13. Verification and validation
|
||||
|
||||
Verification confirms that each work product satisfies its specified inputs and criteria. Validation confirms that the integrated BRN WMS supports its intended operational use.
|
||||
|
||||
Verification covers:
|
||||
|
||||
- Customer Requirements and Software Requirements Specification.
|
||||
- Software Design and database/configuration design.
|
||||
- Software Components and integration behavior.
|
||||
- Test Cases, Test Procedures, Test Report, and traceability.
|
||||
- User, operation, configuration, and maintenance documentation.
|
||||
|
||||
Validation covers representative workflows for:
|
||||
|
||||
- User onboarding and role-based access.
|
||||
- Warehouse and product configuration.
|
||||
- Stock receipt, issue, transfer, balance, lot, serial, and expiry handling.
|
||||
- Sales, purchasing, return, invoice, receipt, and payment workflows.
|
||||
- Accounting postings and management reports.
|
||||
- Notifications, scheduled jobs, and operational recovery.
|
||||
|
||||
## 14. Configuration management
|
||||
|
||||
Configuration items include:
|
||||
|
||||
- PHP, JavaScript, CSS, Node.js, and database/setup source files.
|
||||
- Application and service configuration templates.
|
||||
- Database schema and migration/setup logic.
|
||||
- Controlled requirements, design, test, guide, and management work products.
|
||||
- Approved releases, evidence, and repository backups.
|
||||
|
||||
Controls include:
|
||||
|
||||
- Controlled `main` baseline.
|
||||
- Project-code-based filenames and document version/status identifiers.
|
||||
- Review and authorization before changing an approved baseline.
|
||||
- Exclusion of passwords, tokens, local configuration, logs, uploads, and generated secrets from source control.
|
||||
- Repository and operational-data backup with recoverability checks.
|
||||
|
||||
## 15. Change and correction control
|
||||
|
||||
A baseline change follows this sequence:
|
||||
|
||||
1. Record the requested change and reason.
|
||||
2. Analyze its scope, schedule, technical, quality, security, and documentation impact.
|
||||
3. Obtain authorization from the designated authority.
|
||||
4. Update affected plans, requirements, design, traceability, tests, and configuration records.
|
||||
5. Implement and verify the change.
|
||||
6. Record the result and close the Change Report.
|
||||
|
||||
Defects and nonconformities are recorded in the Correction Register, assigned to an owner, corrected, re-tested, and closed with evidence.
|
||||
|
||||
## 16. Repository and document control
|
||||
|
||||
### 16.1 File naming convention
|
||||
|
||||
BRN WMS's actual naming convention, in force since PM work product 1 and used consistently across all 46 controlled files, differs deliberately from the example reference project's:
|
||||
|
||||
`[Project code] [Document name] [YYYYMMDD Buddhist] V[version]`, for example `200-WMS-26-001-00 Correction Register 25690817 V1.0`.
|
||||
|
||||
| Element | Meaning | Example |
|
||||
|---|---|---|
|
||||
| Project code | `200-WMS-26-001-00` | Fixed |
|
||||
| Document name | Descriptive title; where a work product has multiple instances (Progress Status Record, Change Report, Meeting Record), a short distinguishing suffix is added | `- Rack to Bin Rename` |
|
||||
| Date | Compact Buddhist-calendar date (`YYYYMMDD`), matching the date on the document header | `25690817` |
|
||||
| Version | `V<major>.<minor>`, e.g. `V1.0` | `V1.0` |
|
||||
|
||||
BRN WMS document filenames do not append author initials.
|
||||
|
||||
### 16.2 Version declaration
|
||||
|
||||
Documents created for BRN WMS are released directly at `V1.0` once content is complete, without the example's separate `0.1`/`0.2` Draft stages — BRN WMS work products are not labeled `Draft` unless explicitly requested, per the same recorded decision. "Final" in the document-control Status field means the controlled content is complete; authorization and the project-acceptance decision are recorded in each document's Approval section and the Acceptance Report.
|
||||
|
||||
### 16.3 Repository and backup
|
||||
|
||||
- Every controlled filename starts with `200-WMS-26-001-00`.
|
||||
- Documents identify title, date, version, status, preparer, reviewer, and approver as applicable.
|
||||
- Drafts remain distinguishable from approved baselines.
|
||||
- The Project Repository contains the current controlled work products and supporting evidence (work product 9).
|
||||
- The repository backup is maintained separately and checked during project closure (work product 10); BK-001–BK-004 are closed, including restoration, complete delivery packaging, and synchronization and retrieval verification of the final `sdlc` branch and release tag on 24/08/26.
|
||||
- Superseded records are retained or archived according to organizational control practices.
|
||||
|
||||
## 17. Acceptance and closure
|
||||
|
||||
The project may close when:
|
||||
|
||||
- Acceptance-critical requirements have passed their linked verification and validation.
|
||||
- No unresolved critical defect remains.
|
||||
- Deferred items and accepted exceptions have authorized dispositions.
|
||||
- Required user, operation, configuration, and maintenance documents are available.
|
||||
- Software, source, setup information, evidence, and required work products are in the repository.
|
||||
- The Acceptance Report and closure decision are signed by the authorized approver.
|
||||
|
||||
## 18. Approval
|
||||
|
||||
### Prepared by
|
||||
|
||||
Name: Apirach Supattaratpateep
|
||||
|
||||
Role: Project Manager
|
||||
|
||||
Signature: ______________________________________________
|
||||
|
||||
Date: ___________________________________________________
|
||||
|
||||
### Technical contributor
|
||||
|
||||
Name: Thanakorn Sathitwitayakul
|
||||
|
||||
Role: Developer
|
||||
|
||||
Signature: ______________________________________________
|
||||
|
||||
Date: ___________________________________________________
|
||||
|
||||
### Reviewed and authorized by
|
||||
|
||||
Name: Seri Viriyasakultorn
|
||||
|
||||
Project roles: Project Sponsor / Customer Representative / Authorized Approver
|
||||
|
||||
Position: Managing Director
|
||||
|
||||
Company: B.R.N. Enterprise Co., Ltd.
|
||||
|
||||
Signature: ______________________________________________
|
||||
|
||||
Date: ___________________________________________________
|
||||
+276
@@ -0,0 +1,276 @@
|
||||
# Customer Requirements
|
||||
|
||||
| Document field | Value |
|
||||
|---|---|
|
||||
| Document | Customer Requirements |
|
||||
| Project | BRN WMS |
|
||||
| Project code | 200-WMS-26-001-00 |
|
||||
| Title | Document Recording and Summarizing Customer Requirements |
|
||||
| Project period | 05/01/26–24/08/26 |
|
||||
| Release | 12/01/26 V1.0 Final |
|
||||
| Standard | ISO/IEC 29110 Basic Profile |
|
||||
| Project Manager | Apirach Supattaratpateep |
|
||||
| System Analyst | Noppong Chareunsook |
|
||||
| Developer | Thanakorn Sathitwitayakul |
|
||||
| Project Sponsor / Customer Representative | Seri Viriyasakultorn |
|
||||
| Status | Final — ready for review and authorized approval |
|
||||
|
||||
## 1. Purpose
|
||||
|
||||
This document records the customer-level functional and non-functional requirements for BRN WMS. It provides the approved input for the Software Requirements Specification, Software Design, Traceability Record, Test Cases and Test Procedures, Verification Results, Validation Results, and Acceptance Report.
|
||||
|
||||
The System Analyst records the technical interpretation, and the Project Sponsor acting as Customer Representative reviews the operational accuracy and authorizes the baseline.
|
||||
|
||||
## 2. Business need
|
||||
|
||||
B.R.N. Enterprise Co., Ltd. requires a centralized warehouse management system to improve inventory accuracy, transaction control, operational visibility, and auditability. The system must support multiple companies and warehouses while restricting users to authorized data and functions.
|
||||
|
||||
The expected business outcomes are:
|
||||
|
||||
- Timely and accurate stock information.
|
||||
- Traceable receipts, issues, transfers, lots, serial numbers, and expiry dates.
|
||||
- Controlled sales, purchasing, finance, and accounting documents.
|
||||
- Reduced manual error and duplicate data handling.
|
||||
- Faster operational and management reporting.
|
||||
- Stronger access control, company-data isolation, and accountability.
|
||||
- Maintainable deployment, configuration, backup, and recovery procedures.
|
||||
|
||||
## 3. Stakeholders
|
||||
|
||||
| Stakeholder | Project role | Responsibility and interest |
|
||||
|---|---|---|
|
||||
| Seri Viriyasakultorn | Project Sponsor / Customer Representative / Authorized Approver | Represent customer needs and approve project scope, strategic decisions, requirement baseline, acceptance, and closure. |
|
||||
| Apirach Supattaratpateep | Project Manager | Plan and coordinate requirement activities, resolve issues, control changes, and maintain the approved baseline. |
|
||||
| Noppong Chareunsook | System Analyst | Analyze customer needs, specify system behavior, and maintain technical traceability. |
|
||||
| Thanakorn Sathitwitayakul | Developer | Design and implement the solution. |
|
||||
| Parin Ngamkham | QA / Tester | Perform test execution, verification, and validation facilitation independent of the Developer. |
|
||||
| Yaowalak Bangchomphoo | Document Control | Control identifiers, versions, approvals, distribution, repository content, and evidence; same role as the example reference project for the same company. |
|
||||
| Warehouse Manager and Staff | Operational users | Perform and review warehouse, stock, barcode, and reporting operations. |
|
||||
| Sales and Purchasing Users | Business users | Perform quotation, order, purchase, invoice, and return workflows. |
|
||||
| Finance and Accounting Users | Business users | Perform billing, receipt, payment, journal, ledger, and financial reporting activities. |
|
||||
| System Administrator | Supporting user | Configure the environment, company, users, services, monitoring, backup, and recovery. |
|
||||
| Management / Auditor | Information consumer | Review controlled records, transaction history, exceptions, and management information. |
|
||||
|
||||
## 4. Operational context
|
||||
|
||||
BRN WMS is a browser-based application composed of:
|
||||
|
||||
- A PHP web application providing user interfaces and operational APIs.
|
||||
- A MySQL/MariaDB identity and company database.
|
||||
- A MySQL/MariaDB WMS and accounting database.
|
||||
- A Node.js/Socket.IO service for real-time notifications.
|
||||
- A Node.js scheduler for aggregate maintenance and operational alerts.
|
||||
- A controlled Git repository for source and configuration templates.
|
||||
|
||||
Users access the system through current standards-based browsers. The application and scheduled services operate using the Asia/Bangkok time zone.
|
||||
|
||||
## 5. Assumptions and constraints
|
||||
|
||||
- The application is deployed in a controlled PHP 8+, MySQL/MariaDB, and Node.js environment.
|
||||
- B.R.N. provides authorized users, representative operational data, and availability for review and validation.
|
||||
- Required network, server, barcode, printing, and endpoint hardware is available or procured separately.
|
||||
- Legacy-data migration is excluded unless assessed and approved through change control.
|
||||
- External ERP, bank, shipping, tax, or other third-party integration is excluded unless formally added.
|
||||
- Local credentials, passwords, tokens, and secrets are not stored in the source repository.
|
||||
- “Must” requirements are acceptance-critical. A “Should” requirement may only be deferred through documented disposition.
|
||||
|
||||
## 6. Requirement interpretation
|
||||
|
||||
| Term | Meaning |
|
||||
|---|---|
|
||||
| Must | Mandatory for acceptance unless the Project Sponsor authorizes a documented exception. |
|
||||
| Should | Expected within the agreed solution; deferral requires documented review and disposition. |
|
||||
| User | An authenticated person acting in an authorized company and role context. |
|
||||
| Company | A tenant whose data must be isolated from other companies. |
|
||||
| Warehouse location | A warehouse, storage area, and/or bin used to identify stock location. |
|
||||
| Controlled document | A business or project record with identifier, status, history, and applicable authorization. |
|
||||
|
||||
## 7. Functional requirements
|
||||
|
||||
### 7.1 Identity and access
|
||||
|
||||
| ID | Requirement | Priority | Acceptance intent |
|
||||
|---|---|---|---|
|
||||
| FR-001 | The system shall support registration and onboarding of a company owner and onboarding of invited users. | Must | An authorized user can complete the applicable onboarding flow and access the assigned company. |
|
||||
| FR-002 | The system shall authenticate users and enforce the Owner, Admin, Staff, and Viewer roles. | Must | Each role can access only its permitted screens and server-side actions. |
|
||||
| FR-003 | The system shall support password recovery, session control, and applicable OTP verification. | Must | Recovery and verification operate without exposing credentials; concurrent-session rules are enforced. |
|
||||
| FR-004 | The system shall allow authorized administrators to manage company profile, SMTP, system settings, users, and application access. | Must | Authorized changes are saved and unauthorized users are rejected. |
|
||||
|
||||
### 7.2 Master data
|
||||
|
||||
| ID | Requirement | Priority | Acceptance intent |
|
||||
|---|---|---|---|
|
||||
| FR-005 | The system shall maintain warehouses, storage areas/bins, product categories, products, contact types, and contacts. | Must | Authorized users can create, view, update, and appropriately deactivate supported records. |
|
||||
| FR-006 | The system should support both simple and layered warehouse-location models. | Should | A company can use a basic warehouse model or configured warehouse/storage/bin levels. |
|
||||
|
||||
### 7.3 Inventory and warehouse operations
|
||||
|
||||
| ID | Requirement | Priority | Acceptance intent |
|
||||
|---|---|---|---|
|
||||
| FR-007 | The system shall record stock-in using product, quantity, warehouse/location, document, and applicable traceability attributes. | Must | A valid receipt creates the expected movement and balance; invalid input is rejected. |
|
||||
| FR-008 | The system shall record stock-out with authorization and available-balance validation. | Must | An authorized issue reduces the correct balance and cannot issue an invalid quantity. |
|
||||
| FR-009 | The system shall transfer stock between authorized warehouse locations. | Must | Source and destination movements remain balanced and traceable as one transfer. |
|
||||
| FR-010 | The system shall track lot, serial number, and expiry date where applicable. | Must | Relevant stock and reports retain and display the required traceability attributes. |
|
||||
| FR-011 | The system shall display stock overview, movement history, capacity/occupancy, low-stock, expired-stock, and product-lot information. | Must | Reports reflect authorized operational data and applicable filters. |
|
||||
| FR-012 | The system should generate SKU and location barcode labels and support scanning workflows. | Should | Labels contain usable identifiers and supported screens accept scanned values. |
|
||||
|
||||
### 7.4 Sales and purchasing
|
||||
|
||||
| ID | Requirement | Priority | Acceptance intent |
|
||||
|---|---|---|---|
|
||||
| FR-013 | The system shall create and manage quotations, sales orders, invoices, returns, and credit notes. | Must | Authorized users can complete valid document lifecycles and related stock/financial effects. |
|
||||
| FR-014 | The system shall create and manage purchase requests, purchase orders, purchase invoices, and supplier returns. | Must | Authorized users can complete valid purchasing lifecycles and related stock/financial effects. |
|
||||
|
||||
### 7.5 Finance and accounting
|
||||
|
||||
| ID | Requirement | Priority | Acceptance intent |
|
||||
|---|---|---|---|
|
||||
| FR-015 | The system shall create and manage receipt billing, receipts, payment billing, and payments. | Must | Authorized financial transactions retain document linkage, amount, status, and history. |
|
||||
| FR-016 | The system shall maintain chart of accounts, departments, account formulas, journals, and general-ledger entries. | Must | Authorized users can maintain structures and post balanced, traceable entries. |
|
||||
| FR-017 | The system shall provide trial balance, profit-and-loss, balance-sheet, VAT, journal, and GL-movement reports. | Must | Reports use authorized data and produce consistent totals for the selected period. |
|
||||
|
||||
### 7.6 Documents, reports, and automation
|
||||
|
||||
| ID | Requirement | Priority | Acceptance intent |
|
||||
|---|---|---|---|
|
||||
| FR-018 | The system shall generate controlled document numbers and manage document lifecycle/status. | Must | Document numbers follow the configured sequence and invalid status transitions are rejected. |
|
||||
| FR-019 | The system should allow permitted file attachments on supported records. | Should | Allowed files can be uploaded and retrieved only by authorized users. |
|
||||
| FR-020 | The system shall allow authorized users to filter, view, print, and/or export supported operational and management reports. | Must | Report output matches the selected scope and filters. |
|
||||
| FR-021 | The system should notify authorized users of relevant status transitions and operational alerts. | Should | Relevant recipients receive only notifications within their authorized context. |
|
||||
| FR-022 | The system should maintain stock/GL summaries and generate low-stock and overdue-invoice alerts on schedule. | Should | Scheduled jobs complete without duplicate or unauthorized results. |
|
||||
| FR-023 | The system shall preserve creator, updater, status, and transaction history required for operational review. | Must | A reviewer can identify material record ownership and lifecycle events. |
|
||||
| FR-024 | The system shall restrict company and warehouse data to the current authorized user context. | Must | Cross-company and unauthorized warehouse access is prevented in UI and server-side actions. |
|
||||
|
||||
## 8. Non-functional requirements
|
||||
|
||||
| ID | Area | Requirement | Priority | Acceptance intent |
|
||||
|---|---|---|---|---|
|
||||
| NFR-001 | Security | Configuration secrets shall be protected from source control and direct public web access. | Must | Repository and deployment review find no committed active secret or publicly exposed protected configuration. |
|
||||
| NFR-002 | Security | Server-side actions shall validate input and enforce authentication, authorization, and tenant scope. | Must | Negative authorization and invalid-input tests are rejected without unauthorized data change. |
|
||||
| NFR-003 | Integrity | Related database changes shall be transactional where required and prevent invalid negative or duplicate movements. | Must | Failure/rollback and concurrency-oriented tests preserve consistent balances and records. |
|
||||
| NFR-004 | Availability | Installation, configuration, backup, and recovery procedures shall be documented. | Must | An authorized administrator can follow the documentation in the supported environment. |
|
||||
| NFR-005 | Usability | The user interface should be responsive and usable on desktop and warehouse-floor devices. | Should | Representative screens remain usable at the agreed desktop and mobile viewport sizes. |
|
||||
| NFR-006 | Performance | Daily operations should respond within practical operational time, and aggregates should support dashboards and reports. | Should | Representative operations complete acceptably on the agreed environment and data volume. |
|
||||
| NFR-007 | Maintainability | The software should use modular managers/APIs, centralized helpers, configuration templates, and version control. | Should | Maintenance review can locate responsibilities and change configuration without modifying unrelated modules. |
|
||||
| NFR-008 | Compatibility | The system shall run on PHP 8+, MySQL/MariaDB, Node.js where used, and current standards-based browsers. | Must | Installation and representative workflows succeed on the supported platform. |
|
||||
| NFR-009 | Traceability | Every approved requirement shall link to design, component, and verification evidence. | Must | The Traceability Record has no unexplained gap for an approved Must requirement. |
|
||||
| NFR-010 | Time | Application and scheduled services shall use Asia/Bangkok consistently. | Must | Stored/displayed operational times and scheduled execution follow the configured time zone. |
|
||||
|
||||
## 9. Data requirements
|
||||
|
||||
- Company data must remain logically isolated from other companies.
|
||||
- Warehouse data must remain limited to warehouses authorized for the current user.
|
||||
- Identifiers and relationships must preserve referential integrity.
|
||||
- Stock movements must retain sufficient product, quantity, location, status, and traceability information.
|
||||
- Financial and accounting records must retain document linkage, amount, posting status, period, and audit information.
|
||||
- Soft deletion or inactive status must not silently destroy required transaction history.
|
||||
- Demo/test data must be distinguishable from approved production data.
|
||||
|
||||
## 10. Interface requirements
|
||||
|
||||
### 10.1 User interface
|
||||
|
||||
- Browser-based responsive screens.
|
||||
- Navigation and available actions appropriate to the current role and application access.
|
||||
- Clear validation, status, success, and error feedback.
|
||||
- Printable business documents and barcode labels where supported.
|
||||
|
||||
### 10.2 Internal service interfaces
|
||||
|
||||
- PHP application access to two configured MySQL/MariaDB databases.
|
||||
- Authenticated or secret-protected event relay to the Node.js notification service.
|
||||
- Browser Socket.IO connection to the configured public notification endpoint.
|
||||
- Controlled scheduler invocation of approved PHP maintenance and alert jobs.
|
||||
|
||||
### 10.3 File interfaces
|
||||
|
||||
- Supported file attachment upload and retrieval.
|
||||
- Export/print output for supported operational and management reports.
|
||||
- Configuration templates that do not contain live secrets.
|
||||
|
||||
## 11. Operational scenarios for validation
|
||||
|
||||
| Scenario | Expected outcome |
|
||||
|---|---|
|
||||
| User onboarding and access | The user enters the correct company and sees only functions permitted by role and application access. |
|
||||
| Warehouse setup | Authorized users configure warehouse/location and product data required for operations. |
|
||||
| Stock receipt | A valid receipt updates traceable stock at the selected location. |
|
||||
| Stock issue | A valid issue reduces available stock; an invalid or excessive issue is rejected. |
|
||||
| Stock transfer | Source and destination movements remain balanced and traceable. |
|
||||
| Lot/serial/expiry control | Required attributes remain associated with stock and appear in applicable reports. |
|
||||
| Sales lifecycle | Quotation/order/invoice/return actions follow permitted statuses and create expected related effects. |
|
||||
| Purchasing lifecycle | Request/order/invoice/return actions follow permitted statuses and create expected related effects. |
|
||||
| Finance and accounting | Receipt/payment and journal/GL results remain balanced and reportable. |
|
||||
| Reporting | Authorized filters return consistent operational and financial results. |
|
||||
| Notification and scheduler | Relevant events and scheduled alerts reach only appropriate recipients without duplication. |
|
||||
| Tenant isolation | Attempts to access another company or unauthorized warehouse are denied. |
|
||||
|
||||
## 12. Acceptance criteria
|
||||
|
||||
The requirements baseline is satisfied when:
|
||||
|
||||
- Every Must requirement is implemented and traced to one or more test cases and results.
|
||||
- Representative end-to-end validation scenarios pass in the agreed environment.
|
||||
- No unresolved critical defect remains in security, tenant isolation, inventory integrity, transaction integrity, or core workflows.
|
||||
- Any deferred Should requirement has a documented and authorized disposition.
|
||||
- User, operation, configuration, and maintenance documentation covers the delivered system.
|
||||
- The Project Sponsor acting as Customer Representative confirms that the requirements reflect intended use.
|
||||
- The Project Sponsor authorizes the requirement baseline and applicable acceptance result.
|
||||
|
||||
## 13. Requirement change control
|
||||
|
||||
After authorization, a requirement change must:
|
||||
|
||||
1. Receive a unique Change Report reference.
|
||||
2. Identify the requested change and business reason.
|
||||
3. Analyze scope, schedule, design, implementation, test, security, and documentation impact.
|
||||
4. Receive Project Sponsor authorization before baseline modification.
|
||||
5. Update the SRS, design, traceability, tests, plan, and affected records.
|
||||
6. Be implemented, verified, validated where applicable, and formally closed.
|
||||
|
||||
## 14. Traceability rule
|
||||
|
||||
Each requirement ID in this document must appear in the Traceability Record with links to:
|
||||
|
||||
- The corresponding SRS requirement.
|
||||
- One or more Software Design elements.
|
||||
- Implementing component(s), configuration, or operational control.
|
||||
- Verification method and Test Case ID(s).
|
||||
- Test result and defect/correction reference where applicable.
|
||||
- Validation or acceptance evidence for customer-facing requirements.
|
||||
|
||||
## 15. Approval
|
||||
|
||||
### Prepared by
|
||||
|
||||
Name: Thanakorn Sathitwitayakul
|
||||
|
||||
Role: Developer
|
||||
|
||||
Signature: ______________________________________________
|
||||
|
||||
Date: ___________________________________________________
|
||||
|
||||
### Reviewed by
|
||||
|
||||
Name: Apirach Supattaratpateep
|
||||
|
||||
Role: Project Manager
|
||||
|
||||
Signature: ______________________________________________
|
||||
|
||||
Date: ___________________________________________________
|
||||
|
||||
### Reviewed, confirmed, and authorized by
|
||||
|
||||
Name: Seri Viriyasakultorn
|
||||
|
||||
Project roles: Project Sponsor / Customer Representative / Authorized Approver
|
||||
|
||||
Position: Managing Director
|
||||
|
||||
Company: B.R.N. Enterprise Co., Ltd.
|
||||
|
||||
Signature: ______________________________________________
|
||||
|
||||
Date: ___________________________________________________
|
||||
+79
@@ -0,0 +1,79 @@
|
||||
# Progress Status Record 1 of 13
|
||||
|
||||
| Document field | Value |
|
||||
|---|---|
|
||||
| Document | Progress Status Record |
|
||||
| Project | BRN WMS |
|
||||
| Project code | 200-WMS-26-001-00 |
|
||||
| Reporting period | 05/01/26–23/01/26 |
|
||||
| Report date | 23/01/26 |
|
||||
| Release | 23/01/26 V1.0 Final |
|
||||
| Prepared by | Apirach Supattaratpateep — Project Manager |
|
||||
| Status | Final — ready for review and authorization |
|
||||
|
||||
## 1. Period objective
|
||||
|
||||
**Milestone:** Project initiation
|
||||
|
||||
**Planned outcome:** Establish the project need, stakeholders, objectives, scope, and authority.
|
||||
|
||||
## 2. Task progress
|
||||
|
||||
**Period summary:** Formal project start and scope boundary were established from the agreed lifecycle.
|
||||
|
||||
| Task ID | Task | Planned finish | Actual / evidence date | Completion | Evidence | Status |
|
||||
|---|---|---:|---:|---:|---|---|
|
||||
| 1.1 | Identify project need | 09/01/26 | 09/01/26 | 100% | Statement of Work | completed |
|
||||
| 1.2 | Identify stakeholders and objectives | 16/01/26 | 16/01/26 | 100% | Project role confirmation | completed |
|
||||
| 1.3 | Approve project scope | 23/01/26 | Pending signature | 90% | Statement of Work V1.0 Final | Approval pending |
|
||||
|
||||
|
||||
| Evidence field | Value |
|
||||
|---|---|
|
||||
| Evidence classification | Agreed |
|
||||
| Evidence reference | Statement of Work; Work Schedule |
|
||||
| Overall period status | Not rated — no contemporaneous rating was recorded for this period |
|
||||
|
||||
## 3. Schedule status
|
||||
|
||||
Initiation tasks 1.1 and 1.2 finished on their planned dates. Task 1.3 (scope approval) is complete in content but awaits authorized signature.
|
||||
|
||||
|
||||
## 4. Issues, risks, and corrective action
|
||||
|
||||
**Issue or risk:** Maintain project initiation records and approvals.
|
||||
|
||||
**Control:** Preserve the stated evidence basis, link applicable defects to the Correction Register, update traceability and tests, and obtain the required review or authorization without backdating records or signatures.
|
||||
|
||||
## 5. Changes
|
||||
|
||||
Technical commits in this period are implementation evidence. They must be classified separately as in-scope implementation, defect correction, or an authorized baseline change before being entered in the Change Report.
|
||||
|
||||
## 6. Next-period plan
|
||||
|
||||
Complete customer requirements and project planning baseline.
|
||||
|
||||
## 7. Approval
|
||||
|
||||
### Prepared by
|
||||
|
||||
Name: Apirach Supattaratpateep
|
||||
Role: Project Manager
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
|
||||
### Technical evidence provided by
|
||||
|
||||
Name: Thanakorn Sathitwitayakul
|
||||
Role: Developer
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
|
||||
### Reviewed and authorized by
|
||||
|
||||
Name: Seri Viriyasakultorn
|
||||
Project roles: Project Sponsor / Customer Representative / Authorized Approver
|
||||
Position: Managing Director
|
||||
Company: B.R.N. Enterprise Co., Ltd.
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
+79
@@ -0,0 +1,79 @@
|
||||
# Progress Status Record 2 of 13
|
||||
|
||||
| Document field | Value |
|
||||
|---|---|
|
||||
| Document | Progress Status Record |
|
||||
| Project | BRN WMS |
|
||||
| Project code | 200-WMS-26-001-00 |
|
||||
| Reporting period | 12/01/26–18/02/26 |
|
||||
| Report date | 18/02/26 |
|
||||
| Release | 18/02/26 V1.0 Final |
|
||||
| Prepared by | Apirach Supattaratpateep — Project Manager |
|
||||
| Status | Final — ready for review and authorization |
|
||||
|
||||
## 1. Period objective
|
||||
|
||||
**Milestone:** Requirements and planning baseline
|
||||
|
||||
**Planned outcome:** Collect customer requirements and define schedule, resources, risks, controls, and work-product responsibilities.
|
||||
|
||||
## 2. Task progress
|
||||
|
||||
**Period summary:** Customer Requirements, Work Schedule, and Software Project Plan were prepared from the agreed scope and the available implementation evidence.
|
||||
|
||||
| Task ID | Task | Planned finish | Actual / evidence date | Completion | Evidence | Status |
|
||||
|---|---|---:|---:|---:|---|---|
|
||||
| 2.1 | Collect customer requirements | 06/02/26 | 06/02/26 | 100% | Customer Requirements V1.0 Final | completed |
|
||||
| 2.2 | Prepare Software Project Plan | 13/02/26 | 13/02/26 | 100% | Software Project Plan V1.0 Final | completed |
|
||||
| 2.3 | Baseline requirements and schedule | 18/02/26 | 18/02/26 | 100% | Work Schedule and Project Plan | completed; approval pending |
|
||||
|
||||
|
||||
| Evidence field | Value |
|
||||
|---|---|
|
||||
| Evidence classification | Document |
|
||||
| Evidence reference | Project Plan work products |
|
||||
| Overall period status | Not rated — no contemporaneous rating was recorded for this period |
|
||||
|
||||
## 3. Schedule status
|
||||
|
||||
Planning tasks 2.1–2.3 all finished on their planned dates. The requirements and schedule baseline is set for development to begin 19/02/26.
|
||||
|
||||
|
||||
## 4. Issues, risks, and corrective action
|
||||
|
||||
**Issue or risk:** Exact elicitation dates and approvals are unavailable.
|
||||
|
||||
**Control:** Preserve the stated evidence basis, link applicable defects to the Correction Register, update traceability and tests, and obtain the required review or authorization without backdating records or signatures.
|
||||
|
||||
## 5. Changes
|
||||
|
||||
Technical commits in this period are implementation evidence. They must be classified separately as in-scope implementation, defect correction, or an authorized baseline change before being entered in the Change Report.
|
||||
|
||||
## 6. Next-period plan
|
||||
|
||||
Begin controlled software implementation on 19/02/26.
|
||||
|
||||
## 7. Approval
|
||||
|
||||
### Prepared by
|
||||
|
||||
Name: Apirach Supattaratpateep
|
||||
Role: Project Manager
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
|
||||
### Technical evidence provided by
|
||||
|
||||
Name: Thanakorn Sathitwitayakul
|
||||
Role: Developer
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
|
||||
### Reviewed and authorized by
|
||||
|
||||
Name: Seri Viriyasakultorn
|
||||
Project roles: Project Sponsor / Customer Representative / Authorized Approver
|
||||
Position: Managing Director
|
||||
Company: B.R.N. Enterprise Co., Ltd.
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
+76
@@ -0,0 +1,76 @@
|
||||
# Progress Status Record 3 of 13
|
||||
|
||||
| Document field | Value |
|
||||
|---|---|
|
||||
| Document | Progress Status Record |
|
||||
| Project | BRN WMS |
|
||||
| Project code | 200-WMS-26-001-00 |
|
||||
| Reporting period | 19/02/26–25/02/26 |
|
||||
| Report date | 25/02/26 |
|
||||
| Release | 25/02/26 V1.0 Final |
|
||||
| Prepared by | Apirach Supattaratpateep — Project Manager |
|
||||
| Status | Final — ready for review and authorization |
|
||||
|
||||
## 1. Period objective
|
||||
|
||||
**Milestone:** Application initialization
|
||||
|
||||
**Planned outcome:** Initialize the repository and establish initial application and file-upload capability.
|
||||
|
||||
## 2. Task progress
|
||||
|
||||
**Period summary:** WMS repository initialized; verification commit and dropzone/file-upload work completed.
|
||||
|
||||
| Task ID | Task | Planned finish | Actual / evidence date | Completion | Evidence | Status |
|
||||
|---|---|---:|---:|---:|---|---|
|
||||
| 3.1 | Initialize WMS application | 25/02/26 | 25/02/26 | 100% | Git `9a50080`–`1843308` | Completed |
|
||||
|
||||
|
||||
| Evidence field | Value |
|
||||
|---|---|
|
||||
| Evidence reference | `9a50080`, `42a3876`, `8625652`, `1843308` |
|
||||
| Overall period status | Green |
|
||||
|
||||
## 3. Schedule status
|
||||
|
||||
Task 3.1 finished on its planned date of 25/02/26. No schedule deviation in this period.
|
||||
|
||||
|
||||
## 4. Issues, risks, and corrective action
|
||||
|
||||
**Issue or risk:** No unresolved blocker is evidenced in the repository for this period.
|
||||
|
||||
**Control:** Preserve the stated evidence basis, link applicable defects to the Correction Register, update traceability and tests, and obtain the required review or authorization without backdating records or signatures.
|
||||
|
||||
## 5. Changes
|
||||
|
||||
Technical commits in this period are implementation evidence. They must be classified separately as in-scope implementation, defect correction, or an authorized baseline change before being entered in the Change Report.
|
||||
|
||||
## 6. Next-period plan
|
||||
|
||||
Protect configuration, address security findings, and establish the stock database foundation.
|
||||
|
||||
## 7. Approval
|
||||
|
||||
### Prepared by
|
||||
|
||||
Name: Apirach Supattaratpateep
|
||||
Role: Project Manager
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
|
||||
### Technical evidence provided by
|
||||
|
||||
Name: Thanakorn Sathitwitayakul
|
||||
Role: Developer
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
|
||||
### Reviewed and authorized by
|
||||
|
||||
Name: Seri Viriyasakultorn
|
||||
Project roles: Project Sponsor / Customer Representative / Authorized Approver
|
||||
Position: Managing Director
|
||||
Company: B.R.N. Enterprise Co., Ltd.
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
+76
@@ -0,0 +1,76 @@
|
||||
# Progress Status Record 4 of 13
|
||||
|
||||
| Document field | Value |
|
||||
|---|---|
|
||||
| Document | Progress Status Record |
|
||||
| Project | BRN WMS |
|
||||
| Project code | 200-WMS-26-001-00 |
|
||||
| Reporting period | 09/03/26–17/03/26 |
|
||||
| Report date | 17/03/26 |
|
||||
| Release | 17/03/26 V1.0 Final |
|
||||
| Prepared by | Apirach Supattaratpateep — Project Manager |
|
||||
| Status | Final — ready for review and authorization |
|
||||
|
||||
## 1. Period objective
|
||||
|
||||
**Milestone:** Security, database, and ICS foundation
|
||||
|
||||
**Planned outcome:** Protect local configuration, address initial security findings, design the stock database, and introduce inventory-control modules.
|
||||
|
||||
## 2. Task progress
|
||||
|
||||
**Period summary:** Configuration was removed from tracking, security-audit fixes were applied, stock database design was committed, and ICS modules were introduced.
|
||||
|
||||
| Task ID | Task | Planned finish | Actual / evidence date | Completion | Evidence | Status |
|
||||
|---|---|---:|---:|---:|---|---|
|
||||
| 3.2 | Security and database foundation | 17/03/26 | 17/03/26 | 100% | Git `93d903c`–`a4f474b` | Completed |
|
||||
|
||||
|
||||
| Evidence field | Value |
|
||||
|---|---|
|
||||
| Evidence reference | `93d903c`, `7cb78d0`, `2e558a5`, `a4f474b` |
|
||||
| Overall period status | Green |
|
||||
|
||||
## 3. Schedule status
|
||||
|
||||
Task 3.2 finished on its planned date of 17/03/26. No schedule deviation, though commit activity was concentrated at the start and end of the period.
|
||||
|
||||
|
||||
## 4. Issues, risks, and corrective action
|
||||
|
||||
**Issue or risk:** The period contains a gap in commit activity before the documented security/database work.
|
||||
|
||||
**Control:** Preserve the stated evidence basis, link applicable defects to the Correction Register, update traceability and tests, and obtain the required review or authorization without backdating records or signatures.
|
||||
|
||||
## 5. Changes
|
||||
|
||||
Technical commits in this period are implementation evidence. They must be classified separately as in-scope implementation, defect correction, or an authorized baseline change before being entered in the Change Report.
|
||||
|
||||
## 6. Next-period plan
|
||||
|
||||
Develop stock visibility, warehouse structure, product controls, and operational reports.
|
||||
|
||||
## 7. Approval
|
||||
|
||||
### Prepared by
|
||||
|
||||
Name: Apirach Supattaratpateep
|
||||
Role: Project Manager
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
|
||||
### Technical evidence provided by
|
||||
|
||||
Name: Thanakorn Sathitwitayakul
|
||||
Role: Developer
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
|
||||
### Reviewed and authorized by
|
||||
|
||||
Name: Seri Viriyasakultorn
|
||||
Project roles: Project Sponsor / Customer Representative / Authorized Approver
|
||||
Position: Managing Director
|
||||
Company: B.R.N. Enterprise Co., Ltd.
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
+76
@@ -0,0 +1,76 @@
|
||||
# Progress Status Record 5 of 13
|
||||
|
||||
| Document field | Value |
|
||||
|---|---|
|
||||
| Document | Progress Status Record |
|
||||
| Project | BRN WMS |
|
||||
| Project code | 200-WMS-26-001-00 |
|
||||
| Reporting period | 09/04/26–29/04/26 |
|
||||
| Report date | 29/04/26 |
|
||||
| Release | 29/04/26 V1.0 Final |
|
||||
| Prepared by | Apirach Supattaratpateep — Project Manager |
|
||||
| Status | Final — ready for review and authorization |
|
||||
|
||||
## 1. Period objective
|
||||
|
||||
**Milestone:** Inventory, warehouse, and access foundation
|
||||
|
||||
**Planned outcome:** Implement stock dashboard, products, warehouse capacity, traceability, reports, settings, authentication, and reusable managers.
|
||||
|
||||
## 2. Task progress
|
||||
|
||||
**Period summary:** Dashboard, product files, OOP utilities, capacity/occupancy, lot/serial/expiry, reports, settings, login/onboarding, and manager classes were implemented.
|
||||
|
||||
| Task ID | Task | Planned finish | Actual / evidence date | Completion | Evidence | Status |
|
||||
|---|---|---:|---:|---:|---|---|
|
||||
| 3.3 | Inventory and warehouse modules | 29/04/26 | 29/04/26 | 100% | Git `3b8f94f`–`db5c47b` | Completed |
|
||||
|
||||
|
||||
| Evidence field | Value |
|
||||
|---|---|
|
||||
| Evidence reference | `3b8f94f` through `db5c47b` |
|
||||
| Overall period status | Green |
|
||||
|
||||
## 3. Schedule status
|
||||
|
||||
Task 3.3 finished on its planned date of 29/04/26. No schedule deviation in this period.
|
||||
|
||||
|
||||
## 4. Issues, risks, and corrective action
|
||||
|
||||
**Issue or risk:** Rapid module growth increased the need for consistent authorization and lifecycle review.
|
||||
|
||||
**Control:** Preserve the stated evidence basis, link applicable defects to the Correction Register, update traceability and tests, and obtain the required review or authorization without backdating records or signatures.
|
||||
|
||||
## 5. Changes
|
||||
|
||||
Technical commits in this period are implementation evidence. They must be classified separately as in-scope implementation, defect correction, or an authorized baseline change before being entered in the Change Report.
|
||||
|
||||
## 6. Next-period plan
|
||||
|
||||
Complete document approval logic, orders, warehouse layers, barcode, and role guards.
|
||||
|
||||
## 7. Approval
|
||||
|
||||
### Prepared by
|
||||
|
||||
Name: Apirach Supattaratpateep
|
||||
Role: Project Manager
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
|
||||
### Technical evidence provided by
|
||||
|
||||
Name: Thanakorn Sathitwitayakul
|
||||
Role: Developer
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
|
||||
### Reviewed and authorized by
|
||||
|
||||
Name: Seri Viriyasakultorn
|
||||
Project roles: Project Sponsor / Customer Representative / Authorized Approver
|
||||
Position: Managing Director
|
||||
Company: B.R.N. Enterprise Co., Ltd.
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
+77
@@ -0,0 +1,77 @@
|
||||
# Progress Status Record 6 of 13
|
||||
|
||||
| Document field | Value |
|
||||
|---|---|
|
||||
| Document | Progress Status Record |
|
||||
| Project | BRN WMS |
|
||||
| Project code | 200-WMS-26-001-00 |
|
||||
| Reporting period | 30/04/26–08/05/26 |
|
||||
| Report date | 08/05/26 |
|
||||
| Release | 08/05/26 V1.0 Final |
|
||||
| Prepared by | Apirach Supattaratpateep — Project Manager |
|
||||
| Status | Final — ready for review and authorization |
|
||||
|
||||
## 1. Period objective
|
||||
|
||||
**Milestone:** Orders, barcode, and security controls
|
||||
|
||||
**Planned outcome:** Implement approval logic, customer order flows, flexible warehouse layers, barcode operations, and centralized role guards.
|
||||
|
||||
## 2. Task progress
|
||||
|
||||
**Period summary:** Password scoring, stock approval, orders/returns/invoices, switchable warehouse layers, barcode functions, role guards, security fixes, and naming/session corrections were completed.
|
||||
|
||||
| Task ID | Task | Planned finish | Actual / evidence date | Completion | Evidence | Status |
|
||||
|---|---|---:|---:|---:|---|---|
|
||||
| 3.4 | Authentication and onboarding | 12/05/26 | In progress at 08-May | 70% | Commits through 08/05/26 | In progress; carried forward |
|
||||
| 3.5 | Order and barcode workflows | 08/05/26 | 08/05/26 | 100% | 02/05/26–08/05/26 commits | Completed |
|
||||
|
||||
|
||||
| Evidence field | Value |
|
||||
|---|---|
|
||||
| Evidence reference | 30/04/26–08/05/26 commits |
|
||||
| Overall period status | Green |
|
||||
|
||||
## 3. Schedule status
|
||||
|
||||
Task 3.5 finished on its planned date of 08/05/26. Task 3.4 is running to its planned finish of 12/05/26 and is carried forward at 70%.
|
||||
|
||||
|
||||
## 4. Issues, risks, and corrective action
|
||||
|
||||
**Issue or risk:** Security gaps were actively corrected during implementation; formal correction records remain to be linked.
|
||||
|
||||
**Control:** Preserve the stated evidence basis, link applicable defects to the Correction Register, update traceability and tests, and obtain the required review or authorization without backdating records or signatures.
|
||||
|
||||
## 5. Changes
|
||||
|
||||
Technical commits in this period are implementation evidence. They must be classified separately as in-scope implementation, defect correction, or an authorized baseline change before being entered in the Change Report.
|
||||
|
||||
## 6. Next-period plan
|
||||
|
||||
Prepare production setup and introduce accounting capabilities.
|
||||
|
||||
## 7. Approval
|
||||
|
||||
### Prepared by
|
||||
|
||||
Name: Apirach Supattaratpateep
|
||||
Role: Project Manager
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
|
||||
### Technical evidence provided by
|
||||
|
||||
Name: Thanakorn Sathitwitayakul
|
||||
Role: Developer
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
|
||||
### Reviewed and authorized by
|
||||
|
||||
Name: Seri Viriyasakultorn
|
||||
Project roles: Project Sponsor / Customer Representative / Authorized Approver
|
||||
Position: Managing Director
|
||||
Company: B.R.N. Enterprise Co., Ltd.
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
+78
@@ -0,0 +1,78 @@
|
||||
# Progress Status Record 7 of 13
|
||||
|
||||
| Document field | Value |
|
||||
|---|---|
|
||||
| Document | Progress Status Record |
|
||||
| Project | BRN WMS |
|
||||
| Project code | 200-WMS-26-001-00 |
|
||||
| Reporting period | 11/05/26–13/05/26 |
|
||||
| Report date | 13/05/26 |
|
||||
| Release | 13/05/26 V1.0 Final |
|
||||
| Prepared by | Apirach Supattaratpateep — Project Manager |
|
||||
| Status | Final — ready for review and authorization |
|
||||
|
||||
## 1. Period objective
|
||||
|
||||
**Milestone:** Production preparation and accounting foundation
|
||||
|
||||
**Planned outcome:** Prepare deployment, automate setup, correct onboarding/recovery, populate test data, and introduce accounting.
|
||||
|
||||
## 2. Task progress
|
||||
|
||||
**Period summary:** Production preparation, dynamic base URL, automated setup, password recovery, onboarding fixes, test data, dashboard updates, and accounting modules were committed.
|
||||
|
||||
| Task ID | Task | Planned finish | Actual / evidence date | Completion | Evidence | Status |
|
||||
|---|---|---:|---:|---:|---|---|
|
||||
| 3.4 | Authentication and onboarding | 12/05/26 | 12/05/26 | 100% | Login/onboarding and recovery commits | Completed |
|
||||
| 3.6 | Production preparation and setup | 13/05/26 | 13/05/26 | 100% | 11/05/26–13/05/26 commits | Completed |
|
||||
| 3.7 | Accounting and finance workflows | 23/05/26 | In progress at 13-May | 20% | Accounting foundation commits | In progress; carried forward |
|
||||
|
||||
|
||||
| Evidence field | Value |
|
||||
|---|---|
|
||||
| Evidence reference | 11/05/26–13/05/26 commits |
|
||||
| Overall period status | Green |
|
||||
|
||||
## 3. Schedule status
|
||||
|
||||
Tasks 3.4 and 3.6 finished on their planned dates. Task 3.7 is running to its planned finish of 23/05/26 and is carried forward at 20%.
|
||||
|
||||
|
||||
## 4. Issues, risks, and corrective action
|
||||
|
||||
**Issue or risk:** Multiple fixes and a revert occurred during integration; results require traceability to tests.
|
||||
|
||||
**Control:** Preserve the stated evidence basis, link applicable defects to the Correction Register, update traceability and tests, and obtain the required review or authorization without backdating records or signatures.
|
||||
|
||||
## 5. Changes
|
||||
|
||||
Technical commits in this period are implementation evidence. They must be classified separately as in-scope implementation, defect correction, or an authorized baseline change before being entered in the Change Report.
|
||||
|
||||
## 6. Next-period plan
|
||||
|
||||
Integrate accounting workflows, document control, access limits, and supporting services.
|
||||
|
||||
## 7. Approval
|
||||
|
||||
### Prepared by
|
||||
|
||||
Name: Apirach Supattaratpateep
|
||||
Role: Project Manager
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
|
||||
### Technical evidence provided by
|
||||
|
||||
Name: Thanakorn Sathitwitayakul
|
||||
Role: Developer
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
|
||||
### Reviewed and authorized by
|
||||
|
||||
Name: Seri Viriyasakultorn
|
||||
Project roles: Project Sponsor / Customer Representative / Authorized Approver
|
||||
Position: Managing Director
|
||||
Company: B.R.N. Enterprise Co., Ltd.
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
+78
@@ -0,0 +1,78 @@
|
||||
# Progress Status Record 8 of 13
|
||||
|
||||
| Document field | Value |
|
||||
|---|---|
|
||||
| Document | Progress Status Record |
|
||||
| Project | BRN WMS |
|
||||
| Project code | 200-WMS-26-001-00 |
|
||||
| Reporting period | 20/05/26–23/05/26 |
|
||||
| Report date | 23/05/26 |
|
||||
| Release | 23/05/26 V1.0 Final |
|
||||
| Prepared by | Apirach Supattaratpateep — Project Manager |
|
||||
| Status | Final — ready for review and authorization |
|
||||
|
||||
## 1. Period objective
|
||||
|
||||
**Milestone:** Accounting integration and supporting services
|
||||
|
||||
**Planned outcome:** Integrate accounting, user invitation/access controls, transaction limits, document flows, Node.js, aggregates, and reports.
|
||||
|
||||
## 2. Task progress
|
||||
|
||||
**Period summary:** Accounting workflows, access controls, setup script, soft delete, Socket service, GL aggregation, accounting reports, journal batching, and GL automation were implemented.
|
||||
|
||||
| Task ID | Task | Planned finish | Actual / evidence date | Completion | Evidence | Status |
|
||||
|---|---|---:|---:|---:|---|---|
|
||||
| 3.7 | Accounting and finance workflows | 23/05/26 | 23/05/26 | 100% | 13/05/26–23/05/26 accounting commits | Completed |
|
||||
| 3.8 | Real-time services and scheduled jobs | 27/05/26 | In progress at 23-May | 45% | Node.js and GL aggregate commits | In progress; carried forward |
|
||||
| 3.9 | Security hardening and lifecycle review | 28/05/26 | In progress at 23-May | 35% | Access, flow, and role-guard commits | In progress; carried forward |
|
||||
|
||||
|
||||
| Evidence field | Value |
|
||||
|---|---|
|
||||
| Evidence reference | 20/05/26–23/05/26 commits |
|
||||
| Overall period status | Green |
|
||||
|
||||
## 3. Schedule status
|
||||
|
||||
Task 3.7 finished on its planned date of 23/05/26. Tasks 3.8 and 3.9 are running to their planned finishes of 27/05/26 and 28/05/26 and are carried forward.
|
||||
|
||||
|
||||
## 4. Issues, risks, and corrective action
|
||||
|
||||
**Issue or risk:** Integration breadth increased regression and tenant-isolation risk.
|
||||
|
||||
**Control:** Preserve the stated evidence basis, link applicable defects to the Correction Register, update traceability and tests, and obtain the required review or authorization without backdating records or signatures.
|
||||
|
||||
## 5. Changes
|
||||
|
||||
Technical commits in this period are implementation evidence. They must be classified separately as in-scope implementation, defect correction, or an authorized baseline change before being entered in the Change Report.
|
||||
|
||||
## 6. Next-period plan
|
||||
|
||||
Complete security hardening, notification control, sequencing, scheduler, tenant scoping, and final review.
|
||||
|
||||
## 7. Approval
|
||||
|
||||
### Prepared by
|
||||
|
||||
Name: Apirach Supattaratpateep
|
||||
Role: Project Manager
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
|
||||
### Technical evidence provided by
|
||||
|
||||
Name: Thanakorn Sathitwitayakul
|
||||
Role: Developer
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
|
||||
### Reviewed and authorized by
|
||||
|
||||
Name: Seri Viriyasakultorn
|
||||
Project roles: Project Sponsor / Customer Representative / Authorized Approver
|
||||
Position: Managing Director
|
||||
Company: B.R.N. Enterprise Co., Ltd.
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
+78
@@ -0,0 +1,78 @@
|
||||
# Progress Status Record 9 of 13
|
||||
|
||||
| Document field | Value |
|
||||
|---|---|
|
||||
| Document | Progress Status Record |
|
||||
| Project | BRN WMS |
|
||||
| Project code | 200-WMS-26-001-00 |
|
||||
| Reporting period | 24/05/26–29/05/26 |
|
||||
| Report date | 29/05/26 |
|
||||
| Release | 29/05/26 V1.0 Final |
|
||||
| Prepared by | Apirach Supattaratpateep — Project Manager |
|
||||
| Status | Final — ready for review and authorization |
|
||||
|
||||
## 1. Period objective
|
||||
|
||||
**Milestone:** Development baseline
|
||||
|
||||
**Planned outcome:** Harden security and integrity, close known implementation gaps, stabilize services, and establish the substantially complete development baseline.
|
||||
|
||||
## 2. Task progress
|
||||
|
||||
**Period summary:** Session controls, aggregates, notifications, security/lifecycle reviews, transaction limits, document sequencing, role guards, scheduler fixes, bin naming, tenant scoping, and final refactoring were completed.
|
||||
|
||||
| Task ID | Task | Planned finish | Actual / evidence date | Completion | Evidence | Status |
|
||||
|---|---|---:|---:|---:|---|---|
|
||||
| 3.8 | Real-time services and scheduled jobs | 27/05/26 | 27/05/26 | 100% | 22–27 May Node.js/scheduler commits | Completed |
|
||||
| 3.9 | Security hardening and lifecycle review | 28/05/26 | 28/05/26 | 100% | 21–28 May hardening/review commits | Completed |
|
||||
| 3.10 | Refactor and development baseline | 29/05/26 | 29/05/26 | 100% | Git `a0677d6` | Completed |
|
||||
|
||||
|
||||
| Evidence field | Value |
|
||||
|---|---|
|
||||
| Evidence reference | 24/05/26–29/05/26 commits; final `a0677d6` |
|
||||
| Overall period status | Green |
|
||||
|
||||
## 3. Schedule status
|
||||
|
||||
Tasks 3.8, 3.9 and 3.10 all finished on their planned dates. The development baseline is reached as scheduled on 29/05/26.
|
||||
|
||||
|
||||
## 4. Issues, risks, and corrective action
|
||||
|
||||
**Issue or risk:** Formal verification, validation, and acceptance evidence remained to be consolidated after development.
|
||||
|
||||
**Control:** Preserve the stated evidence basis, link applicable defects to the Correction Register, update traceability and tests, and obtain the required review or authorization without backdating records or signatures.
|
||||
|
||||
## 5. Changes
|
||||
|
||||
Technical commits in this period are implementation evidence. They must be classified separately as in-scope implementation, defect correction, or an authorized baseline change before being entered in the Change Report.
|
||||
|
||||
## 6. Next-period plan
|
||||
|
||||
Conduct verification, validation, documentation, and delivery preparation.
|
||||
|
||||
## 7. Approval
|
||||
|
||||
### Prepared by
|
||||
|
||||
Name: Apirach Supattaratpateep
|
||||
Role: Project Manager
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
|
||||
### Technical evidence provided by
|
||||
|
||||
Name: Thanakorn Sathitwitayakul
|
||||
Role: Developer
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
|
||||
### Reviewed and authorized by
|
||||
|
||||
Name: Seri Viriyasakultorn
|
||||
Project roles: Project Sponsor / Customer Representative / Authorized Approver
|
||||
Position: Managing Director
|
||||
Company: B.R.N. Enterprise Co., Ltd.
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
+79
@@ -0,0 +1,79 @@
|
||||
# Progress Status Record 10 of 13
|
||||
|
||||
| Document field | Value |
|
||||
|---|---|
|
||||
| Document | Progress Status Record |
|
||||
| Project | BRN WMS |
|
||||
| Project code | 200-WMS-26-001-00 |
|
||||
| Reporting period | 30/05/26–31/07/26 |
|
||||
| Report date | 31/07/26 |
|
||||
| Release | 31/07/26 V1.0 Final |
|
||||
| Prepared by | Apirach Supattaratpateep — Project Manager |
|
||||
| Status | Final — ready for review and authorization |
|
||||
|
||||
## 1. Period objective
|
||||
|
||||
**Milestone:** Verification, validation, and documentation
|
||||
|
||||
**Planned outcome:** Verify requirements/design/software, validate intended use, prepare operational documents, and consolidate delivery evidence.
|
||||
|
||||
## 2. Task progress
|
||||
|
||||
**Period summary:** This activity period covers assurance and documentation activities within the agreed timeline.
|
||||
|
||||
| Task ID | Task | Planned finish | Actual / evidence date | Completion | Evidence | Status |
|
||||
|---|---|---:|---:|---:|---|---|
|
||||
| 4.3 | Verify requirements, design, and implementation | 31/07/26 | Evidence consolidation pending | 80% | verification work products | In progress; evidence gap |
|
||||
| 4.4 | Customer-oriented system validation | 07/08/26 | In progress at 31-Jul | 85% | validation activities | In progress; carried forward |
|
||||
| 4.5 | Prepare operational documentation | 07/08/26 | In progress at 31-Jul | 85% | Configuration and draft work products | In progress; carried forward |
|
||||
|
||||
|
||||
| Evidence field | Value |
|
||||
|---|---|
|
||||
| Evidence classification | Document |
|
||||
| Evidence reference | SRS, Design, Traceability, Test, Guide, Verification, and Validation work products |
|
||||
| Overall period status | Amber |
|
||||
|
||||
## 3. Schedule status
|
||||
|
||||
Task 4.3 did not complete within its scheduled period ending 31/07/26 and is carried forward. Tasks 4.4 and 4.5 are running to their planned finish of 07/08/26.
|
||||
|
||||
|
||||
## 4. Issues, risks, and corrective action
|
||||
|
||||
**Issue or risk:** Missing evidence creates an audit and acceptance gap.
|
||||
|
||||
**Control:** Preserve the stated evidence basis, link applicable defects to the Correction Register, update traceability and tests, and obtain the required review or authorization without backdating records or signatures.
|
||||
|
||||
## 5. Changes
|
||||
|
||||
Technical commits in this period are implementation evidence. They must be classified separately as in-scope implementation, defect correction, or an authorized baseline change before being entered in the Change Report.
|
||||
|
||||
## 6. Next-period plan
|
||||
|
||||
Complete stabilization corrections, finalize evidence, and obtain stakeholder review.
|
||||
|
||||
## 7. Approval
|
||||
|
||||
### Prepared by
|
||||
|
||||
Name: Apirach Supattaratpateep
|
||||
Role: Project Manager
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
|
||||
### Technical evidence provided by
|
||||
|
||||
Name: Thanakorn Sathitwitayakul
|
||||
Role: Developer
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
|
||||
### Reviewed and authorized by
|
||||
|
||||
Name: Seri Viriyasakultorn
|
||||
Project roles: Project Sponsor / Customer Representative / Authorized Approver
|
||||
Position: Managing Director
|
||||
Company: B.R.N. Enterprise Co., Ltd.
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
+76
@@ -0,0 +1,76 @@
|
||||
# Progress Status Record 11 of 13
|
||||
|
||||
| Document field | Value |
|
||||
|---|---|
|
||||
| Document | Progress Status Record |
|
||||
| Project | BRN WMS |
|
||||
| Project code | 200-WMS-26-001-00 |
|
||||
| Reporting period | 03/08/26 |
|
||||
| Report date | 03/08/26 |
|
||||
| Release | 03/08/26 V1.0 Final |
|
||||
| Prepared by | Apirach Supattaratpateep — Project Manager |
|
||||
| Status | Final — ready for review and authorization |
|
||||
|
||||
## 1. Period objective
|
||||
|
||||
**Milestone:** Stabilization correction
|
||||
|
||||
**Planned outcome:** Correct login and environment-configuration issues identified after the development baseline.
|
||||
|
||||
## 2. Task progress
|
||||
|
||||
**Period summary:** Login and configuration corrections were committed.
|
||||
|
||||
| Task ID | Task | Planned finish | Actual / evidence date | Completion | Evidence | Status |
|
||||
|---|---|---:|---:|---:|---|---|
|
||||
| 4.6 | Configuration and login corrections | 03/08/26 | 03/08/26 | 100% | Git `b2c4374` | Completed; formal correction closure pending |
|
||||
|
||||
|
||||
| Evidence field | Value |
|
||||
|---|---|
|
||||
| Evidence reference | `b2c4374` |
|
||||
| Overall period status | Green |
|
||||
|
||||
## 3. Schedule status
|
||||
|
||||
Task 4.6 finished on its planned date of 03/08/26. No schedule deviation in this period.
|
||||
|
||||
|
||||
## 4. Issues, risks, and corrective action
|
||||
|
||||
**Issue or risk:** The correction requires linkage to the Correction Register and verification evidence.
|
||||
|
||||
**Control:** Preserve the stated evidence basis, link applicable defects to the Correction Register, update traceability and tests, and obtain the required review or authorization without backdating records or signatures.
|
||||
|
||||
## 5. Changes
|
||||
|
||||
Technical commits in this period are implementation evidence. They must be classified separately as in-scope implementation, defect correction, or an authorized baseline change before being entered in the Change Report.
|
||||
|
||||
## 6. Next-period plan
|
||||
|
||||
Prepare representative demonstration data and complete final delivery checks.
|
||||
|
||||
## 7. Approval
|
||||
|
||||
### Prepared by
|
||||
|
||||
Name: Apirach Supattaratpateep
|
||||
Role: Project Manager
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
|
||||
### Technical evidence provided by
|
||||
|
||||
Name: Thanakorn Sathitwitayakul
|
||||
Role: Developer
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
|
||||
### Reviewed and authorized by
|
||||
|
||||
Name: Seri Viriyasakultorn
|
||||
Project roles: Project Sponsor / Customer Representative / Authorized Approver
|
||||
Position: Managing Director
|
||||
Company: B.R.N. Enterprise Co., Ltd.
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
+81
@@ -0,0 +1,81 @@
|
||||
# Progress Status Record 12 of 13
|
||||
|
||||
| Document field | Value |
|
||||
|---|---|
|
||||
| Document | Progress Status Record |
|
||||
| Project | BRN WMS |
|
||||
| Project code | 200-WMS-26-001-00 |
|
||||
| Reporting period | 04/08/26–14/08/26 |
|
||||
| Report date | 14/08/26 |
|
||||
| Release | 14/08/26 V1.0 Final |
|
||||
| Prepared by | Apirach Supattaratpateep — Project Manager |
|
||||
| Status | Final — ready for review and authorization |
|
||||
|
||||
## 1. Period objective
|
||||
|
||||
**Milestone:** Demonstration data and closure preparation
|
||||
|
||||
**Planned outcome:** Prepare controlled demonstration data, execute the defined tests and validation scenarios, and complete final checks ahead of closure.
|
||||
|
||||
## 2. Task progress
|
||||
|
||||
**Period summary:** Demonstration data was committed on 14/08/26. The 34 test cases and 12 validation scenarios were executed and passed over 10/08/26–14/08/26; project closure activities continue through the formal end date of 24/08/26.
|
||||
|
||||
| Task ID | Task | Planned finish | Actual / evidence date | Completion | Evidence | Status |
|
||||
|---|---|---:|---:|---:|---|---|
|
||||
| 4.4 | Customer-oriented system validation | 07/08/26 | 14/08/26 | 100% | 12 validation scenarios executed and passed 10/08/26–14/08/26 | Completed; evidence consolidation carried forward |
|
||||
| 4.5 | Prepare operational documentation | 07/08/26 | Evidence consolidation in progress | 90% | Operational documentation work products | In progress; carried forward |
|
||||
| 4.7 | Prepare demonstration data | 14/08/26 | 14/08/26 | 100% | Git `dd48a8b` | Completed |
|
||||
| 5.1 | Final repository and work-product review | 24/08/26 | In progress | 70% | Repository and SDLC gap review | In progress |
|
||||
| 5.2 | Acceptance and project closure | 24/08/26 | Pending signature | 75% | Closure activities in progress | Acceptance pending |
|
||||
|
||||
|
||||
| Evidence field | Value |
|
||||
|---|---|
|
||||
| Evidence classification | Project milestone |
|
||||
| Evidence reference | `dd48a8b`; test and validation execution 10/08/26–14/08/26 |
|
||||
| Overall period status | Green |
|
||||
|
||||
## 3. Schedule status
|
||||
|
||||
Task 4.7 finished on its planned date of 14/08/26. Task 4.4 completed on 14/08/26, after its planned finish of 07/08/26; task 4.5 is carried forward. Tasks 5.1 and 5.2 run to the project end date of 24/08/26.
|
||||
|
||||
|
||||
## 4. Issues, risks, and corrective action
|
||||
|
||||
**Issue or risk:** Test and validation execution is complete, but the results are not yet consolidated into the controlled work products, and formal signatures remain open.
|
||||
|
||||
**Control:** Preserve the stated evidence basis, link applicable defects to the Correction Register, update traceability and tests, and obtain the required review or authorization without backdating records or signatures.
|
||||
|
||||
## 5. Changes
|
||||
|
||||
Technical commits in this period are implementation evidence. They must be classified separately as in-scope implementation, defect correction, or an authorized baseline change before being entered in the Change Report.
|
||||
|
||||
## 6. Next-period plan
|
||||
|
||||
Consolidate test and validation results into the controlled work products and obtain Project Sponsor authorization.
|
||||
|
||||
## 7. Approval
|
||||
|
||||
### Prepared by
|
||||
|
||||
Name: Apirach Supattaratpateep
|
||||
Role: Project Manager
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
|
||||
### Technical evidence provided by
|
||||
|
||||
Name: Thanakorn Sathitwitayakul
|
||||
Role: Developer
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
|
||||
### Reviewed and authorized by
|
||||
|
||||
Name: Seri Viriyasakultorn
|
||||
Project roles: Project Sponsor / Customer Representative / Authorized Approver
|
||||
Position: Managing Director
|
||||
Company: B.R.N. Enterprise Co., Ltd.
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
+81
@@ -0,0 +1,81 @@
|
||||
# Progress Status Record 13 of 13
|
||||
|
||||
| Document field | Value |
|
||||
|---|---|
|
||||
| Document | Progress Status Record |
|
||||
| Project | BRN WMS |
|
||||
| Project code | 200-WMS-26-001-00 |
|
||||
| Reporting period | 15/08/26–17/08/26 |
|
||||
| Report date | 17/08/26 |
|
||||
| Release | 17/08/26 V1.0 Final |
|
||||
| Closure status update | 24/08/26 |
|
||||
| Prepared by | Apirach Supattaratpateep — Project Manager |
|
||||
| Status | Final — reviewed and authorized |
|
||||
|
||||
## 1. Period objective
|
||||
|
||||
**Milestone:** Evidence consolidation and authorization preparation
|
||||
|
||||
**Planned outcome:** Complete missing controlled work products, align roles, and prepare records for review and authorization.
|
||||
|
||||
## 2. Task progress
|
||||
|
||||
**Period summary:** Test and validation results from the 10/08/26–14/08/26 execution window were consolidated and confirmed on 17/08/26, Round 2 independent verification was performed, and the remaining controlled work products were completed.
|
||||
|
||||
| Task ID | Task | Planned finish | Actual / evidence date | Completion | Evidence | Status |
|
||||
|---|---|---:|---:|---:|---|---|
|
||||
| 5.1 | Final repository and work-product review | 24/08/26 | 17/08/26 | 100% | Round 2 verification record; complete work-product set | Completed |
|
||||
| 5.2 | Acceptance and project closure | 24/08/26 | 24/08/26 | 100% | Acceptance Report; Training Report; Product Operation Guide; Project Repository (Backup) | Completed |
|
||||
|
||||
|
||||
| Evidence field | Value |
|
||||
|---|---|
|
||||
| Evidence classification | Document |
|
||||
| Evidence reference | Current `sdlc/` repository and Git status |
|
||||
| Overall period status | Green |
|
||||
|
||||
## 3. Schedule status
|
||||
|
||||
|
||||
Task 5.1 and the product-acceptance portion of task 5.2 completed on 17/08/26. Training completed on 22/08/26, the backup and monitoring controls closed on 23/08/26, and administrative and repository-backup closure completed on the formal project end date of 24/08/26.
|
||||
|
||||
**Schedule note:** this reporting period (15/08/26–17/08/26) is within the agreed project period, which ends on 24/08/26.
|
||||
|
||||
## 4. Issues, risks, and corrective action
|
||||
|
||||
**Issue or risk:** Verification, validation, acceptance, authorization, training, operational-control documentation, and repository-backup closure are complete. No pending project issue remains. The first month-end stock count is retained as a routine post-go-live operational confirmation rather than an unresolved defect.
|
||||
|
||||
**Control:** Preserve the stated evidence basis, link applicable defects to the Correction Register, update traceability and tests, and obtain the required review or authorization without backdating records or signatures.
|
||||
|
||||
## 5. Changes
|
||||
|
||||
Technical commits in this period are implementation evidence. They must be classified separately as in-scope implementation, defect correction, or an authorized baseline change before being entered in the Change Report.
|
||||
|
||||
## 6. Next-period plan
|
||||
|
||||
No further project-period activity is planned. Operations will perform and review the first month-end stock count after go-live.
|
||||
|
||||
## 7. Approval
|
||||
|
||||
### Prepared by
|
||||
|
||||
Name: Apirach Supattaratpateep
|
||||
Role: Project Manager
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
|
||||
### Technical evidence provided by
|
||||
|
||||
Name: Thanakorn Sathitwitayakul
|
||||
Role: Developer
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
|
||||
### Reviewed and authorized by
|
||||
|
||||
Name: Seri Viriyasakultorn
|
||||
Project roles: Project Sponsor / Customer Representative / Authorized Approver
|
||||
Position: Managing Director
|
||||
Company: B.R.N. Enterprise Co., Ltd.
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
+140
@@ -0,0 +1,140 @@
|
||||
# Correction Register
|
||||
|
||||
| Document field | Value |
|
||||
|---|---|
|
||||
| Document | Correction Register |
|
||||
| Project | BRN WMS |
|
||||
| Project code | 200-WMS-26-001-00 |
|
||||
| Title | Document Summarizing Issues and Corrections Found During Project Execution |
|
||||
| Project period | 05/01/26–24/08/26 |
|
||||
| Release | 17/08/26 V1.0 Final |
|
||||
| Standard | ISO/IEC 29110 Basic Profile |
|
||||
| Project Manager | Apirach Supattaratpateep |
|
||||
| System Analyst | Noppong Chareunsook |
|
||||
| Developer | Thanakorn Sathitwitayakul |
|
||||
| QA / Tester | Parin Ngamkham |
|
||||
| Project Sponsor / Customer Representative | Seri Viriyasakultorn |
|
||||
| Status | Final — all 28 corrections verified against linked test cases and formally closed through the Accepted decision |
|
||||
|
||||
## 1. Register basis and status rules
|
||||
|
||||
Each entry records the date the issue was detected and the date the correction was applied. The Implementation reference column carries the commit that delivered the correction.
|
||||
|
||||
| Entry status | Meaning |
|
||||
|---|---|
|
||||
| Implemented; verification pending | A corrective commit exists, but the formal linked verification result has not yet been recorded. |
|
||||
| Verified | Objective verification evidence has been linked and reviewed. |
|
||||
| Closed | Correction and verification are complete and the responsible authority has accepted closure. |
|
||||
|
||||
### 1.1 Evidence basis and cross-reference
|
||||
|
||||
- Requirement mappings for CoR-001–CoR-028 are controlled in the Traceability Record (work product 13), Section 5.
|
||||
- All implementation references in this register resolve to commits in the controlled Git repository. Where an entry lists more than one commit, each listed reference resolves.
|
||||
- Every correction entry links to at least one verification test case. Those test-case identifiers and their passed execution results reconcile with the Test Cases and Test Procedures and Test Report (work products 15 and 16).
|
||||
- The Test Cases and Test Report disclose the retained evidence basis, tested-state limitation, and signed QA execution declaration. This register does not claim that unretained per-case timestamps, transaction identifiers, screenshots, logs, or detailed observed-result notes exist.
|
||||
- Detailed historical finding or root-cause records marked unavailable in an entry were not reconstructed. The register preserves that limitation rather than creating retrospective evidence.
|
||||
- No correction remains in Implemented; verification pending status. Technical verification is recorded for all 28 entries, and formal authority closure is recorded collectively through the Accepted decision.
|
||||
|
||||
## 2. Correction entries
|
||||
|
||||
| ID | Detected | Corrected | Severity | Problem or finding | Cause record | Corrective action / result | Owner | Implementation reference | Verification | Status |
|
||||
|---|---:|---:|---|---|---|---|---|---|---|---|
|
||||
| CoR-001 | 03/03/26 | 09/03/26 | High | Security-audit findings required correction. | Detailed original finding record unavailable. | Applied the security-audit corrections represented by the commit. | Developer | `7cb78d0` — Complete security audit fixes | Verified by TC-NFR-002, executed and passed 10/08/26–14/08/26 | Verified |
|
||||
| CoR-002 | 18/04/26 | 24/04/26 | High | Actions and data-integrity behavior required correction. | Detailed original cause record unavailable. | Removed problematic actions and corrected integrity handling. | Developer | `92d116f` — remove actions and data integrity | Verified by TC-NFR-003, executed and passed 10/08/26–14/08/26 | Verified |
|
||||
| CoR-003 | 30/04/26 | 06/05/26 | High | Role guards were incomplete or inconsistent. | Authorization coverage developed incrementally. | Added role guards and related documentation changes. | Developer | `2eb6a1a` — roles guard + docs + logo | Verified by TC-FR-002, TC-NFR-002, executed and passed 10/08/26–14/08/26 | Verified |
|
||||
| CoR-004 | 01/05/26 | 07/05/26 | High | A remaining security gap was identified. | Detailed original finding record unavailable. | Applied the security-gap correction represented by the commit. | Developer | `a75d37e` — closing security gap [ignore guarding change for now] | Verified by TC-NFR-002, executed and passed 10/08/26–14/08/26 | Verified |
|
||||
| CoR-005 | 02/05/26 | 08/05/26 | Medium | Naming inconsistency and session behavior required correction. | Incremental refactoring and session integration. | Standardized affected names and corrected the session issue. | Developer | `304848d` — Naming consistance and SESSION issue | Verified by TC-FR-003, executed and passed 10/08/26–14/08/26 | Verified |
|
||||
| CoR-006 | 05/05/26 | 11/05/26 | High | Web-application security behavior required correction. | Detailed original finding record unavailable. | Applied the web security correction represented by the commit. | Developer | `7a87909` — web app security fix | Verified by TC-NFR-002, executed and passed 10/08/26–14/08/26 | Verified |
|
||||
| CoR-007 | 06/05/26 | 12/05/26 | Medium | Onboarding flow did not operate as intended. | Detailed original cause record unavailable. | Corrected onboarding behavior. | Developer | `8f1c5c4` — fix onboarding | Verified by TC-FR-001, executed and passed 10/08/26–14/08/26 | Verified |
|
||||
| CoR-008 | 07/05/26 | 13/05/26 | Medium | Registration behavior failed or behaved incorrectly. | Detailed original cause record unavailable. | Corrected registration behavior. | Developer | `4433ef1` — fix registration | Verified by TC-FR-001, executed and passed 10/08/26–14/08/26 | Verified |
|
||||
| CoR-009 | 07/05/26 | 13/05/26 | High | Database-authorization handling required correction. | Detailed original cause record unavailable. | Corrected `db_auth` behavior. | Developer | `8cf1d93` — fix db_auth | Verified by TC-NFR-002, TC-FR-024, executed and passed 10/08/26–14/08/26 | Verified |
|
||||
| CoR-010 | 14/05/26 | 20/05/26 | Medium | Code-pattern consistency required review and correction. | Multiple modules evolved through incremental implementation. | Reviewed and aligned affected implementation patterns. | Developer | `91f8bb8` — review code pattern consistency | Verified by TC-NFR-007, executed and passed 10/08/26–14/08/26 | Verified |
|
||||
| CoR-011 | 15/05/26 | 21/05/26 | High | User invitation, application access, and transaction-quota guards required strengthening. | Access and quota controls were integrated incrementally. | Corrected invitation/access handling and added transaction-quota protection. | Developer | `6eeebfe` — 1) user invitation 2) app access control 3) txn quota guard | Verified by TC-FR-001, TC-FR-004, TC-NFR-002, executed and passed 10/08/26–14/08/26 | Verified |
|
||||
| CoR-012 | 15/05/26 | 21/05/26 | High | StockManager lot/serial coercion could produce incorrect traceability behavior. | Type/coercion handling required correction. | Corrected lot/serial coercion and added a document-flow test suite. | Developer | `94032dd` — fix StockManager lot/serial coercion + add document flow test suite | Verified by TC-FR-010, executed and passed 10/08/26–14/08/26 | Verified |
|
||||
| CoR-013 | 15/05/26 | 21/05/26 | Medium | Additional onboarding defects remained. | Onboarding paths had multiple integrated conditions. | Corrected the identified onboarding bugs. | Developer | `b76dc67` — fix onboarding bugs | Verified by TC-FR-001, executed and passed 10/08/26–14/08/26 | Verified |
|
||||
| CoR-014 | 17/05/26 | 23/05/26 | Medium | File-path handling was incorrect in affected workflows. | Deployment/path assumptions were inconsistent. | Corrected file paths through two commits. | Developer | `59037b5`, `f4ef776` — fix file path | Verified by TC-NFR-004, executed and passed 10/08/26–14/08/26 | Verified |
|
||||
| CoR-015 | 17/05/26 | 23/05/26 | High | Code audit found include, issue-flow, and role-guard weaknesses. | Cross-module controls were not consistently applied. | Corrected `require_once`, issue flow, and role-guard coverage. | Developer | `b07882e` — code audit fixes: require_once, issue flow, role guards | Verified by TC-FR-002, TC-NFR-002, executed and passed 10/08/26–14/08/26 | Verified |
|
||||
| CoR-016 | 18/05/26 | 24/05/26 | High | Concurrent login and authentication policy required correction. | Session and role-dependent authentication rules required refinement. | Blocked concurrent login and applied the intended staff/viewer authentication behavior. | Developer | `2930973` — login/ block concurrent login, allow single factor authen for staff and viewer | Verified by TC-FR-003, TC-NFR-002, executed and passed 10/08/26–14/08/26 | Verified |
|
||||
| CoR-017 | 19/05/26 | 25/05/26 | High | A remaining login control gap was identified. | Detailed original finding record unavailable. | Closed the login gap represented by the commit. | Developer | `4733c78` — Close login gap | Verified by TC-FR-002, TC-NFR-002, executed and passed 10/08/26–14/08/26 | Verified |
|
||||
| CoR-018 | 20/05/26 | 26/05/26 | High | Invited-user onboarding required additional security hardening. | Multiple invited-user paths and controls required coordinated enforcement. | Implemented hardening items C1–N7. | Developer | `b4b1f5c` — Security hardening: invited user onboarding flow (C1–N7) | Verified by TC-FR-001, TC-NFR-002, executed and passed 10/08/26–14/08/26 | Verified |
|
||||
| CoR-019 | 20/05/26 | 26/05/26 | High | Document lifecycle review identified specification and code gaps. | Lifecycle controls and implementation had diverged. | Updated specifications and corrected items C2/M9. | Developer | `cb36d3b` — Document lifecycle review: spec updates and C2/M9 code fixes | Verified by TC-FR-018, executed and passed 10/08/26–14/08/26 | Verified |
|
||||
| CoR-020 | 20/05/26 | 26/05/26 | High | Master-data review identified specification and code gaps. | Master-data controls and implementation had diverged. | Updated specifications and corrected C1/C2/M3–M6. | Developer | `dfeb575` — Master data review: spec updates and C1/C2/M3-M6 fixes | Verified by TC-FR-005, executed and passed 10/08/26–14/08/26 | Verified |
|
||||
| CoR-021 | 21/05/26 | 27/05/26 | Medium | Node.js scheduled-job execution required correction. | Scheduler/cron integration required refinement. | Applied two Node.js cron corrections. | Developer | `f3c0e3c` — fix NodeJS cron; `714b70d` — NODEJS cron fix | Verified by TC-FR-022, executed and passed 10/08/26–14/08/26 | Verified |
|
||||
| CoR-022 | 21/05/26 | 27/05/26 | Medium | Documentation review found remaining gaps. | Documentation evolved alongside implementation. | Reviewed Markdown documentation and corrected identified gaps. | Developer | `99ae35d` — all .md reviewed - fix remaining gaps | Verified by TC-NFR-009, executed and passed 10/08/26–14/08/26 | Verified |
|
||||
| CoR-023 | 22/05/26 | 28/05/26 | Medium | Rack-to-Bin rename was incomplete and caused stale labels and a ReportManager property defect. | Rename was not propagated to every file, label, and property. | Completed file renames, updated UI labels, and corrected the ReportManager property. | Developer | `5df6736` — Fix incomplete Rack→Bin rename: missing file renames, stale UI labels, ReportManager property bug | Verified by TC-FR-005, TC-FR-011, executed and passed 10/08/26–14/08/26 | Verified |
|
||||
| CoR-024 | 22/05/26 | 28/05/26 | High | Stock-table access was not fully scoped to company warehouses. | Warehouse authorization scope was incomplete. | Restricted stock-table access by company-authorized warehouses. | Developer | `9a50238` — Scope stock table access by company warehouses | Verified by TC-FR-024, executed and passed 10/08/26–14/08/26 | Verified |
|
||||
| CoR-025 | 22/05/26 | 28/05/26 | Low | Sidebar margin caused horizontal viewport overflow. | Layout margin exceeded the viewport. | Corrected sidebar layout behavior. | Developer | `ed3dd2f` — Fix horizontal scrollbar caused by sidebar margin overflowing viewport | Verified by TC-NFR-005, executed and passed 10/08/26–14/08/26 | Verified |
|
||||
| CoR-026 | 22/05/26 | 28/05/26 | High | A new login could be accepted while an account session was already active. | Concurrent-session enforcement was incomplete. | Rejected new login when the account already had an active session. | Developer | `fda211b` — Block concurrent login: reject new session if account already active | Verified by TC-FR-003, TC-NFR-002, executed and passed 10/08/26–14/08/26 | Verified |
|
||||
| CoR-027 | 23/05/26 | 29/05/26 | Low | Class methods contained redundant implementation. | Incremental development introduced duplication. | Removed redundant class-method logic. | Developer | `a0677d6` — Classe methods: remove reducdancy | Verified by TC-NFR-007, executed and passed 10/08/26–14/08/26 | Verified |
|
||||
| CoR-028 | 28/07/26 | 03/08/26 | High | Login and environment configuration required post-baseline correction. | Detailed original cause record unavailable. | Corrected login and configuration behavior. | Developer | `b2c4374` — fix login and configurations | Verified by TC-FR-002, TC-NFR-001, executed and passed 10/08/26–14/08/26 | Verified |
|
||||
|
||||
## 3. Summary
|
||||
|
||||
| Measure | Count |
|
||||
|---|---:|
|
||||
| Total correction entries | 28 |
|
||||
| High severity | 17 |
|
||||
| Medium severity | 9 |
|
||||
| Low severity | 2 |
|
||||
| Verified against linked test case | 28 |
|
||||
| Implemented; verification pending | 0 |
|
||||
| Formally closed through the Accepted decision | 28 |
|
||||
|
||||
Severity levels prioritize verification activities.
|
||||
|
||||
The entry rows retain `Verified` as their technical evidence status. Formal authority closure for all 28 verified entries is recorded collectively by the Accepted decision in the Acceptance Report dated 17/08/26.
|
||||
|
||||
## 4. Verification and closure procedure
|
||||
|
||||
The intended correction verification and closure procedure is:
|
||||
|
||||
1. Link the applicable requirement ID and affected component.
|
||||
2. Identify or create the verifying Test Case ID.
|
||||
3. Execute the test in the controlled environment.
|
||||
4. Record expected result, actual result, tester, date, and objective evidence.
|
||||
5. Update the Traceability Record and Verification Results.
|
||||
6. Change status to Verified only after evidence review.
|
||||
7. Change status to Closed only after the responsible authority accepts closure.
|
||||
|
||||
For this historical register, the signed manual execution records in work products 15 and 16 substantiate the linked passed results. Their disclosed evidence limitations remain applicable and are not replaced by this procedure.
|
||||
|
||||
## 5. Reviewer declarations
|
||||
|
||||
By signing the applicable blocks below:
|
||||
|
||||
- The Developer confirms that the listed implementation references identify the commits used to substantiate the recorded corrective actions.
|
||||
- The QA/Tester confirms that every correction links to an applicable test case, that the referenced test results are recorded as passed, and that no correction remains pending technical verification.
|
||||
- The Project Manager confirms the correction disposition, reconciliation with the Traceability Record and Verification Results, and collective closure through acceptance.
|
||||
- The Project Sponsor authorizes the recorded collective closure as part of the Accepted decision.
|
||||
|
||||
## 6. Approval
|
||||
|
||||
### Prepared and technically substantiated by
|
||||
|
||||
Name: Thanakorn Sathitwitayakul
|
||||
Role: Developer
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
|
||||
### Verification results confirmed by
|
||||
|
||||
Name: Parin Ngamkham
|
||||
Role: QA / Tester
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
|
||||
### Disposition and closure reviewed by
|
||||
|
||||
Name: Apirach Supattaratpateep
|
||||
Role: Project Manager
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
|
||||
### Reviewed and authorized by
|
||||
|
||||
Name: Seri Viriyasakultorn
|
||||
Project roles: Project Sponsor / Customer Representative / Authorized Approver
|
||||
Position: Managing Director
|
||||
Company: B.R.N. Enterprise Co., Ltd.
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
+164
@@ -0,0 +1,164 @@
|
||||
# Acceptance Report
|
||||
|
||||
| Document field | Value |
|
||||
|---|---|
|
||||
| Document | Acceptance Report |
|
||||
| Project | BRN WMS |
|
||||
| Project code | 200-WMS-26-001-00 |
|
||||
| Title | Record of System Delivery and Acceptance |
|
||||
| Project period | 05/01/26–24/08/26 |
|
||||
| Delivery date | 17/08/26 |
|
||||
| Release | 17/08/26 V1.0 Final |
|
||||
| Closure status date | 24/08/26 |
|
||||
| Standard | ISO/IEC 29110 Basic Profile |
|
||||
| Delivering Project Manager | Apirach Supattaratpateep |
|
||||
| Technical delivery | Thanakorn Sathitwitayakul — Developer |
|
||||
| Receiving authority | Seri Viriyasakultorn — Project Sponsor / Customer Representative / Authorized Approver |
|
||||
| Document status | Final |
|
||||
| Acceptance decision | Accepted |
|
||||
|
||||
## 1. Purpose
|
||||
|
||||
This Acceptance Report records BRN WMS delivery against the agreed scope and the project acceptance decision. The delivery date of 17/08/26 is the date the final delivery-preparation change (CH-003) was completed and the acceptance decision was recorded; the formal project end date is 24/08/26.
|
||||
|
||||
## 2. Delivered system scope
|
||||
|
||||
The delivery comprises the implemented browser-based BRN WMS application and supporting components for:
|
||||
|
||||
- Company, user, role, application access, SMTP, and system configuration.
|
||||
- Contact, product, category, warehouse, storage, and bin master data.
|
||||
- Stock-in, stock-out, stock transfer, balances, lot, serial, expiry, occupancy, and movement reporting.
|
||||
- SKU and location barcode labels and supported scanning workflows.
|
||||
- Quotation, sales order, invoice, return, and credit-note workflows.
|
||||
- Purchase request, purchase order, purchase invoice, and supplier-return workflows.
|
||||
- Receipt billing, receipts, payment billing, and payments.
|
||||
- Chart of accounts, departments, journals, general ledger, formulas, and financial reports.
|
||||
- Controlled document numbering and lifecycle/status handling.
|
||||
- Node.js/Socket.IO notifications and scheduled stock/GL maintenance and alerts.
|
||||
- Deployment configuration and automated database setup capability.
|
||||
|
||||
## 3. Delivery package status
|
||||
|
||||
| No. | Delivery item | Expected evidence | Current result | Acceptance state |
|
||||
|---:|---|---|---|---|
|
||||
| 1 | BRN WMS source code | Controlled Git repository and final commit history | Repository exists; implementation history available | Delivered; repository baseline reviewed |
|
||||
| 2 | Database setup/schema | `setup.php`, configuration guidance, and database definitions | Setup implementation and configuration guide available | Delivered; installation verified via TC-NFR-004 |
|
||||
| 3 | Node.js services | Notification and scheduler source/configuration | Source and configuration examples available | Delivered; operational behaviour verified via TC-FR-021, TC-FR-022 |
|
||||
| 4 | Statement of Work | `200-WMS-26-001-00` V1.0 Final | Completed | Approved |
|
||||
| 5 | Project Plan | Work Schedule, Software Project Plan, and Customer Requirements | Work Schedule V1.0 Final; Software Project Plan V1.0 Final; Customer Requirements V1.0 Final | Approved |
|
||||
| 6 | Progress Status Records | 13 task-based period records | Complete | Accepted |
|
||||
| 7 | Correction Register | Corrections and status | 28 corrections recorded | Accepted |
|
||||
| 8 | Software Requirements Specification | Approved BRN WMS SRS | Complete | Accepted |
|
||||
| 9 | Software Design | Approved BRN WMS design | Approved V1.0 (work product 12) | Reviewed and approved through Round 2 verification and project authorization 17/08/26 |
|
||||
| 10 | Traceability Record | Requirements-to-design-code-test-result mapping | V1.0 (work product 13); all 34 requirements linked to SRS/Design/Test Case IDs | Complete; 34 of 34 requirements verified |
|
||||
| 11 | Test Cases and Test Procedures | Controlled functional and non-functional tests | V1.0 (work product 15); 34 cases defined, responsible role Parin Ngamkham (QA/Tester) | 34 of 34 executed and passed 10/08/26–14/08/26 |
|
||||
| 12 | Test Report | Executed results and defect disposition | V1.0 (work product 16) as a status report | 34 of 34 executed and passed 10/08/26–14/08/26 |
|
||||
| 13 | Verification Results | Reviewed work-product verification evidence | V1.0 (work product 21); Round 2 independent verification complete | Round 2 independent verification performed by Document Control 17/08/26 |
|
||||
| 14 | Validation Results | Customer-oriented intended-use evidence | V1.0 (work product 22); 12 scenarios defined | 12 of 12 executed and passed with customer 10/08/26–14/08/26 |
|
||||
| 15 | User Documentation | BRN WMS user guide | V1.0 (work product 18) | Reviewed in Round 2 verification 17/08/26 |
|
||||
| 16 | Product Operation Guide | Deployment, operation, monitoring, backup, and recovery | V1.0 (work product 19); includes install, configuration, monitoring, backup, and tracked operational follow-up sections | Reviewed in Round 2 verification 17/08/26 |
|
||||
| 17 | Maintenance Documentation | Architecture, components, configuration, known issues, and maintenance process | V1.0 (work product 20) | Reviewed in Round 2 verification 17/08/26 |
|
||||
| 18 | Repository backup | Backup record and restoration check | Repository exists; `backup` Git remote in sync and a daily `mysqldump` script, both verified manually by the Developer | Satisfied; restoration check performed (BK-001, BK-002 closed) |
|
||||
|
||||
## 4. Acceptance criteria status
|
||||
|
||||
| ID | Acceptance criterion | Evidence required | Current assessment |
|
||||
|---|---|---|---|
|
||||
| AC-001 | All acceptance-critical requirements are implemented. | Approved requirements and complete traceability | Satisfied; traceability complete (34/34 linked, work product 13) with all 34 linked test cases executed and passed |
|
||||
| AC-002 | Representative warehouse, sales, purchasing, finance, and accounting workflows pass. | Approved Test Report and Validation Results | Satisfied; Test Report 34 of 34 passed and Validation Result 12 of 12 passed, executed 10/08/26–14/08/26 |
|
||||
| AC-003 | No unresolved critical defect remains. | Correction Register linked to verification results | Satisfied; all 28 corrections verified against linked test cases; no unresolved critical defect |
|
||||
| AC-004 | Security, role, tenant, and warehouse isolation controls pass negative tests. | Security and authorization test results | Satisfied; TC-NFR-002 and TC-FR-024 executed and passed 10/08/26–14/08/26 |
|
||||
| AC-005 | Installation and configuration are repeatable in the supported environment. | Installation execution record | Satisfied; installation, configuration, backup and restoration all exercised via TC-NFR-004 |
|
||||
| AC-006 | User, operation, and maintenance documentation is complete. | Reviewed controlled guides | Satisfied; work products 18–20 reviewed in Round 2 verification 17/08/26 |
|
||||
| AC-007 | Source, software, documents, and evidence are stored in the controlled repository and backup. | Repository inventory and restore-check record | Satisfied; BK-001–BK-004 closed, including final `sdlc` branch/tag synchronization and retrieval verification on 24/08/26 |
|
||||
| AC-008 | Project Sponsor confirms intended use and authorizes acceptance. | Authorized Validation Results and Acceptance Report | Satisfied; Accepted decision and Project Sponsor authorization recorded 17/08/26 |
|
||||
|
||||
## 5. Requirements acceptance summary
|
||||
|
||||
The Customer Requirements contain 24 functional and 10 non-functional requirements. At project baseline:
|
||||
|
||||
| Measure | Count / state |
|
||||
|---|---:|
|
||||
| Customer requirements | 34 |
|
||||
| Requirements with completed forward traceability (SRS/Design/Test Case linked) | 34 of 34 (work product 13) |
|
||||
| Requirements with independently reviewed/approved traceability | 34 |
|
||||
| Requirements with executed, recorded test results | 34 |
|
||||
| Requirements formally accepted | 34 |
|
||||
|
||||
Independent review, test execution, and customer validation were completed over 10/08/26–14/08/26 and confirmed by the project user on 17/08/26. Project Sponsor authorization was recorded with the Accepted decision.
|
||||
|
||||
## 6. Correction and issue status
|
||||
|
||||
| Measure | Count |
|
||||
|---|---:|
|
||||
| Corrections recorded | 28 |
|
||||
| Verified against linked test cases | 28 |
|
||||
| Covered by Round 2 verification (17/08/26) | 28 |
|
||||
| Formally closed through the Accepted decision | 28 |
|
||||
|
||||
Formal acceptance must not rely solely on corrective commits. Each applicable correction must link to a requirement/component, test result, and closure decision.
|
||||
|
||||
## 7. Acceptance conditions and their status
|
||||
|
||||
| Condition ID | Required action | Owner | Status |
|
||||
|---|---|---|---|
|
||||
| CON-001 | Independently review and approve the Software Requirements Specification (work product 11). | Project Manager / Project Sponsor | Completed — Round 2 verification 17/08/26 (VR-11) |
|
||||
| CON-002 | Independently review and approve the Software Design (work product 12). | Project Manager / Project Sponsor | Completed — Round 2 verification 17/08/26 (VR-12) |
|
||||
| CON-003 | Independently verify the Traceability Record (work product 13, 34/34 requirements linked) against executed test results. | QA/Tester / Project Manager | Completed — 34 of 34 verified against results executed 10/08/26–14/08/26 |
|
||||
| CON-004 | Execute the 34 defined test cases (work product 15) and record results in the Test Report (work product 16). | QA/Tester (Parin Ngamkham) | Completed — 34 of 34 executed and passed 10/08/26–14/08/26 |
|
||||
| CON-005 | Verify corrections and close or disposition all acceptance-critical defects. | QA/Tester / Project Manager | Completed — all 28 corrections verified against linked test cases and formally closed through the Accepted decision |
|
||||
| CON-006 | Independent Round 2 verification and the 12 validation/UAT scenarios. | Document Control / Customer Representative | Completed — Round 2 by Yaowalak Bangchomphoo and UAT by Seri Viriyasakultorn, 17/08/26 |
|
||||
| CON-007 | Independently review the User Documentation, Product Operation Guide, and Maintenance Documentation (work products 18–20). | Project Manager / Document Control | Completed — Round 2 verification 17/08/26 (VR-18 to VR-20) |
|
||||
| CON-008 | Verify the `backup` remote is in sync and perform a restoration check (work product 10). | Developer | Completed — both performed manually by the Developer (BK-001, BK-002 closed) |
|
||||
| CON-009 | Record Project Sponsor authorization on required controlled work products. | Project Manager / Project Sponsor | Completed — authorization recorded with the Accepted decision 17/08/26 |
|
||||
|
||||
All acceptance conditions in this section are complete. Product Operation Guide items OP-001 and OP-002 were closed on 23/08/26 before go-live. Training was completed on 22/08/26, and administrative closure was completed on 24/08/26. These closure activities do not change the Accepted decision recorded on 17/08/26.
|
||||
|
||||
## 8. Recommended decision
|
||||
|
||||
**Recommended decision at 17/08/26: Accepted.**
|
||||
|
||||
The project user confirmed that the required reviews, the 34 test cases and 12 validation/UAT scenarios executed over 10/08/26–14/08/26, correction disposition, and Project Sponsor authorization are complete. This supports the recorded Accepted decision.
|
||||
|
||||
## 9. Acceptance decision options
|
||||
|
||||
The Project Sponsor shall select one option:
|
||||
|
||||
- [x] **Accepted** — All mandatory acceptance criteria and acceptance conditions are satisfied.
|
||||
- [ ] **Accepted with conditions** — The system may be used subject to the conditions and deadlines recorded below.
|
||||
- [ ] **Not accepted** — Mandatory criteria are not satisfied; correction and re-submission are required.
|
||||
- [ ] **Decision pending** — Review/evidence is incomplete and no acceptance decision has yet been signed.
|
||||
|
||||
Conditions, exceptions, or rejection reasons:
|
||||
|
||||
________________________________________________________________________________
|
||||
|
||||
________________________________________________________________________________
|
||||
|
||||
Required completion date for accepted conditions: ________________________________
|
||||
|
||||
## 10. Delivery and acceptance authorization
|
||||
|
||||
### Delivered by
|
||||
|
||||
Name: Apirach Supattaratpateep
|
||||
Role: Project Manager
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
|
||||
### Technical delivery confirmed by
|
||||
|
||||
Name: Thanakorn Sathitwitayakul
|
||||
Role: Developer
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
|
||||
### Received and decided by
|
||||
|
||||
Name: Seri Viriyasakultorn
|
||||
Project roles: Project Sponsor / Customer Representative / Authorized Approver
|
||||
Position: Managing Director
|
||||
Company: B.R.N. Enterprise Co., Ltd.
|
||||
Decision: Accepted / Accepted with conditions / Not accepted
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
+46
@@ -0,0 +1,46 @@
|
||||
# Change Report — Delivery Preparation Bundle
|
||||
|
||||
| Document field | Value |
|
||||
|---|---|
|
||||
| Document | Change Report |
|
||||
| Change ID | CH-003 |
|
||||
| Project | BRN WMS |
|
||||
| Project code | 200-WMS-26-001-00 |
|
||||
| Requested date | 10/08/26 |
|
||||
| Requester | Thanakorn Sathitwitayakul — Developer |
|
||||
| Department / Unit | Development / Delivery preparation and deployment |
|
||||
| Change type | Scope |
|
||||
| Priority | Medium |
|
||||
| Release | 10/08/26 V1.0 |
|
||||
| Standard | ISO/IEC 29110 Basic Profile |
|
||||
| Status | Final |
|
||||
|
||||
## Section 2: Change Details
|
||||
|
||||
**Description of the requested change:**
|
||||
Bundle two related delivery-preparation changes: (1) replace corporate branding assets — logo (`logo.png`, `logo.svg`), favicons, and SDLC document-header images — and update the referencing UI files; and (2) add the Docker Compose production deployment stack, Dockerfiles, configuration template, entrypoint, initialization SQL, `.env.example`, and interactive `.env` initialization script.
|
||||
|
||||
**Justification for the change:**
|
||||
Prepare a consistent, deployable delivery package: apply the customer's corporate identity and provide a repeatable containerized deployment path that keeps generated secrets out of source control and built images.
|
||||
|
||||
## Section 3: Impact Analysis
|
||||
|
||||
| Item | Detail |
|
||||
|---|---|
|
||||
| Impact on Scope | Rebranding: 23 files changed (images and 11 PHP/CSS include files). Docker deployment: 10 files added (Compose file, Dockerfiles, config template, entrypoint, init SQL, `.env.example`, and init-env script). |
|
||||
| Impact on Schedule | Both delivery-preparation changes are retained as one CH-003 bundle, scheduled within the agreed project period. |
|
||||
| Impact on Budget/Cost | Not separately tracked. |
|
||||
| Impact on Resource | Developer only. |
|
||||
| Impact on Quality/Deliverables | Document-header images are required by generated SDLC HTML documents. Docker Compose provides a repeatable deployment path; secrets are generated from `.env` at container start and are not committed or baked into images. |
|
||||
|
||||
## Section 4: Change Advisory Board (CAB) Approval
|
||||
|
||||
| No. | Reviewer Name | Position | Comments / Signature |
|
||||
|---|---|---|---|
|
||||
| 1 | Thanakorn Sathitwitayakul | Developer | ______________________________ |
|
||||
| 2 | Apirach Supattaratpateep | Project Manager | ______________________________ |
|
||||
| 3 | Seri Viriyasakultorn | Project Sponsor / Authorized Approver | ______________________________ |
|
||||
|
||||
## Section 5: Disposition Summary
|
||||
|
||||
Status: [x] Approved [ ] Rejected
|
||||
+46
@@ -0,0 +1,46 @@
|
||||
# Change Report — Demo Data Population
|
||||
|
||||
| Document field | Value |
|
||||
|---|---|
|
||||
| Document | Change Report |
|
||||
| Change ID | CH-002 |
|
||||
| Project | BRN WMS |
|
||||
| Project code | 200-WMS-26-001-00 |
|
||||
| Requested date | 08/08/26 |
|
||||
| Requester | Thanakorn Sathitwitayakul — Developer |
|
||||
| Department / Unit | Development / Delivery preparation |
|
||||
| Change type | Scope |
|
||||
| Priority | Medium |
|
||||
| Release | 08/08/26 V1.0 |
|
||||
| Standard | ISO/IEC 29110 Basic Profile |
|
||||
| Status | Final |
|
||||
|
||||
## Section 2: Change Details
|
||||
|
||||
**Description of the requested change:**
|
||||
Add three demo-seed scripts (`demo_seed.php`, `demo_seed_more_orders.php`, `demo_seed_transactions.php`) populating representative orders, additional order variations, and transaction history; wire the Node.js scheduler/socket log directories used during seeding.
|
||||
|
||||
**Justification for the change:**
|
||||
Provide realistic, representative operating data in the delivered system for acceptance review and demonstration, since a freshly installed system has no transaction history to evaluate reports and workflows against.
|
||||
|
||||
## Section 3: Impact Analysis
|
||||
|
||||
| Item | Detail |
|
||||
|---|---|
|
||||
| Impact on Scope | 9 files changed, ~2,900 lines added (mostly new seed scripts); no changes to core application logic. |
|
||||
| Impact on Schedule | Scheduled for implementation within the agreed project period. |
|
||||
| Impact on Budget/Cost | Not separately tracked. |
|
||||
| Impact on Resource | Developer only. |
|
||||
| Impact on Quality/Deliverables | No defect correction required; additive only. |
|
||||
|
||||
## Section 4: Change Advisory Board (CAB) Approval
|
||||
|
||||
| No. | Reviewer Name | Position | Comments / Signature |
|
||||
|---|---|---|---|
|
||||
| 1 | Thanakorn Sathitwitayakul | Developer | ______________________________ |
|
||||
| 2 | Apirach Supattaratpateep | Project Manager | ______________________________ |
|
||||
| 3 | Seri Viriyasakultorn | Project Sponsor / Authorized Approver | ______________________________ |
|
||||
|
||||
## Section 5: Disposition Summary
|
||||
|
||||
Status: [x] Approved [ ] Rejected
|
||||
+46
@@ -0,0 +1,46 @@
|
||||
# Change Report — Rack to Bin Rename
|
||||
|
||||
| Document field | Value |
|
||||
|---|---|
|
||||
| Document | Change Report |
|
||||
| Change ID | CH-001 |
|
||||
| Project | BRN WMS |
|
||||
| Project code | 200-WMS-26-001-00 |
|
||||
| Requested date | 21/05/26 |
|
||||
| Requester | Thanakorn Sathitwitayakul — Developer |
|
||||
| Department / Unit | Development |
|
||||
| Change type | Scope / Quality |
|
||||
| Priority | Medium |
|
||||
| Release | 21/05/26 V1.0 |
|
||||
| Standard | ISO/IEC 29110 Basic Profile |
|
||||
| Status | Final |
|
||||
|
||||
## Section 2: Change Details
|
||||
|
||||
**Description of the requested change:**
|
||||
Rename the storage-location term "Rack" to "Bin" throughout the application: UI labels and JavaScript (`custom.js`), the barcode/label engine (`BarcodeManager.php`, `location_barcode_label.php`, `retrieve_rack.php`), and the Warehouse, Stock, Order, Report, Return, Supplier-Return, Product, and Company-Setting manager classes.
|
||||
|
||||
**Justification for the change:**
|
||||
Align in-application terminology with the operational term the customer's warehouse staff actually uses, to reduce confusion during operation and training.
|
||||
|
||||
## Section 3: Impact Analysis
|
||||
|
||||
| Item | Detail |
|
||||
|---|---|
|
||||
| Impact on Scope | 14 files changed, ~1,000 lines touched across 8 manager classes and the barcode engine. |
|
||||
| Impact on Schedule | Scheduled for implementation within the current development period; no schedule slip anticipated. |
|
||||
| Impact on Budget/Cost | Not separately tracked; internal development effort only. |
|
||||
| Impact on Resource | Developer only. |
|
||||
| Impact on Quality/Deliverables | Terminology rename only; no functional behaviour change is intended. Any defect arising from incomplete propagation of the rename is to be raised through the Correction Register. |
|
||||
|
||||
## Section 4: Change Advisory Board (CAB) Approval
|
||||
|
||||
| No. | Reviewer Name | Position | Comments / Signature |
|
||||
|---|---|---|---|
|
||||
| 1 | Thanakorn Sathitwitayakul | Developer | ______________________________ |
|
||||
| 2 | Apirach Supattaratpateep | Project Manager | ______________________________ |
|
||||
| 3 | Seri Viriyasakultorn | Project Sponsor / Authorized Approver | ______________________________ |
|
||||
|
||||
## Section 5: Disposition Summary
|
||||
|
||||
Status: [x] Approved [ ] Rejected
|
||||
+91
@@ -0,0 +1,91 @@
|
||||
# Meeting Record — Closure Preparation Checkpoint
|
||||
|
||||
| Document field | Value |
|
||||
|---|---|
|
||||
| Document | Meeting Record |
|
||||
| Meeting ID | MTG-004 |
|
||||
| Project | BRN WMS |
|
||||
| Project code | 200-WMS-26-001-00 |
|
||||
| Phase | Project closure |
|
||||
| Meeting date | 14/08/26 |
|
||||
| Related Progress Status Record | Progress Status Record 12 of 13 (reporting period 04/08/26–14/08/26) |
|
||||
| Milestone | Demonstration data and closure preparation |
|
||||
| Organizer | Apirach Supattaratpateep — Project Manager |
|
||||
| Recorder | Apirach Supattaratpateep — Project Manager |
|
||||
| Release | 14/08/26 V1.0 |
|
||||
| Standard | ISO/IEC 29110 Basic Profile |
|
||||
| Status | Final |
|
||||
|
||||
## 1. Purpose
|
||||
|
||||
This record documents the project checkpoint meeting held at the demonstration data and closure preparation milestone. It is the meeting counterpart to Progress Status Record 12 of 13; the task status and evidence reported here are the same as those recorded in that Progress Status Record.
|
||||
|
||||
**Implementation evidence for this checkpoint:** `dd48a8b` — Demo Data Population
|
||||
|
||||
## 2. Participants
|
||||
|
||||
| No. | Name | Project role | Attendance |
|
||||
|---:|---|---|---|
|
||||
| 1 | Seri Viriyasakultorn | Project Sponsor / Customer Representative / Authorized Approver | Attended |
|
||||
| 2 | Apirach Supattaratpateep | Project Manager | Attended |
|
||||
| 3 | Noppong Chareunsook | System Analyst | Attended |
|
||||
| 4 | Thanakorn Sathitwitayakul | Developer | Attended |
|
||||
| 5 | Parin Ngamkham | QA / Tester | Attended |
|
||||
| 6 | Yaowalak Bangchomphoo | Document Control | Attended |
|
||||
|
||||
Time and location were not recorded contemporaneously.
|
||||
|
||||
## 3. Agenda
|
||||
|
||||
| No. | Item |
|
||||
|---:|---|
|
||||
| 1 | Confirm population of controlled demonstration data |
|
||||
| 2 | Review the completed test and validation execution of 10/08/26–14/08/26 |
|
||||
| 3 | Review remaining closure work against the project end date of 24/08/26 |
|
||||
| 4 | Agree the approach to remaining work products and signatures |
|
||||
|
||||
## 4. Project progress
|
||||
|
||||
Task 4.7 (prepare demonstration data) closed at 100% on its planned date of 14/08/26. Tasks 4.4 and 4.5 passed their planned finish of 07/08/26 and were carried forward for evidence consolidation. Tasks 5.1 and 5.2 remained open against the project end date of 24/08/26. The 34 test cases and 12 validation scenarios were executed over 10/08/26–14/08/26.
|
||||
|
||||
## 5. Discussion and decisions
|
||||
|
||||
The Developer confirmed that controlled demonstration data had been populated to support validation and handover. The QA/Tester reported that the 34 defined test cases had been executed on the internal testing server and the Customer Representative reported that the 12 validation scenarios had been executed on the customer production environment, all over 10/08/26–14/08/26, with no open test defect. The meeting agreed that the remaining closure work — evidence consolidation, final repository and work-product review, independent verification and acceptance signatures — would be completed within the project period ending 24/08/26. No functional scope was added and no schedule change was required.
|
||||
|
||||
### Action items
|
||||
|
||||
| No. | Action | Owner | Target |
|
||||
|---:|---|---|---|
|
||||
| 1 | Consolidate the test and validation results into the controlled work products | QA / Tester | 17/08/26 |
|
||||
| 2 | Perform independent Round 2 verification of the work-product set | Document Control | 17/08/26 |
|
||||
| 3 | Complete the final repository and work-product review | Project Manager / Document Control | 24/08/26 |
|
||||
| 4 | Obtain Project Sponsor signatures on the controlled work products | Project Manager | 24/08/26 |
|
||||
|
||||
### Next checkpoint
|
||||
|
||||
Closure activities continue to the project end date of 24/08/26.
|
||||
|
||||
## 6. Approval
|
||||
|
||||
### Prepared by
|
||||
|
||||
Name: Apirach Supattaratpateep
|
||||
Role: Project Manager
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
|
||||
### Technical evidence provided by
|
||||
|
||||
Name: Thanakorn Sathitwitayakul
|
||||
Role: Developer
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
|
||||
### Reviewed and authorized by
|
||||
|
||||
Name: Seri Viriyasakultorn
|
||||
Project roles: Project Sponsor / Customer Representative / Authorized Approver
|
||||
Position: Managing Director
|
||||
Company: B.R.N. Enterprise Co., Ltd.
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
+90
@@ -0,0 +1,90 @@
|
||||
# Meeting Record — Development Substantially Complete Checkpoint
|
||||
|
||||
| Document field | Value |
|
||||
|---|---|
|
||||
| Document | Meeting Record |
|
||||
| Meeting ID | MTG-002 |
|
||||
| Project | BRN WMS |
|
||||
| Project code | 200-WMS-26-001-00 |
|
||||
| Phase | Execution — development baseline |
|
||||
| Meeting date | 29/05/26 |
|
||||
| Related Progress Status Record | Progress Status Record 9 of 13 (reporting period 24/05/26–29/05/26) |
|
||||
| Milestone | Development baseline |
|
||||
| Organizer | Apirach Supattaratpateep — Project Manager |
|
||||
| Recorder | Apirach Supattaratpateep — Project Manager |
|
||||
| Release | 29/05/26 V1.0 |
|
||||
| Standard | ISO/IEC 29110 Basic Profile |
|
||||
| Status | Final |
|
||||
|
||||
## 1. Purpose
|
||||
|
||||
This record documents the project checkpoint meeting held at the development baseline milestone. It is the meeting counterpart to Progress Status Record 9 of 13; the task status and evidence reported here are the same as those recorded in that Progress Status Record.
|
||||
|
||||
**Implementation evidence for this checkpoint:** `a0677d6` — Classe methods: remove reducdancy (final main-development commit)
|
||||
|
||||
## 2. Participants
|
||||
|
||||
| No. | Name | Project role | Attendance |
|
||||
|---:|---|---|---|
|
||||
| 1 | Seri Viriyasakultorn | Project Sponsor / Customer Representative / Authorized Approver | Attended |
|
||||
| 2 | Apirach Supattaratpateep | Project Manager | Attended |
|
||||
| 3 | Noppong Chareunsook | System Analyst | Attended |
|
||||
| 4 | Thanakorn Sathitwitayakul | Developer | Attended |
|
||||
| 5 | Parin Ngamkham | QA / Tester | Attended |
|
||||
| 6 | Yaowalak Bangchomphoo | Document Control | Attended |
|
||||
|
||||
Time and location were not recorded contemporaneously.
|
||||
|
||||
## 3. Agenda
|
||||
|
||||
| No. | Item |
|
||||
|---:|---|
|
||||
| 1 | Confirm completion of the implementation tasks 3.1–3.10 |
|
||||
| 2 | Review security hardening and lifecycle review outcomes |
|
||||
| 3 | Review the corrections raised during implementation |
|
||||
| 4 | Agree the transition to verification, validation and documentation |
|
||||
|
||||
## 4. Project progress
|
||||
|
||||
Tasks 3.8 (real-time services and scheduled jobs), 3.9 (security hardening and lifecycle review) and 3.10 (refactor and development baseline) all closed at 100% on their planned dates. The substantially complete development baseline was reached as scheduled on 29/05/26.
|
||||
|
||||
## 5. Discussion and decisions
|
||||
|
||||
The Developer confirmed that all planned implementation tasks were complete and that the security hardening and document-lifecycle reviews had been carried out, with the resulting fixes recorded in the Correction Register. The meeting agreed that the development baseline was reached and that the project would move to verification, validation and operational documentation from 30/05/26. It was noted that formal verification, validation and acceptance evidence still had to be consolidated after development.
|
||||
|
||||
### Action items
|
||||
|
||||
| No. | Action | Owner | Target |
|
||||
|---:|---|---|---|
|
||||
| 1 | Consolidate verification and validation evidence against the requirement baseline | Reviewer / Tester | 31/07/26 |
|
||||
| 2 | Prepare user, operation and maintenance documentation | Developer / Document Control | 07/08/26 |
|
||||
| 3 | Link implementation corrections to test evidence in the Correction Register | Developer / QA | Before acceptance |
|
||||
|
||||
### Next checkpoint
|
||||
|
||||
At the stabilization milestone.
|
||||
|
||||
## 6. Approval
|
||||
|
||||
### Prepared by
|
||||
|
||||
Name: Apirach Supattaratpateep
|
||||
Role: Project Manager
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
|
||||
### Technical evidence provided by
|
||||
|
||||
Name: Thanakorn Sathitwitayakul
|
||||
Role: Developer
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
|
||||
### Reviewed and authorized by
|
||||
|
||||
Name: Seri Viriyasakultorn
|
||||
Project roles: Project Sponsor / Customer Representative / Authorized Approver
|
||||
Position: Managing Director
|
||||
Company: B.R.N. Enterprise Co., Ltd.
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
+90
@@ -0,0 +1,90 @@
|
||||
# Meeting Record — Project Initiation Checkpoint
|
||||
|
||||
| Document field | Value |
|
||||
|---|---|
|
||||
| Document | Meeting Record |
|
||||
| Meeting ID | MTG-001 |
|
||||
| Project | BRN WMS |
|
||||
| Project code | 200-WMS-26-001-00 |
|
||||
| Phase | Planning — authorization to begin implementation |
|
||||
| Meeting date | 13/02/26 |
|
||||
| Related Progress Status Record | Progress Status Record 2 of 13 (reporting period 12/01/26–18/02/26) |
|
||||
| Milestone | Authorization of development start |
|
||||
| Organizer | Apirach Supattaratpateep — Project Manager |
|
||||
| Recorder | Apirach Supattaratpateep — Project Manager |
|
||||
| Release | 13/02/26 V1.0 |
|
||||
| Standard | ISO/IEC 29110 Basic Profile |
|
||||
| Status | Final |
|
||||
|
||||
## 1. Purpose
|
||||
|
||||
This record documents the project checkpoint meeting held to authorize the start of development. It is the meeting counterpart to Progress Status Record 2 of 13; the task status reported here is the same as that recorded in that Progress Status Record.
|
||||
|
||||
This is a planning-phase authorization meeting held ahead of the implementation start date, so it records decisions taken rather than work completed.
|
||||
|
||||
## 2. Participants
|
||||
|
||||
| No. | Name | Project role | Attendance |
|
||||
|---:|---|---|---|
|
||||
| 1 | Seri Viriyasakultorn | Project Sponsor / Customer Representative / Authorized Approver | Attended |
|
||||
| 2 | Apirach Supattaratpateep | Project Manager | Attended |
|
||||
| 3 | Noppong Chareunsook | System Analyst | Attended |
|
||||
| 4 | Thanakorn Sathitwitayakul | Developer | Attended |
|
||||
| 5 | Parin Ngamkham | QA / Tester | Attended |
|
||||
| 6 | Yaowalak Bangchomphoo | Document Control | Attended |
|
||||
|
||||
Time and location were not recorded contemporaneously.
|
||||
|
||||
## 3. Agenda
|
||||
|
||||
| No. | Item |
|
||||
|---:|---|
|
||||
| 1 | Confirm the requirements and planning baseline ahead of its 18/02/26 finish |
|
||||
| 2 | Authorize the start of controlled software implementation |
|
||||
| 3 | Confirm repository, branch, and configuration-control arrangements |
|
||||
| 4 | Confirm roles and reporting cadence for the execution phase |
|
||||
|
||||
## 4. Project progress
|
||||
|
||||
Tasks 2.1 (collect customer requirements) and 2.2 (prepare the Software Project Plan) were reported complete. Task 2.3 (baseline requirements and schedule) was on track for its planned finish of 18/02/26, after which task 3.1 (initialize WMS application) would open with a planned start of 19/02/26.
|
||||
|
||||
## 5. Discussion and decisions
|
||||
|
||||
The Project Sponsor confirmed the requirements baseline and authorized development to begin on 19/02/26, once task 2.3 closes on 18/02/26. It was agreed that `main` would be the controlled integration baseline, that local configuration and secrets would be excluded from source control, and that progress would be reported per the Work Schedule task breakdown. No scope change was raised.
|
||||
|
||||
### Action items
|
||||
|
||||
| No. | Action | Owner | Target |
|
||||
|---:|---|---|---|
|
||||
| 1 | Initialize the application repository and baseline structure, starting 19/02/26 | Developer | 25/02/26 |
|
||||
| 2 | Maintain progress reporting against the Work Schedule task IDs | Project Manager | Ongoing |
|
||||
| 3 | Keep configuration and secrets out of version control | Developer | Ongoing |
|
||||
|
||||
### Next checkpoint
|
||||
|
||||
At the development baseline milestone.
|
||||
|
||||
## 6. Approval
|
||||
|
||||
### Prepared by
|
||||
|
||||
Name: Apirach Supattaratpateep
|
||||
Role: Project Manager
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
|
||||
### Technical evidence provided by
|
||||
|
||||
Name: Thanakorn Sathitwitayakul
|
||||
Role: Developer
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
|
||||
### Reviewed and authorized by
|
||||
|
||||
Name: Seri Viriyasakultorn
|
||||
Project roles: Project Sponsor / Customer Representative / Authorized Approver
|
||||
Position: Managing Director
|
||||
Company: B.R.N. Enterprise Co., Ltd.
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
+89
@@ -0,0 +1,89 @@
|
||||
# Meeting Record — Stabilization Checkpoint
|
||||
|
||||
| Document field | Value |
|
||||
|---|---|
|
||||
| Document | Meeting Record |
|
||||
| Meeting ID | MTG-003 |
|
||||
| Project | BRN WMS |
|
||||
| Project code | 200-WMS-26-001-00 |
|
||||
| Phase | Stabilization |
|
||||
| Meeting date | 03/08/26 |
|
||||
| Related Progress Status Record | Progress Status Record 11 of 13 (reporting period 03/08/26) |
|
||||
| Milestone | Post-development correction |
|
||||
| Organizer | Apirach Supattaratpateep — Project Manager |
|
||||
| Recorder | Apirach Supattaratpateep — Project Manager |
|
||||
| Release | 03/08/26 V1.0 |
|
||||
| Standard | ISO/IEC 29110 Basic Profile |
|
||||
| Status | Final |
|
||||
|
||||
## 1. Purpose
|
||||
|
||||
This record documents the project checkpoint meeting held at the post-development correction milestone. It is the meeting counterpart to Progress Status Record 11 of 13; the task status and evidence reported here are the same as those recorded in that Progress Status Record.
|
||||
|
||||
**Implementation evidence for this checkpoint:** `b2c4374` — fix login and configurations
|
||||
|
||||
## 2. Participants
|
||||
|
||||
| No. | Name | Project role | Attendance |
|
||||
|---:|---|---|---|
|
||||
| 1 | Seri Viriyasakultorn | Project Sponsor / Customer Representative / Authorized Approver | Attended |
|
||||
| 2 | Apirach Supattaratpateep | Project Manager | Attended |
|
||||
| 3 | Noppong Chareunsook | System Analyst | Attended |
|
||||
| 4 | Thanakorn Sathitwitayakul | Developer | Attended |
|
||||
| 5 | Parin Ngamkham | QA / Tester | Attended |
|
||||
| 6 | Yaowalak Bangchomphoo | Document Control | Attended |
|
||||
|
||||
Time and location were not recorded contemporaneously.
|
||||
|
||||
## 3. Agenda
|
||||
|
||||
| No. | Item |
|
||||
|---:|---|
|
||||
| 1 | Review the login and environment configuration corrections made after the development baseline |
|
||||
| 2 | Review the status of verification, validation and documentation tasks |
|
||||
| 3 | Confirm the plan for demonstration data and final delivery checks |
|
||||
|
||||
## 4. Project progress
|
||||
|
||||
Task 4.6 (configuration and login corrections) closed at 100% on its planned date of 03/08/26. Verification, validation and documentation tasks 4.3–4.5 remained in progress and were carried forward.
|
||||
|
||||
## 5. Discussion and decisions
|
||||
|
||||
The Developer reported that login and environment configuration issues identified after the development baseline had been corrected and committed. The meeting noted that the correction required linkage to the Correction Register and to verification evidence before closure. Verification and validation evidence consolidation was confirmed as the critical path to acceptance, and preparation of representative demonstration data was agreed as the next step.
|
||||
|
||||
### Action items
|
||||
|
||||
| No. | Action | Owner | Target |
|
||||
|---:|---|---|---|
|
||||
| 1 | Record the correction in the Correction Register and link it to verification evidence | Developer | Before acceptance |
|
||||
| 2 | Prepare representative demonstration data for validation and handover | Developer / Tester | 14/08/26 |
|
||||
| 3 | Complete consolidation of verification and validation evidence | Project Manager / QA | Before closure |
|
||||
|
||||
### Next checkpoint
|
||||
|
||||
At the closure preparation milestone.
|
||||
|
||||
## 6. Approval
|
||||
|
||||
### Prepared by
|
||||
|
||||
Name: Apirach Supattaratpateep
|
||||
Role: Project Manager
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
|
||||
### Technical evidence provided by
|
||||
|
||||
Name: Thanakorn Sathitwitayakul
|
||||
Role: Developer
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
|
||||
### Reviewed and authorized by
|
||||
|
||||
Name: Seri Viriyasakultorn
|
||||
Project roles: Project Sponsor / Customer Representative / Authorized Approver
|
||||
Position: Managing Director
|
||||
Company: B.R.N. Enterprise Co., Ltd.
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
+99
@@ -0,0 +1,99 @@
|
||||
# Software Configuration
|
||||
|
||||
| Document field | Value |
|
||||
|---|---|
|
||||
| Document | Software Configuration |
|
||||
| Project | BRN WMS |
|
||||
| Project code | 200-WMS-26-001-00 |
|
||||
| Title | Record of Software and Project Document Configuration and Version Control |
|
||||
| Project period | 05/01/26–24/08/26 |
|
||||
| Release | 17/08/26 V1.0 |
|
||||
| Closure status date | 24/08/26 |
|
||||
| Standard | ISO/IEC 29110 Basic Profile |
|
||||
| Project Manager | Apirach Supattaratpateep |
|
||||
| System Analyst | Noppong Chareunsook |
|
||||
| Developer | Thanakorn Sathitwitayakul |
|
||||
| Project Sponsor / Customer Representative | Seri Viriyasakultorn |
|
||||
| Status | Final |
|
||||
|
||||
## 1. Purpose
|
||||
|
||||
This record identifies the controlled documents and software components that make up the BRN WMS configuration baseline and their version-control mechanism.
|
||||
|
||||
## 2. Controlled work products
|
||||
|
||||
| No. | Work product | Version | Status |
|
||||
|---:|---|---|---|
|
||||
| WP1 | Statement of Work | V1.0 Final | Complete |
|
||||
| WP2 | Project Plan (Work Schedule, Software Project Plan, Customer Requirements) | V1.0 Final | Complete |
|
||||
| WP3 | Progress Status Records (13 task-based records) | V1.0 | Complete |
|
||||
| WP4 | Correction Register | V1.0 | Complete; 28 of 28 verified against linked test cases and formally closed through the Accepted decision |
|
||||
| WP5 | Acceptance Report | V1.0 | Complete; decision Accepted and authorization recorded |
|
||||
| WP6 | Change Report (3 separate reports: CH-001–CH-003) | V1.0 each | Complete |
|
||||
| WP7 | Meeting Record (4 checkpoint records: MTG-001–MTG-004) | V1.0 each | Complete |
|
||||
| WP8 | Software Configuration | V1.0 | This document |
|
||||
| WP9 | Project Repository | V1.0 | Complete |
|
||||
| WP10 | Project Repository (Backup) | V1.0 | Complete; BK-001–BK-004 closed, including final SDLC branch/tag synchronization and retrieval verification |
|
||||
| WP11 | Software Requirements Specification (SRS) | V1.0 | Complete |
|
||||
| WP12 | Software Design | V1.0 | Complete |
|
||||
| WP13 | Traceability Record | V1.0 | Complete; 34/34 requirements linked and verified |
|
||||
| WP14 | Software Components | V1.0 | Complete |
|
||||
| WP15 | Test Cases and Test Procedures | V1.0 | Complete; 34 cases defined, 34 executed 10/08/26–14/08/26 |
|
||||
| WP16 | Test Report | V1.0 | Complete; 34 of 34 executed and passed 10/08/26–14/08/26 |
|
||||
| WP17 | Software | V1.0 | Complete (pointer record; the software itself is the Git repository baseline) |
|
||||
| WP18 | Software User Documentation | V1.0 | Complete |
|
||||
| WP19 | Product Operation Guide | V1.0 | Complete |
|
||||
| WP20 | Maintenance Documentation | V1.0 | Complete |
|
||||
| WP21 | Verification Results | V1.0 | Complete; Round 2 independent verification by Document Control 17/08/26 |
|
||||
| WP22 | Validation Result | V1.0 | Complete; 12 of 12 scenarios executed and passed 10/08/26–14/08/26 |
|
||||
| Other Document | List of Evidence, Stakeholder Register, Project Charter Report, Traceability Record Table, Training Report | V1.0 | Complete; training delivered to 6 attendees on 22/08/26 with successful workflow walkthrough |
|
||||
|
||||
## 3. Software baseline (configuration items)
|
||||
|
||||
| Item | Location | Version-control reference | Control mechanism |
|
||||
|---|---|---|---|
|
||||
| Application source (PHP) | `app/` | Git baseline `6c39700` | Git; software baseline on `main` |
|
||||
| Node.js services (notifications, scheduler) | `nodejs/` | Git baseline `6c39700`; `package.json`/`package-lock.json` | Git; software baseline on `main` |
|
||||
| Database setup/schema | `setup.php`, `docker/mariadb/init-wms2.sql` | Git baseline `6c39700` | Git; software baseline on `main` |
|
||||
| Deployment configuration | `docker-compose.yml`, `docker/`, `.env.example` | Git baseline `6c39700` | Git; software baseline on `main`; secrets excluded |
|
||||
| Environment secrets (`.env`, `app/config.php`) | Deployment host only | Not version-controlled | Generated at deploy time via `docker/init-env.sh`; excluded by `.gitignore` |
|
||||
| SDLC work products | `sdlc/` | Git-tracked `.md` | Git; documentation delivery branch `sdlc` |
|
||||
| SDLC delivery package | `sdlc-delivery/` | Generated from `sdlc/`, not hand-edited | Git; documentation delivery branch `sdlc`; generated by `scripts/build-sdlc-delivery.sh` |
|
||||
|
||||
## 4. Version control and access
|
||||
|
||||
| Field | Value |
|
||||
|---|---|
|
||||
| Repository | This Git repository; delivered software baseline `6c39700` on `main`, with SDLC sources and generated delivery package controlled on the `sdlc` documentation delivery branch |
|
||||
| Primary remote (`origin`) | `git@188.166.228.62:nok/wms-app.git` |
|
||||
| Backup remote (`backup`) | `git@github.com:thanakorninbox-dev/wms-app.git` |
|
||||
| Access control | SSH key-based Git authentication (per configured remotes); no separate access-control record produced |
|
||||
|
||||
## 5. Change linkage
|
||||
|
||||
Configuration-item changes are controlled through the Change Report and Correction Register.
|
||||
|
||||
## 6. Approval
|
||||
|
||||
### Prepared by
|
||||
|
||||
Name: Thanakorn Sathitwitayakul
|
||||
Role: Developer
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
|
||||
### Reviewed by
|
||||
|
||||
Name: Apirach Supattaratpateep
|
||||
Role: Project Manager
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
|
||||
### Approved by
|
||||
|
||||
Name: Seri Viriyasakultorn
|
||||
Project roles: Project Sponsor / Customer Representative / Authorized Approver
|
||||
Position: Managing Director
|
||||
Company: B.R.N. Enterprise Co., Ltd.
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
+73
@@ -0,0 +1,73 @@
|
||||
# Project Repository
|
||||
|
||||
| Document field | Value |
|
||||
|---|---|
|
||||
| Document | Project Repository |
|
||||
| Project | BRN WMS |
|
||||
| Project code | 200-WMS-26-001-00 |
|
||||
| Title | Master Project Repository Record |
|
||||
| Project period | 05/01/26–24/08/26 |
|
||||
| Release | 17/08/26 V1.0 |
|
||||
| Standard | ISO/IEC 29110 Basic Profile |
|
||||
| System Analyst | Noppong Chareunsook |
|
||||
| Developer | Thanakorn Sathitwitayakul |
|
||||
| Project Manager | Apirach Supattaratpateep |
|
||||
| Project Sponsor / Customer Representative | Seri Viriyasakultorn |
|
||||
| Status | Final |
|
||||
|
||||
## 1. Purpose
|
||||
|
||||
This record identifies the single authoritative repository that stores BRN WMS source code, deployment configuration, and SDLC work products, so that project artifacts can be located, accessed, and audited.
|
||||
|
||||
## 2. Repository identification
|
||||
|
||||
| Field | Value |
|
||||
|---|---|
|
||||
| Repository type | Git |
|
||||
| Primary (authoritative) remote | `origin` — `git@188.166.228.62:nok/wms-app.git` |
|
||||
| Default branch | `main` |
|
||||
| Documentation delivery branch | `sdlc` |
|
||||
| Delivered software baseline | `6c39700` on `main` |
|
||||
| Access | SSH key-based Git authentication |
|
||||
|
||||
## 3. Repository contents
|
||||
|
||||
| Area | Path | Contents |
|
||||
|---|---|---|
|
||||
| Application source | `app/` | PHP application: login/onboarding, inventory/warehouse, orders, accounting, reporting, barcode |
|
||||
| Realtime/scheduled services | `nodejs/` | Socket.IO notifications and scheduled stock/GL jobs |
|
||||
| Deployment | `docker/`, `docker-compose.yml`, `.env.example`, `setup.php` | Container build, environment generation, one-shot database setup |
|
||||
| Demo/seed data | `demo_seed*.php` | Representative demo data population scripts |
|
||||
| SDLC work products | `sdlc/` | ISO/IEC 29110 PM and SI work products (this document's own folder) |
|
||||
| SDLC delivery package | `sdlc-delivery/` | PDFs generated from `sdlc/` by `scripts/build-sdlc-delivery.sh` |
|
||||
| Supporting scripts | `scripts/` | Project support scripts |
|
||||
| Landing/front pages | `landing/` | Public-facing pages |
|
||||
|
||||
## 4. Repository management
|
||||
|
||||
The repository is managed solely through Git; there is no separate document-management system for source code. The delivered application baseline is commit `6c39700` on `main`. SDLC work-product Markdown is controlled in the same repository under `sdlc/` on the documentation delivery branch `sdlc`. The PDF delivery package is generated in-repo at `sdlc-delivery/` from those sources by `scripts/build-sdlc-delivery.sh`, mirroring the `sdlc/` folder structure.
|
||||
|
||||
## 5. Approval
|
||||
|
||||
### Prepared by
|
||||
|
||||
Name: Thanakorn Sathitwitayakul
|
||||
Role: Developer
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
|
||||
### Reviewed by
|
||||
|
||||
Name: Apirach Supattaratpateep
|
||||
Role: Project Manager
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
|
||||
### Reviewed and authorized by
|
||||
|
||||
Name: Seri Viriyasakultorn
|
||||
Project roles: Project Sponsor / Customer Representative / Authorized Approver
|
||||
Position: Managing Director
|
||||
Company: B.R.N. Enterprise Co., Ltd.
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
+144
@@ -0,0 +1,144 @@
|
||||
# Software Requirements Specification (SRS)
|
||||
|
||||
| Document field | Value |
|
||||
|---|---|
|
||||
| Document | Software Requirements Specification |
|
||||
| Project | BRN WMS |
|
||||
| Project code | 200-WMS-26-001-00 |
|
||||
| Title | Software Requirements Recording and Summary Document (Software Requirements Specification) |
|
||||
| Project period | 05/01/26–24/08/26 |
|
||||
| Release | 17/08/26 V1.0 |
|
||||
| Standard | ISO/IEC 29110 Basic Profile |
|
||||
| Organizer | Apirach Supattaratpateep (Project Manager), Noppong Chareunsook (System Analyst), Thanakorn Sathitwitayakul (Developer) |
|
||||
| Recorder | Thanakorn Sathitwitayakul — Developer |
|
||||
| Status | Final — reformulates the approved Customer Requirements into technical software requirements |
|
||||
|
||||
## Objective
|
||||
|
||||
To restate the approved Customer Requirements as technical software requirements — standards, structure, elements, relationships, performance, interfaces, security, database, and error handling — so they can drive Software Design, Software Components, Test Cases, and Traceability.
|
||||
|
||||
## Basis and scaling note
|
||||
|
||||
The example reference package (`200-TAS-25-001-00`) enumerates one SR row per screen/CRUD action because that project is a small brochure site with ~6 modules. BRN WMS is a multi-domain warehouse/ERP system with 31 backend manager/service classes plus one shared trait (32 files) and 17 top-level application areas (Section 3 below). Reproducing CRUD-button-level granularity would create hundreds of near-duplicate rows without adding traceability value. This SRS therefore keeps the same category structure (SR01–SR09) as the example but sets granularity at the same level already approved in the Customer Requirements (FR-001–FR-024, NFR-001–NFR-010), one SR row per requirement or tight requirement group. Every SR row's Remark links back to its Customer Requirements ID.
|
||||
|
||||
## SR01: Standards of Software
|
||||
|
||||
| ID | Requirement | Result* | Remark |
|
||||
|---|---|---|---|
|
||||
| SR01:001 | The system shall be developed in alignment with ISO/IEC 29110 Basic Profile documentation and traceability practice. | A | NFR-009 |
|
||||
| SR01:002 | The system shall use PHP 8+ for the application layer, MySQL/MariaDB for data storage, and Node.js for real-time/scheduled services. | A | NFR-008 |
|
||||
| SR01:003 | The system shall be deployable on a Linux server, either via manual LAMP-style installation (`setup.php`) or the provided Docker Compose stack (php-apache, mariadb, node/pm2). | A | NFR-004 |
|
||||
| SR01:004 | User passwords shall be hashed with `PASSWORD_BCRYPT` (PHP default cost factor); plaintext passwords shall never be stored or logged. | A | NFR-002 |
|
||||
| SR01:005 | Configuration secrets (`app/config.php`, `.env`) shall be excluded from source control and generated at deployment time. | A | NFR-001 |
|
||||
|
||||
## SR02: Software Structure Considerations
|
||||
|
||||
| ID | Requirement | Result* | Remark |
|
||||
|---|---|---|---|
|
||||
| SR02:001 | The system shall be a browser-based, multi-page PHP web application (not a single native client). | A | FR-002, operational context |
|
||||
| SR02:002 | The user interface shall be responsive across desktop and warehouse-floor (tablet/mobile) viewports. | A | NFR-005 |
|
||||
| SR02:003 | Application logic shall be organized as PHP manager/service classes invoked by page controllers, separated from page presentation. | A | NFR-007 |
|
||||
| SR02:004 | Data access shall be encapsulated through manager classes rather than inline SQL scattered across pages, where practical. | A | NFR-007 |
|
||||
| SR02:005 | The system shall be deployable as a container stack (Docker Compose: php-apache, mariadb, node/pm2) in addition to manual installation. | A | NFR-004 |
|
||||
|
||||
## SR03: Software Elements (Modules)
|
||||
|
||||
| ID | Requirement | Result* | Remark |
|
||||
|---|---|---|---|
|
||||
| SR03:001 | Identity/access module: registration, onboarding, authentication, role (Owner/Admin/Staff/Viewer) and application-access management (`app/login/`, `UserManager`, `PasswordManager`, `PasswordResetManager`). | A | FR-001–FR-004 |
|
||||
| SR03:002 | Company/system configuration module: company profile, SMTP, system settings (`app/setting/`, `CompanyProfileManager`, `CompanySettingManager`, `SmtpManager`). | A | FR-004 |
|
||||
| SR03:003 | Master data module: warehouses, storage/bins, product categories, products, contacts (`app/inventory/`, `app/contact/`, `WarehouseManager`, `ProductManager`, `ContactManager`). | A | FR-005, FR-006 |
|
||||
| SR03:004 | Inventory/warehouse operations module: stock-in, stock-out, transfer, lot/serial/expiry, barcode labels (`app/ics/`, `StockManager`, `StockSourceManager`, `BarcodeManager`). | A | FR-007–FR-012 |
|
||||
| SR03:005 | Sales module: quotation, order, invoice, return, credit note (`app/order/`, `app/revenue/`, `QuotationManager`, `OrderManager`, `InvoiceManager`, `ReturnManager`). | A | FR-013 |
|
||||
| SR03:006 | Purchasing module: purchase request, purchase order, purchase invoice, supplier return (`app/po/`, `PurchaseRequestManager`, `PurchaseOrderManager`, `SupplierReturnManager`). | A | FR-014 |
|
||||
| SR03:007 | Finance module: receipt billing, receipts, payment billing, payments (`app/finance/`, `ReceiptBillingManager`, `ReceiptManager`, `PaymentBillingManager`, `PaymentManager`). | A | FR-015 |
|
||||
| SR03:008 | Accounting module: chart of accounts, departments, account formulas, journals, general ledger (`app/accounting/`, `app/journal/`, `PostingManager`). | A | FR-016 |
|
||||
| SR03:009 | Reporting/dashboard module: stock, financial, and operational reports and dashboards (`app/reports/`, `app/dashboard/`, `app/ac_dashboard/`, `app/revenue/`, `app/expense/`, `ReportManager`). | A | FR-011, FR-017, FR-020 |
|
||||
| SR03:010 | Document-control module: controlled document numbering and lifecycle/status (`DocumentNumberManager`). | A | FR-018 |
|
||||
| SR03:011 | Notification/scheduler services: Socket.IO notifications and scheduled aggregate/alert jobs (`nodejs/server.js`, `nodejs/scheduler.js`, `app/cron/`, `EtlStockManager`). | A | FR-021, FR-022 |
|
||||
|
||||
## SR04: Software Elements Relationship
|
||||
|
||||
| ID | Requirement | Result* | Remark |
|
||||
|---|---|---|---|
|
||||
| SR04:001 | Every operational module shall be reachable only through the identity/access module's authentication and role/application-access checks. | A | FR-002, FR-024 |
|
||||
| SR04:002 | Sales, purchasing, and finance modules shall post related stock and general-ledger effects through the inventory and accounting modules rather than duplicating their logic. | A | FR-013–FR-016 |
|
||||
| SR04:003 | The reporting module shall read from, and never bypass, the authorization scope enforced by the master-data and inventory modules (company/warehouse isolation). | A | FR-024 |
|
||||
| SR04:004 | The notification/scheduler services shall relay events from the PHP application through a secret-protected internal endpoint, not directly from the browser to internal services. | A | NFR-002 |
|
||||
| SR04:005 | Document-control numbering shall be invoked by every module that creates a controlled business document (order, invoice, receipt, payment, journal, etc.). | A | FR-018 |
|
||||
|
||||
## SR05: Performance Characteristics
|
||||
|
||||
| ID | Requirement | Result* | Remark |
|
||||
|---|---|---|---|
|
||||
| SR05:001 | Representative daily operations (screen loads, list/search, document creation) shall complete within practical operational time on the agreed environment. | A | NFR-006 |
|
||||
| SR05:002 | Stock, GL, and dashboard aggregates shall be maintained on a schedule (ETL/summary tables) so dashboard and report queries do not require full recomputation on each request. | A | NFR-006, FR-022 |
|
||||
| SR05:003 | The system shall support the representative concurrent-user and data-volume levels agreed for the production environment. | A | NFR-006 |
|
||||
|
||||
## SR06: Software Interfaces
|
||||
|
||||
| ID | Requirement | Result* | Remark |
|
||||
|---|---|---|---|
|
||||
| SR06:001 | The PHP application shall connect to two MariaDB databases: `wms` (identity/company) and `wms2` (WMS/accounting). | A | Operational context, SR08 |
|
||||
| SR06:002 | The application shall be usable on current standards-based browsers (Chrome, Edge, Firefox). | A | NFR-008 |
|
||||
| SR06:003 | The application shall support mobile/tablet browser access through the responsive UI. | A | NFR-005 |
|
||||
| SR06:004 | The PHP application shall relay events to the Node.js service over an internal, secret-protected HTTP endpoint (`NODE_EMIT_URL`, `NODE_EMIT_SECRET`). | A | NFR-002 |
|
||||
| SR06:005 | The browser shall connect to the Node.js Socket.IO endpoint (`NODE_PUBLIC_URL`) for real-time notification delivery. | A | FR-021 |
|
||||
|
||||
## SR07: Security Characteristics
|
||||
|
||||
| ID | Requirement | Result* | Remark |
|
||||
|---|---|---|---|
|
||||
| SR07:001 | Production deployment shall terminate the client connection over HTTPS/TLS. | A | NFR-001 |
|
||||
| SR07:002 | Server-side actions shall validate input and enforce authentication, authorization, and tenant (company/warehouse) scope. | A | NFR-002 |
|
||||
| SR07:003 | The system shall enforce single active-session (block concurrent login) behavior per the implemented login policy. | A | NFR-002 |
|
||||
| SR07:004 | The system shall protect against SQL injection and cross-site scripting in server-side input handling and output rendering. | A | NFR-002 |
|
||||
| SR07:005 | Role-based access control (Owner/Admin/Staff/Viewer) shall restrict server-side actions, not only UI visibility. | A | FR-002, NFR-002 |
|
||||
|
||||
## SR08: Database Design Requirements
|
||||
|
||||
| ID | Requirement | Result* | Remark |
|
||||
|---|---|---|---|
|
||||
| SR08:001 | Identity/company database (`wms`): `user`, `company_list`, `company_map_user`, `company_setting`, `company_smtp`, `company_usage`, `whitelist`. | A | FR-001–FR-004 |
|
||||
| SR08:002 | Master-data tables in the WMS database (`wms2`): `md_warehouse`, `md_storage`, `md_bin`, `md_product`, `md_product_category`, `md_contact`, `md_contact_type`, `md_account`, `md_account_formula`, `md_account_formula_item`, `md_department`, `md_barcode`, `md_sku_barcode_label`, `md_lot`, `md_lock_operation`. | A | FR-005, FR-006, FR-010, FR-012, FR-016 |
|
||||
| SR08:003 | Transaction-data tables (`td_*`): `td_stock`, `td_order`/`td_order_item`, `td_quotation`/`_item`, `td_invoice`/`_item`, `td_return`/`_item`, `td_purchase_request`/`_item`, `td_purchase_order`/`_item`, `td_supplier_return`/`_item`, `td_receipt`/`_item`, `td_receipt_billing`/`_item`, `td_payment`/`_item`, `td_payment_billing`/`_item`, `td_gl`/`td_gl_item`, `td_batch_action`, `td_bin_log`. | A | FR-007–FR-018 |
|
||||
| SR08:004 | Aggregate/document-control tables: `etl_stock_summary`, `etl_gl_summary`, `document_number_sequences`, `document_types`, `schema_migrations`. | A | FR-018, FR-022 |
|
||||
| SR08:005 | All tables created by the delivered `setup.php` shall be reproducible in a fresh environment without manual schema editing. | A | NFR-004 |
|
||||
|
||||
## SR09: Error Handling and Recovery Attributes
|
||||
|
||||
| ID | Requirement | Result* | Remark |
|
||||
|---|---|---|---|
|
||||
| SR09:001 | Destructive actions (delete, void, cancel of a controlled record) shall require an explicit confirmation step. | A | Usability practice; not a numbered CR/FR but implemented consistently across modules |
|
||||
| SR09:002 | Errors shall present a usable message to the user rather than an unhandled fatal error, for the primary operational workflows. | A | NFR-006 |
|
||||
| SR09:003 | Related database changes (e.g., document + stock + GL postings) shall be transactional where required to avoid partial/inconsistent updates. | A | NFR-003 |
|
||||
|
||||
Remark:
|
||||
|
||||
- \* Result: A = Accepted (implemented and evidenced in the current codebase), U = Unaccepted, N/A = Not Applicable. No SR row in this document is marked A without an identifiable implementing module, class, or table.
|
||||
- This SRS restates already-approved Customer Requirements; it does not introduce new scope. Any SR row without a direct FR/NFR precedent must be raised through the Change Report before being treated as binding.
|
||||
|
||||
## Approval
|
||||
|
||||
### Prepared by
|
||||
|
||||
Name: Thanakorn Sathitwitayakul
|
||||
Role: Developer
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
|
||||
### Reviewed by
|
||||
|
||||
Name: Apirach Supattaratpateep
|
||||
Role: Project Manager
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
|
||||
### Reviewed and authorized by
|
||||
|
||||
Name: Seri Viriyasakultorn
|
||||
Project roles: Project Sponsor / Customer Representative / Authorized Approver
|
||||
Position: Managing Director
|
||||
Company: B.R.N. Enterprise Co., Ltd.
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
+121
@@ -0,0 +1,121 @@
|
||||
# Software Design
|
||||
|
||||
| Document field | Value |
|
||||
|---|---|
|
||||
| Document | Software Design |
|
||||
| Project | BRN WMS |
|
||||
| Project code | 200-WMS-26-001-00 |
|
||||
| Title | System Design Document |
|
||||
| Project period | 05/01/26–24/08/26 |
|
||||
| Release | 17/08/26 V1.0 |
|
||||
| Standard | ISO/IEC 29110 Basic Profile |
|
||||
| Organizer | Apirach Supattaratpateep (Project Manager), Noppong Chareunsook (System Analyst), Thanakorn Sathitwitayakul (Developer) |
|
||||
| Recorder | Thanakorn Sathitwitayakul — Developer |
|
||||
| Status | Final — describes the as-built architecture; from the current codebase |
|
||||
|
||||
## Basis
|
||||
|
||||
This design was derived from the current repository structure and class list rather than authored before implementation. It documents the architecture as evidenced by the code at 17/08/26, HEAD `6c39700` (the last commit of the delivered application; later commits change SDLC documentation only). Diagram content is described here as structured text/tables; the corresponding visual Use Case, Component, and Deployment diagrams are added during the HTML print-layout step, consistent with the project's Markdown-content / HTML-layout workflow.
|
||||
|
||||
## HIGH LEVEL DESIGN
|
||||
|
||||
### Use case actors and actions
|
||||
|
||||
| Actor | Description | Representative actions |
|
||||
|---|---|---|
|
||||
| Owner | Company owner; highest-privilege role within a company | Full access to configuration, users, and all operational modules within the company |
|
||||
| Admin | Administrative user within a company | Manage company settings, users, application access, and all operational modules |
|
||||
| Staff | Operational user | Perform warehouse, sales, purchasing, and finance transactions within permitted scope |
|
||||
| Viewer | Read-only user | View authorized screens and reports without creating/editing transactions |
|
||||
| System (Node.js scheduler) | Automated actor | Executes scheduled stock/GL aggregate maintenance and low-stock/overdue-invoice alerts |
|
||||
| Email/SMTP service | External actor | Delivers onboarding, password-reset, and notification email sent by the application |
|
||||
|
||||
### Component layers
|
||||
|
||||
| Layer | Composition | SR reference |
|
||||
|---|---|---|
|
||||
| Presentation | PHP page views under each `app/<module>/` directory; responsive UI; `app/assets/js/custom.js` and supporting JS/CSS | SR02:002, SR06:002, SR06:003 |
|
||||
| Business logic | 31 manager/service classes plus one shared trait (32 files) in `app/assets/utils/classes/` (Section "Software Unit" below), invoked from page controllers | SR02:003, SR03:001–SR03:011 |
|
||||
| Data access | Manager classes query two MariaDB databases directly (no separate ORM layer); `StockTablesTrait` centralizes shared stock-table access patterns | SR02:004, SR06:001, SR08:001–SR08:005 |
|
||||
| Real-time/scheduled services | Node.js `server.js` (Socket.IO notification relay) and `scheduler.js` (cron-style aggregate/alert jobs), managed by pm2 (`ecosystem.config.js`) | SR03:011, SR06:004, SR06:005 |
|
||||
| External integration | SMTP email delivery (`SmtpManager`); browser Socket.IO client for real-time notifications | SR06:004, SR06:005 |
|
||||
|
||||
### Deployment tiers
|
||||
|
||||
| Tier | Composition | SR reference |
|
||||
|---|---|---|
|
||||
| Client | Browser (Chrome/Edge/Firefox), responsive UI, Socket.IO client connection | SR06:002, SR06:003, SR06:005 |
|
||||
| Web tier | PHP 8+ application; manual LAMP install (`setup.php`) or `docker/php` container (php-apache, config generated from `.env` at entrypoint) | SR01:003, SR02:005 |
|
||||
| Data tier | MariaDB, two databases: `wms` (identity/company) and `wms2` (WMS/accounting); manual install or `docker/mariadb` container | SR06:001, SR08:001–SR08:004 |
|
||||
| Real-time/scheduler tier | Node.js `server.js` + `scheduler.js` under pm2; manual install or `docker/node` container | SR03:011, SR06:004, SR06:005 |
|
||||
| External | SMTP server (configured per company via `company_smtp`) | SR06:004 |
|
||||
|
||||
## Software Unit
|
||||
|
||||
One unit per business-logic manager class, plus the two Node.js services. Each unit's SR reference is its owning module in the SRS (Section SR03).
|
||||
|
||||
| ID | Description | Functional interfaces detail | SR reference |
|
||||
|---|---|---|---|
|
||||
| UN01 | `UserManager` | User CRUD, role assignment, application-access flags | SR03:001 |
|
||||
| UN02 | `PasswordManager` | Password hashing (bcrypt), validation, change | SR03:001, SR01:004 |
|
||||
| UN03 | `PasswordResetManager` | Forgot-password token issuance and reset flow | SR03:001 |
|
||||
| UN04 | `CompanyProfileManager` | Company profile CRUD | SR03:002 |
|
||||
| UN05 | `CompanySettingManager` | Company-level system settings | SR03:002 |
|
||||
| UN06 | `SmtpManager` | Per-company SMTP configuration and mail dispatch | SR03:002, SR06:004 |
|
||||
| UN07 | `WarehouseManager` | Warehouse/storage/bin master data and capacity/occupancy | SR03:003, SR03:004 |
|
||||
| UN08 | `ProductManager` | Product and product-category master data | SR03:003 |
|
||||
| UN09 | `ContactManager` | Contact type and contact master data | SR03:003 |
|
||||
| UN10 | `StockManager` | Stock-in/out/transfer, lot/serial/expiry, balances | SR03:004 |
|
||||
| UN11 | `StockSourceManager` | Stock source/traceability resolution | SR03:004 |
|
||||
| UN12 | `StockTablesTrait` | Shared stock-table query/aggregation logic reused by stock-facing managers | SR03:004 |
|
||||
| UN13 | `BarcodeManager` | SKU/location barcode label generation and scan handling | SR03:004 |
|
||||
| UN14 | `EtlStockManager` | Stock aggregate (ETL) table maintenance | SR03:009, SR05:002 |
|
||||
| UN15 | `QuotationManager` | Quotation lifecycle | SR03:005 |
|
||||
| UN16 | `OrderManager` | Sales-order lifecycle | SR03:005 |
|
||||
| UN17 | `InvoiceManager` | Sales-invoice lifecycle | SR03:005 |
|
||||
| UN18 | `ReturnManager` | Sales-return / credit-note lifecycle | SR03:005 |
|
||||
| UN19 | `PurchaseRequestManager` | Purchase-request lifecycle | SR03:006 |
|
||||
| UN20 | `PurchaseOrderManager` | Purchase-order lifecycle | SR03:006 |
|
||||
| UN21 | `SupplierReturnManager` | Supplier-return lifecycle | SR03:006 |
|
||||
| UN22 | `ReceiptBillingManager` | Receipt billing lifecycle | SR03:007 |
|
||||
| UN23 | `ReceiptManager` | Receipt lifecycle | SR03:007 |
|
||||
| UN24 | `PaymentBillingManager` | Payment billing lifecycle | SR03:007 |
|
||||
| UN25 | `PaymentManager` | Payment lifecycle | SR03:007 |
|
||||
| UN26 | `PostingManager` | Chart of accounts, account formulas, journal, GL posting | SR03:008 |
|
||||
| UN27 | `ReportManager` | Operational and financial report generation | SR03:009 |
|
||||
| UN28 | `DocumentNumberManager` | Controlled document-number sequence generation | SR03:010 |
|
||||
| UN29 | `BatchActionManager` | Bulk/batch record operations | SR02:003 |
|
||||
| UN30 | `OperationLockManager` | Posting-window / operation-lock enforcement | SR07:002, SR09:003 |
|
||||
| UN31 | `UsageGuard` | Company usage-package/transaction-quota enforcement | SR07:002 |
|
||||
| UN32 | `FileUploader` | Supported file-attachment upload handling | SR03:004 |
|
||||
| UN33 | `nodejs/server.js` | Socket.IO real-time notification relay | SR03:011, SR06:005 |
|
||||
| UN34 | `nodejs/scheduler.js` | Scheduled stock/GL aggregate maintenance and low-stock/overdue-invoice alerts | SR03:011, SR05:002 |
|
||||
|
||||
## User Interface Design
|
||||
|
||||
The delivered UI is an implemented, responsive PHP application (login, dashboard, warehouse/inventory, sales, purchasing, finance, accounting, reports, settings). Because the UI already exists as running screens rather than pre-implementation mockups, wireframe capture is not reproduced here; representative screenshots are added during the HTML print-layout step where useful, consistent with the Software User Documentation (work product 18), which documents actual screens.
|
||||
|
||||
## Approval
|
||||
|
||||
### Prepared by
|
||||
|
||||
Name: Thanakorn Sathitwitayakul
|
||||
Role: Developer
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
|
||||
### Reviewed by
|
||||
|
||||
Name: Apirach Supattaratpateep
|
||||
Role: Project Manager
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
|
||||
### Reviewed and authorized by
|
||||
|
||||
Name: Seri Viriyasakultorn
|
||||
Project roles: Project Sponsor / Customer Representative / Authorized Approver
|
||||
Position: Managing Director
|
||||
Company: B.R.N. Enterprise Co., Ltd.
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
+144
@@ -0,0 +1,144 @@
|
||||
# Traceability Record
|
||||
|
||||
| Document field | Value |
|
||||
|---|---|
|
||||
| Document | Traceability Record |
|
||||
| Project | BRN WMS |
|
||||
| Project code | 200-WMS-26-001-00 |
|
||||
| Title | System Traceability Record Document |
|
||||
| Project period | 05/01/26–24/08/26 |
|
||||
| Release | 17/08/26 V1.0 |
|
||||
| Standard | ISO/IEC 29110 Basic Profile |
|
||||
| Organizer | Apirach Supattaratpateep (Project Manager), Noppong Chareunsook (System Analyst), Thanakorn Sathitwitayakul (Developer) |
|
||||
| Status | Final — traceability links, test execution, verification, and validation are recorded as complete on evidence |
|
||||
|
||||
## 1. Objective
|
||||
|
||||
Link every approved requirement through requirement → SRS → design unit → test case, so completeness can be confirmed and defects/missing requirements are reduced, per the Customer Requirements traceability rule (Section 14 of that document).
|
||||
|
||||
## 2. Scaling note
|
||||
|
||||
The example reference package traces at CRUD-button granularity because its system is small. BRN WMS traces at requirement granularity (FR-001–FR-024, NFR-001–NFR-010), consistent with the Customer Requirements, SRS, and Software Design documents, which are already scoped at that level.
|
||||
|
||||
## 3. Traceability matrix
|
||||
|
||||
Per the Customer Requirements traceability rule (Section 14 of that document), the "Correction/Change reference" column links each requirement to any Correction Register (CoR-XXX) or Change Report (CH-XXX) entry that affected it — "—" means no recorded correction or change currently touches that requirement, not that it is untested.
|
||||
|
||||
| Req ID | Requirement topic | SRS ID | Design Unit ID | Test Case ID | Correction/Change reference | Test result | Verification / validation status |
|
||||
|---|---|---|---|---|---|---|---|
|
||||
| FR-001 | Registration and onboarding | SR03:001, SR08:001 | UN01, UN02, UN03 | TC-FR-001 | CoR-007, CoR-008, CoR-011, CoR-013, CoR-018 | Passed | Verified and validated |
|
||||
| FR-002 | Authentication and role enforcement | SR03:001, SR04:001, SR07:005 | UN01, UN02 | TC-FR-002 | CoR-003, CoR-015, CoR-017, CoR-028 | Passed | Verified and validated |
|
||||
| FR-003 | Password recovery, session control, OTP | SR03:001, SR07:003 | UN02, UN03 | TC-FR-003 | CoR-005, CoR-016, CoR-026 | Passed | Verified and validated |
|
||||
| FR-004 | Company/SMTP/settings/user/app-access administration | SR03:001, SR03:002 | UN01, UN04, UN05, UN06 | TC-FR-004 | CoR-011 | Passed | Verified and validated |
|
||||
| FR-005 | Master data (warehouse, storage/bin, category, product, contact) | SR03:003 | UN07, UN08, UN09 | TC-FR-005 | CoR-020, CoR-023; CH-001 | Passed | Verified and validated |
|
||||
| FR-006 | Simple/layered warehouse-location models | SR03:003 | UN07 | TC-FR-006 | — | Passed | Verified and validated |
|
||||
| FR-007 | Stock-in | SR03:004 | UN10, UN12 | TC-FR-007 | — | Passed | Verified and validated |
|
||||
| FR-008 | Stock-out | SR03:004 | UN10, UN12 | TC-FR-008 | — | Passed | Verified and validated |
|
||||
| FR-009 | Stock transfer | SR03:004 | UN10, UN12 | TC-FR-009 | — | Passed | Verified and validated |
|
||||
| FR-010 | Lot, serial, expiry tracking | SR03:004, SR08:002 | UN10, UN11, UN12 | TC-FR-010 | CoR-012 | Passed | Verified and validated |
|
||||
| FR-011 | Stock/movement/capacity/expiry reporting | SR03:009 | UN27, UN07 | TC-FR-011 | CoR-023 | Passed | Verified and validated |
|
||||
| FR-012 | Barcode labels and scanning | SR03:004 | UN13 | TC-FR-012 | — | Passed | Verified and validated |
|
||||
| FR-013 | Sales lifecycle (quotation/order/invoice/return/credit note) | SR03:005, SR04:002 | UN15, UN16, UN17, UN18 | TC-FR-013 | — | Passed | Verified and validated |
|
||||
| FR-014 | Purchasing lifecycle (request/order/invoice/supplier return) | SR03:006, SR04:002 | UN19, UN20, UN21 | TC-FR-014 | — | Passed | Verified and validated |
|
||||
| FR-015 | Finance (receipt billing/receipts/payment billing/payments) | SR03:007, SR04:002 | UN22, UN23, UN24, UN25 | TC-FR-015 | — | Passed | Verified and validated |
|
||||
| FR-016 | Accounting (CoA/departments/formulas/journals/GL) | SR03:008 | UN26 | TC-FR-016 | — | Passed | Verified and validated |
|
||||
| FR-017 | Financial reports | SR03:009 | UN27 | TC-FR-017 | — | Passed | Verified and validated |
|
||||
| FR-018 | Document numbering and lifecycle/status | SR03:010, SR04:005, SR08:004 | UN28 | TC-FR-018 | CoR-019 | Passed | Verified and validated |
|
||||
| FR-019 | File attachments on supported records | SR03:004 | UN32 | TC-FR-019 | — | Passed | Verified and validated |
|
||||
| FR-020 | Filter/view/print/export reports | SR03:009 | UN27 | TC-FR-020 | — | Passed | Verified and validated |
|
||||
| FR-021 | Notifications on status transitions/alerts | SR03:011, SR04:004, SR06:004, SR06:005 | UN33 | TC-FR-021 | — | Passed | Verified and validated |
|
||||
| FR-022 | Scheduled stock/GL summaries and alerts | SR03:011, SR05:002, SR08:004 | UN34, UN14 | TC-FR-022 | CoR-021 | Passed | Verified and validated |
|
||||
| FR-023 | Creator/updater/status/history retention | SR09:001–SR09:003 | All business-logic units | TC-FR-023 | — | Passed | Verified and validated |
|
||||
| FR-024 | Company/warehouse data isolation | SR04:001, SR04:003, SR07:002, SR07:004 | UN01, UN30, UN31 | TC-FR-024 | CoR-009, CoR-024 | Passed | Verified and validated |
|
||||
| NFR-001 | Secrets protected from source control/public access | SR01:005 | Deployment configuration (`docker/php/config.php.template`, `.gitignore`) | TC-NFR-001 | CoR-028 | Passed | Verified and validated |
|
||||
| NFR-002 | Server-side validation, authN/authZ, tenant scope | SR01:004, SR07:001, SR07:002, SR07:004 | UN30, UN31 | TC-NFR-002 | CoR-001, CoR-003, CoR-004, CoR-006, CoR-009, CoR-011, CoR-015, CoR-016, CoR-017, CoR-018, CoR-026 | Passed | Verified and validated |
|
||||
| NFR-003 | Transactional integrity, no invalid negative/duplicate movement | SR09:003 | UN26, UN10 | TC-NFR-003 | CoR-002 | Passed | Verified and validated |
|
||||
| NFR-004 | Documented installation/configuration/backup/recovery | SR01:003, SR02:005, SR08:005 | Product Operation Guide (work product 19) | TC-NFR-004 | CoR-014; CH-003 | Passed | Verified and validated |
|
||||
| NFR-005 | Responsive UI (desktop/warehouse-floor devices) | SR02:002, SR06:003 | Presentation layer (all modules) | TC-NFR-005 | CoR-025 | Passed | Verified and validated |
|
||||
| NFR-006 | Practical operational response time | SR05:001–SR05:003, SR09:002 | UN14, UN34 | TC-NFR-006 | — | Passed | Verified and validated |
|
||||
| NFR-007 | Modular, maintainable structure | SR02:003, SR02:004 | All business-logic units | TC-NFR-007 | CoR-010, CoR-027; CH-001 | Passed | Verified and validated |
|
||||
| NFR-008 | PHP/MariaDB/Node.js/browser compatibility | SR01:002, SR06:002 | Web tier | TC-NFR-008 | — | Passed | Verified and validated |
|
||||
| NFR-009 | Every requirement links to design/component/verification evidence | SR01:001 | This Traceability Record | TC-NFR-009 | CoR-022 | Passed | Verified and validated |
|
||||
| NFR-010 | Asia/Bangkok time zone consistency | — | `config.php` `$time_zone`, `nodejs/scheduler.js` | TC-NFR-010 | — | Passed | Verified and validated |
|
||||
|
||||
**Cross-cutting SRS items not tied to a single row:** SR02:001 (browser-based web application), SR06:001 (MariaDB connectivity), and SR08:003 (the full `td_*` transaction-table set) are foundational to nearly every functional requirement rather than one specific row, so they are not repeated across the matrix; they are satisfied by the architecture described in Software Design (work product 12) as a whole. UN29 (`BatchActionManager`) is covered by the "All business-logic units" reference in the NFR-007 and FR-023 rows rather than cited by ID in every row it could touch.
|
||||
|
||||
## 4. Coverage summary
|
||||
|
||||
| Measure | Count |
|
||||
|---|---:|
|
||||
| Total requirements (FR + NFR) | 34 |
|
||||
| Linked to at least one SRS ID | 34 |
|
||||
| Linked to at least one Design Unit ID | 34 |
|
||||
| Linked to a defined Test Case ID | 34 (defined in work product 15) |
|
||||
| Linked to at least one Correction/Change reference | 18 of 34 |
|
||||
| Test cases executed with recorded result | 34 (executed 10/08/26–14/08/26) |
|
||||
| Verified in Verification Results (work product 21) | 34 |
|
||||
| Validated in Validation Result (work product 22) | 34 requirements covered by 12 passed scenarios |
|
||||
|
||||
## 5. Correction and Change Register cross-reference
|
||||
|
||||
This section maps each Correction Register (work product 4) and Change Report (work product 6) entry to the requirement(s) it affects.
|
||||
|
||||
| Correction/Change ID | Implementation reference | Requirement(s) affected |
|
||||
|---|---|---|
|
||||
| CoR-001 | `7cb78d0` | NFR-002 |
|
||||
| CoR-002 | `92d116f` | NFR-003 |
|
||||
| CoR-003 | `2eb6a1a` | FR-002, NFR-002 |
|
||||
| CoR-004 | `a75d37e` | NFR-002 |
|
||||
| CoR-005 | `304848d` | FR-003 |
|
||||
| CoR-006 | `7a87909` | NFR-002 |
|
||||
| CoR-007 | `8f1c5c4` | FR-001 |
|
||||
| CoR-008 | `4433ef1` | FR-001 |
|
||||
| CoR-009 | `8cf1d93` | NFR-002, FR-024 |
|
||||
| CoR-010 | `91f8bb8` | NFR-007 |
|
||||
| CoR-011 | `6eeebfe` | FR-001, FR-004, NFR-002 |
|
||||
| CoR-012 | `94032dd` | FR-010 |
|
||||
| CoR-013 | `b76dc67` | FR-001 |
|
||||
| CoR-014 | `59037b5`, `f4ef776` | NFR-004 |
|
||||
| CoR-015 | `b07882e` | FR-002, NFR-002 |
|
||||
| CoR-016 | `2930973` | FR-003, NFR-002 |
|
||||
| CoR-017 | `4733c78` | FR-002, NFR-002 |
|
||||
| CoR-018 | `b4b1f5c` | FR-001, NFR-002 |
|
||||
| CoR-019 | `cb36d3b` | FR-018 |
|
||||
| CoR-020 | `dfeb575` | FR-005 |
|
||||
| CoR-021 | `f3c0e3c`, `714b70d` | FR-022 |
|
||||
| CoR-022 | `99ae35d` | NFR-009 |
|
||||
| CoR-023 | `5df6736` | FR-005, FR-011 |
|
||||
| CoR-024 | `9a50238` | FR-024 |
|
||||
| CoR-025 | `ed3dd2f` | NFR-005 |
|
||||
| CoR-026 | `fda211b` | FR-003, NFR-002 |
|
||||
| CoR-027 | `a0677d6` | NFR-007 |
|
||||
| CoR-028 | `b2c4374` | FR-002, NFR-001 |
|
||||
| CH-001 | `8f57ab5` | FR-005, NFR-007 |
|
||||
| CH-002 | `dd48a8b` | Not requirement-linked — demo data/delivery preparation |
|
||||
| CH-003 | `63cea23`, `136084f`, `6c39700` | NFR-004 (Docker deployment); branding/delivery preparation is not separately requirement-linked |
|
||||
|
||||
## 6. Gap and next step
|
||||
|
||||
Every requirement has an unbroken forward link from Customer Requirements through SRS and Software Design to a defined Test Case ID. All 34 cases were executed over 10/08/26–14/08/26 and passed, and verification and validation/UAT were completed.
|
||||
|
||||
## 7. Approval
|
||||
|
||||
### Prepared by
|
||||
|
||||
Name: Thanakorn Sathitwitayakul
|
||||
Role: Developer
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
|
||||
### Reviewed by
|
||||
|
||||
Name: Apirach Supattaratpateep
|
||||
Role: Project Manager
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
|
||||
### Reviewed and authorized by
|
||||
|
||||
Name: Seri Viriyasakultorn
|
||||
Project roles: Project Sponsor / Customer Representative / Authorized Approver
|
||||
Position: Managing Director
|
||||
Company: B.R.N. Enterprise Co., Ltd.
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
+109
@@ -0,0 +1,109 @@
|
||||
# Software Components
|
||||
|
||||
| Document field | Value |
|
||||
|---|---|
|
||||
| Document | Software Components |
|
||||
| Project | BRN WMS |
|
||||
| Project code | 200-WMS-26-001-00 |
|
||||
| Title | Record of Delivered Software Components |
|
||||
| Project period | 05/01/26–24/08/26 |
|
||||
| Release | 17/08/26 V1.0 |
|
||||
| Standard | ISO/IEC 29110 Basic Profile |
|
||||
| System Analyst | Noppong Chareunsook |
|
||||
| Developer | Thanakorn Sathitwitayakul |
|
||||
| Project Manager | Apirach Supattaratpateep |
|
||||
| Status | Final — reflects the delivered component inventory at project baseline |
|
||||
|
||||
## 1. Purpose
|
||||
|
||||
The example reference package has no filled Software Components document; this work product's content and format were not prescribed by an example and are defined here from the current codebase. This record lists the delivered software components (business-logic classes, real-time/scheduled services, and application areas) as the inventory referenced by the Traceability Record and Software Configuration. Unit IDs match the Software Unit table in the Software Design document.
|
||||
|
||||
## 2. Business-logic components (PHP)
|
||||
|
||||
| Unit ID | Component | File | Status |
|
||||
|---|---|---|---|
|
||||
| UN01 | UserManager | `app/assets/utils/classes/UserManager.php` | Implemented |
|
||||
| UN02 | PasswordManager | `app/assets/utils/classes/PasswordManager.php` | Implemented |
|
||||
| UN03 | PasswordResetManager | `app/assets/utils/classes/PasswordResetManager.php` | Implemented |
|
||||
| UN04 | CompanyProfileManager | `app/assets/utils/classes/CompanyProfileManager.php` | Implemented |
|
||||
| UN05 | CompanySettingManager | `app/assets/utils/classes/CompanySettingManager.php` | Implemented |
|
||||
| UN06 | SmtpManager | `app/assets/utils/classes/SmtpManager.php` | Implemented |
|
||||
| UN07 | WarehouseManager | `app/assets/utils/classes/WarehouseManager.php` | Implemented |
|
||||
| UN08 | ProductManager | `app/assets/utils/classes/ProductManager.php` | Implemented |
|
||||
| UN09 | ContactManager | `app/assets/utils/classes/ContactManager.php` | Implemented |
|
||||
| UN10 | StockManager | `app/assets/utils/classes/StockManager.php` | Implemented |
|
||||
| UN11 | StockSourceManager | `app/assets/utils/classes/StockSourceManager.php` | Implemented |
|
||||
| UN12 | StockTablesTrait | `app/assets/utils/classes/StockTablesTrait.php` | Implemented |
|
||||
| UN13 | BarcodeManager | `app/assets/utils/classes/BarcodeManager.php` | Implemented |
|
||||
| UN14 | EtlStockManager | `app/assets/utils/classes/EtlStockManager.php` | Implemented |
|
||||
| UN15 | QuotationManager | `app/assets/utils/classes/QuotationManager.php` | Implemented |
|
||||
| UN16 | OrderManager | `app/assets/utils/classes/OrderManager.php` | Implemented |
|
||||
| UN17 | InvoiceManager | `app/assets/utils/classes/InvoiceManager.php` | Implemented |
|
||||
| UN18 | ReturnManager | `app/assets/utils/classes/ReturnManager.php` | Implemented |
|
||||
| UN19 | PurchaseRequestManager | `app/assets/utils/classes/PurchaseRequestManager.php` | Implemented |
|
||||
| UN20 | PurchaseOrderManager | `app/assets/utils/classes/PurchaseOrderManager.php` | Implemented |
|
||||
| UN21 | SupplierReturnManager | `app/assets/utils/classes/SupplierReturnManager.php` | Implemented |
|
||||
| UN22 | ReceiptBillingManager | `app/assets/utils/classes/ReceiptBillingManager.php` | Implemented |
|
||||
| UN23 | ReceiptManager | `app/assets/utils/classes/ReceiptManager.php` | Implemented |
|
||||
| UN24 | PaymentBillingManager | `app/assets/utils/classes/PaymentBillingManager.php` | Implemented |
|
||||
| UN25 | PaymentManager | `app/assets/utils/classes/PaymentManager.php` | Implemented |
|
||||
| UN26 | PostingManager | `app/assets/utils/classes/PostingManager.php` | Implemented |
|
||||
| UN27 | ReportManager | `app/assets/utils/classes/ReportManager.php` | Implemented |
|
||||
| UN28 | DocumentNumberManager | `app/assets/utils/classes/DocumentNumberManager.php` | Implemented |
|
||||
| UN29 | BatchActionManager | `app/assets/utils/classes/BatchActionManager.php` | Implemented |
|
||||
| UN30 | OperationLockManager | `app/assets/utils/classes/OperationLockManager.php` | Implemented |
|
||||
| UN31 | UsageGuard | `app/assets/utils/classes/UsageGuard.php` | Implemented |
|
||||
| UN32 | FileUploader | `app/assets/utils/classes/FileUploader.php` | Implemented |
|
||||
|
||||
## 3. Real-time and scheduled service components (Node.js)
|
||||
|
||||
| Unit ID | Component | File | Status |
|
||||
|---|---|---|---|
|
||||
| UN33 | Socket.IO notification server | `nodejs/server.js` | Implemented |
|
||||
| UN34 | Scheduled aggregate/alert jobs | `nodejs/scheduler.js` | Implemented |
|
||||
| — | Process manager configuration | `nodejs/ecosystem.config.js` | Implemented |
|
||||
|
||||
## 4. Application areas (presentation)
|
||||
|
||||
| Area | Path | Primary components |
|
||||
|---|---|---|
|
||||
| Login/onboarding | `app/login/` | UN01, UN02, UN03 |
|
||||
| Company/system settings | `app/setting/` | UN04, UN05, UN06 |
|
||||
| Inventory/warehouse master data | `app/inventory/` | UN07, UN08 |
|
||||
| Contacts | `app/contact/` | UN09 |
|
||||
| Inventory control system (stock operations) | `app/ics/` | UN10, UN11, UN12, UN13 |
|
||||
| Sales/revenue | `app/order/`, `app/revenue/` | UN15, UN16, UN17, UN18 |
|
||||
| Purchasing | `app/po/` | UN19, UN20, UN21 |
|
||||
| Finance | `app/finance/` | UN22, UN23, UN24, UN25 |
|
||||
| Accounting/journal | `app/accounting/`, `app/journal/` | UN26 |
|
||||
| Reporting/dashboards | `app/reports/`, `app/dashboard/`, `app/ac_dashboard/`, `app/expense/` | UN27, UN14 |
|
||||
| Scheduled jobs (PHP side) | `app/cron/` | UN14, UN26 |
|
||||
|
||||
## 5. Component change linkage
|
||||
|
||||
New or modified components are controlled through the Change Report and Correction Register.
|
||||
|
||||
## 6. Approval
|
||||
|
||||
### Prepared by
|
||||
|
||||
Name: Thanakorn Sathitwitayakul
|
||||
Role: Developer
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
|
||||
### Reviewed by
|
||||
|
||||
Name: Apirach Supattaratpateep
|
||||
Role: Project Manager
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
|
||||
### Reviewed and authorized by
|
||||
|
||||
Name: Seri Viriyasakultorn
|
||||
Project roles: Project Sponsor / Customer Representative / Authorized Approver
|
||||
Position: Managing Director
|
||||
Company: B.R.N. Enterprise Co., Ltd.
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
+107
@@ -0,0 +1,107 @@
|
||||
# Test Cases and Test Procedures
|
||||
|
||||
| Document field | Value |
|
||||
|---|---|
|
||||
| Document | Test Cases and Test Procedures |
|
||||
| Project | BRN WMS |
|
||||
| Project code | 200-WMS-26-001-00 |
|
||||
| Title | Document Showing Sample Test Data Sets |
|
||||
| Project period | 05/01/26–24/08/26 |
|
||||
| Release | 17/08/26 V1.0 |
|
||||
| Standard | ISO/IEC 29110 Basic Profile |
|
||||
| Organizer | Apirach Supattaratpateep (Project Manager), Noppong Chareunsook (System Analyst), Thanakorn Sathitwitayakul (Developer) |
|
||||
| Responsible | Parin Ngamkham — QA / Tester, independent of the Developer |
|
||||
| Status | Final specification and execution record — all 34 cases executed and passed 10/08/26–14/08/26 |
|
||||
|
||||
## 1. Objective and status disclosure
|
||||
|
||||
Define the Test Cases used to verify and validate system behavior against Customer Requirements and the SRS. This document specifies the cases and records their execution. All 34 cases were executed and passed over the test window 10/08/26–14/08/26 by Parin Ngamkham (QA/Tester) on the internal testing server, confirmed by the project user on 17/08/26. Per-case execution dates, exact deployed commit identifiers, and detailed actual-result observations within that window were not separately retained.
|
||||
|
||||
BRN WMS has an assigned QA/Tester (Parin Ngamkham), independent of the Developer (Thanakorn Sathitwitayakul) who implemented the system. Test execution and results in the Test Report are attributed to this independent role, not to self-testing by the developer.
|
||||
|
||||
Two environments are used, and the distinction matters for how the results should be read:
|
||||
|
||||
| Activity | Environment | Owner |
|
||||
|---|---|---|
|
||||
| Test execution (this document and work product 16) | Internal testing server | Parin Ngamkham — QA / Tester, supplier side |
|
||||
| User acceptance testing (work product 22) | Customer production environment | Seri Viriyasakultorn — Project Sponsor / Customer Representative |
|
||||
|
||||
Because functional and non-functional test execution runs on the internal testing server, destructive and high-risk cases — for example the TC-NFR-003 failure/rollback simulation — could be exercised without risk to customer data.
|
||||
|
||||
### 1.1 Execution baseline and retained evidence
|
||||
|
||||
| Field | Record |
|
||||
|---|---|
|
||||
| Tested environment | Internal testing server used by the supplier-side QA/Tester during 10/08/26–14/08/26; the exact host identifier was not separately retained. |
|
||||
| Closest retained repository state at the end of the test window | Git commit `dd48a8b` — Demo Data Population, committed 14/08/26. This identifies the closest retained repository state by date; it is not asserted as the exact deployed commit for every test case. |
|
||||
| Delivered software baseline | Git commit `6c39700`, committed 17/08/26. This is the delivered baseline, not the exact tested build; it includes post-test-window delivery, branding, and deployment-preparation changes. |
|
||||
| Per-case evidence retained | Test specification, expected result, pass status, test window, responsible tester, environment needs, and requirement traceability in this document and work products 13 and 16. |
|
||||
| Evidence limitation | Per-case timestamps, transaction/data identifiers, screenshots, logs, and detailed observed-result notes were not separately retained. No such details should be reconstructed or backdated. |
|
||||
|
||||
## 2. Test case specification
|
||||
|
||||
| No. | Test Case ID | Test Item | Input Specification | Output Specification | Environment Needs | Special Procedural Required | Intercase Dependency | Status | Test Date |
|
||||
|---:|---|---|---|---|---|---|---|---|---|
|
||||
| 1 | TC-FR-001 | Registration and invited-user onboarding | New company owner registration; invited-user onboarding link | Company/owner account created; invited user completes onboarding into the correct company | Web browser, PHP/MariaDB test environment | Valid email/SMTP delivery available | — | Passed | 10/08/26–14/08/26 |
|
||||
| 2 | TC-FR-002 | Role-based authentication | Login as Owner/Admin/Staff/Viewer | Each role reaches only its permitted screens/actions; unauthorized action rejected | Internal testing server, browser, seeded users per role | Test accounts for all 4 roles | Requires TC-FR-001 | Passed | 10/08/26–14/08/26 |
|
||||
| 3 | TC-FR-003 | Password recovery / session / OTP | Forgot-password request; concurrent login attempt | Reset completes without exposing credentials; concurrent-session rule enforced | Web browser, SMTP test environment | — | Requires TC-FR-002 | Passed | 10/08/26–14/08/26 |
|
||||
| 4 | TC-FR-004 | Company/SMTP/settings/user/app-access administration | Authorized admin changes company profile, SMTP, settings, user, app access | Change is saved; unauthorized user is rejected | Web browser, Admin account | — | Requires TC-FR-002 | Passed | 10/08/26–14/08/26 |
|
||||
| 5 | TC-FR-005 | Master data CRUD | Create/view/update/deactivate warehouse, storage/bin, category, product, contact | Valid record created/updated; invalid input rejected | Web browser, Admin/Staff account | — | Requires TC-FR-002 | Passed | 10/08/26–14/08/26 |
|
||||
| 6 | TC-FR-006 | Simple vs layered warehouse model | Configure a company with basic model, another with warehouse/storage/bin levels | Both configurations operate correctly for their company | Web browser, two test companies | — | Requires TC-FR-005 | Passed | 10/08/26–14/08/26 |
|
||||
| 7 | TC-FR-007 | Stock-in | Valid receipt: product, quantity, location, document | Movement and balance created correctly; invalid input rejected | Web browser, seeded product/warehouse | — | Requires TC-FR-005 | Passed | 10/08/26–14/08/26 |
|
||||
| 8 | TC-FR-008 | Stock-out | Authorized issue within available balance; issue exceeding balance | Balance reduced correctly; excessive issue rejected | Web browser | — | Requires TC-FR-007 | Passed | 10/08/26–14/08/26 |
|
||||
| 9 | TC-FR-009 | Stock transfer | Transfer between two authorized locations | Source/destination movements balanced and linked as one transfer | Web browser | — | Requires TC-FR-007 | Passed | 10/08/26–14/08/26 |
|
||||
| 10 | TC-FR-010 | Lot/serial/expiry tracking | Stock-in with lot/serial/expiry attributes | Attributes retained and shown in applicable reports | Web browser | — | Requires TC-FR-007 | Passed | 10/08/26–14/08/26 |
|
||||
| 11 | TC-FR-011 | Stock/movement/capacity/expiry reporting | Request stock overview, movement history, capacity/occupancy, low-stock, expired-stock, product-lot reports | Reports reflect authorized data with applied filters | Web browser | — | Requires TC-FR-007–010 | Passed | 10/08/26–14/08/26 |
|
||||
| 12 | TC-FR-012 | Barcode labels and scanning | Generate SKU/location label; scan into a supported screen | Label contains a usable identifier; scanned value accepted | Web browser, barcode scanner or scan simulation | Printer/scanner access if available | Requires TC-FR-005 | Passed | 10/08/26–14/08/26 |
|
||||
| 13 | TC-FR-013 | Sales lifecycle | Create quotation → order → invoice; process a return/credit note | Valid lifecycle transitions and related stock/financial effects occur | Web browser | — | Requires TC-FR-005, TC-FR-007 | Passed | 10/08/26–14/08/26 |
|
||||
| 14 | TC-FR-014 | Purchasing lifecycle | Create purchase request → order → invoice; process a supplier return | Valid lifecycle transitions and related stock/financial effects occur | Web browser | — | Requires TC-FR-005 | Passed | 10/08/26–14/08/26 |
|
||||
| 15 | TC-FR-015 | Finance documents | Create receipt billing/receipt and payment billing/payment | Document linkage, amount, status, and history retained | Web browser | — | Requires TC-FR-013, TC-FR-014 | Passed | 10/08/26–14/08/26 |
|
||||
| 16 | TC-FR-016 | Accounting structures and posting | Maintain chart of accounts/departments/formulas; post a journal/GL entry | Structures maintained; balanced, traceable entry posted | Web browser | — | Requires TC-FR-004 | Passed | 10/08/26–14/08/26 |
|
||||
| 17 | TC-FR-017 | Financial reports | Request trial balance, P&L, balance sheet, VAT, journal, GL-movement reports | Reports use authorized data and produce consistent totals for the period | Web browser | — | Requires TC-FR-016 | Passed | 10/08/26–14/08/26 |
|
||||
| 18 | TC-FR-018 | Document numbering and lifecycle | Create a controlled document; attempt an invalid status transition | Document number follows configured sequence; invalid transition rejected | Web browser | — | Requires TC-FR-013 or TC-FR-014 | Passed | 10/08/26–14/08/26 |
|
||||
| 19 | TC-FR-019 | File attachment | Upload/retrieve a permitted file on a supported record | Allowed file uploaded and retrieved only by authorized users | Web browser | Supported file type available | Requires TC-FR-005 | Passed | 10/08/26–14/08/26 |
|
||||
| 20 | TC-FR-020 | Report filter/view/print/export | Filter, view, print, and export a supported report | Output matches selected scope/filters | Web browser | — | Requires TC-FR-011 or TC-FR-017 | Passed | 10/08/26–14/08/26 |
|
||||
| 21 | TC-FR-021 | Status/alert notification | Trigger a status transition that should notify a user | Only authorized recipients receive the notification | Web browser, Socket.IO connection | Node.js service running | Requires TC-FR-002 | Passed | 10/08/26–14/08/26 |
|
||||
| 22 | TC-FR-022 | Scheduled aggregate/alert jobs | Run scheduled stock/GL summary and low-stock/overdue-invoice jobs | Jobs complete without duplicate or unauthorized results | Node.js scheduler environment | Scheduler running | Requires TC-FR-007, TC-FR-015 | Passed | 10/08/26–14/08/26 |
|
||||
| 23 | TC-FR-023 | Creator/updater/status/history retention | Create then modify a controlled record | Reviewer can identify ownership and lifecycle events from retained history | Web browser | — | Requires TC-FR-005 | Passed | 10/08/26–14/08/26 |
|
||||
| 24 | TC-FR-024 | Company/warehouse data isolation | Attempt cross-company or unauthorized-warehouse access | Access denied in UI and server-side action | Web browser, two test companies | — | Requires TC-FR-002, TC-FR-005 | Passed | 10/08/26–14/08/26 |
|
||||
| 25 | TC-NFR-001 | Secrets protection | Review repository and deployed environment for committed/exposed secrets | No committed active secret or publicly exposed protected configuration found | Repository access, deployed environment | — | — | Passed | 10/08/26–14/08/26 |
|
||||
| 26 | TC-NFR-002 | Server-side validation/authZ/tenant scope | Negative-authorization and invalid-input attempts against server-side actions | Rejected without unauthorized data change | Web browser, API-level test tooling | — | Requires TC-FR-002, TC-FR-024 | Passed | 10/08/26–14/08/26 |
|
||||
| 27 | TC-NFR-003 | Transactional integrity | Simulate failure/rollback and concurrent-write scenarios on document+stock+GL postings | Balances and records remain consistent | Internal testing server | — | Requires TC-FR-007, TC-FR-016 | Passed | 10/08/26–14/08/26 |
|
||||
| 28 | TC-NFR-004 | Installation/configuration/backup/recovery | Follow Product Operation Guide to install, configure, back up, and restore | Administrator completes each step successfully | Fresh internal testing server instance | Product Operation Guide (work product 19) | — | Passed | 10/08/26–14/08/26 |
|
||||
| 29 | TC-NFR-005 | Responsive UI | Load representative screens at agreed desktop and mobile viewport sizes | Screens remain usable at each size | Web browser, responsive-mode/device testing | — | — | Passed | 10/08/26–14/08/26 |
|
||||
| 30 | TC-NFR-006 | Operational performance | Execute representative operations/reports under agreed data volume | Operations complete within practical operational time | Internal testing server with representative data | — | Requires TC-FR-022 | Passed | 10/08/26–14/08/26 |
|
||||
| 31 | TC-NFR-007 | Maintainability | Locate the responsible module/class for a sample change request without touching unrelated modules | Change is isolated to the correct component | Repository access | — | — | Passed | 10/08/26–14/08/26 |
|
||||
| 32 | TC-NFR-008 | Platform/browser compatibility | Install and run representative workflows on the supported PHP/MariaDB/Node/browser matrix | Installation and workflows succeed on the supported platform | Supported platform matrix | — | Requires TC-NFR-004 | Passed | 10/08/26–14/08/26 |
|
||||
| 33 | TC-NFR-009 | Traceability completeness | Review the Traceability Record for gaps on any Must requirement | No unexplained gap found | Traceability Record (work product 13) | — | — | Passed | 10/08/26–14/08/26 |
|
||||
| 34 | TC-NFR-010 | Time-zone consistency | Compare stored/displayed operational times and scheduled-job execution time against Asia/Bangkok | Times and execution follow the configured time zone | Web browser, Node.js scheduler logs | — | Requires TC-FR-022 | Passed | 10/08/26–14/08/26 |
|
||||
|
||||
## 3. QA execution declaration
|
||||
|
||||
By signing the Prepared by block below, the QA/Tester confirms that they executed all 34 test cases on the internal testing server during 10/08/26–14/08/26, compared the observed behavior with each specified output, recorded all 34 cases as passed, and reported no unresolved test anomaly. The declaration applies to the application state used during that test window and does not represent Git commit `6c39700` as the exact tested build.
|
||||
|
||||
## 4. Approval
|
||||
|
||||
### Prepared by
|
||||
|
||||
Name: Parin Ngamkham
|
||||
Role: QA / Tester
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
|
||||
### Reviewed by
|
||||
|
||||
Name: Apirach Supattaratpateep
|
||||
Role: Project Manager
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
|
||||
### Reviewed and authorized by
|
||||
|
||||
Name: Seri Viriyasakultorn
|
||||
Project roles: Project Sponsor / Customer Representative / Authorized Approver
|
||||
Position: Managing Director
|
||||
Company: B.R.N. Enterprise Co., Ltd.
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
+124
@@ -0,0 +1,124 @@
|
||||
# Test Report
|
||||
|
||||
| Document field | Value |
|
||||
|---|---|
|
||||
| Document | Test Report |
|
||||
| Project | BRN WMS |
|
||||
| Project code | 200-WMS-26-001-00 |
|
||||
| Title | Record of System Test Results |
|
||||
| Project period | 05/01/26–24/08/26 |
|
||||
| Release | 17/08/26 V1.0 |
|
||||
| Standard | ISO/IEC 29110 Basic Profile |
|
||||
| Organizer | Apirach Supattaratpateep (Project Manager), Noppong Chareunsook (System Analyst), Thanakorn Sathitwitayakul (Developer) |
|
||||
| Responsible | Parin Ngamkham — QA / Tester, independent of the Developer; executed on the internal testing server |
|
||||
| Status | Final — records all 34 defined test cases as executed and passed 10/08/26–14/08/26; see Section 1 |
|
||||
|
||||
## 1. Objective and disclosure
|
||||
|
||||
Confirm that BRN WMS covers the Customer Requirements and SRS through executed testing, per the Test Cases and Test Procedures (work product 15) and the project schedule. All 34 defined test cases were executed over the test window 10/08/26–14/08/26 and passed, with no open test defect reported.
|
||||
|
||||
Execution was performed by Parin Ngamkham (QA/Tester), independent of the Developer, on the internal testing server. Per-case execution dates, exact deployed commit identifiers, and detailed actual-result observations within the window were not separately retained. Customer-side acceptance testing on the production environment is recorded separately as the Validation Result (work product 22).
|
||||
|
||||
## 2. Scope (as planned in Test Cases and Test Procedures)
|
||||
|
||||
| No. | Topic | Detail |
|
||||
|---:|---|---|
|
||||
| 1 | Functional test | 24 functional requirements (FR-001–FR-024), test cases TC-FR-001–TC-FR-024 |
|
||||
| 2 | Non-functional test | 10 non-functional requirements (NFR-001–NFR-010), test cases TC-NFR-001–TC-NFR-010 |
|
||||
| 3 | Environment | Internal testing server (supplier side). Customer production UAT is recorded separately in work product 22. |
|
||||
| 4 | Period | Test window 10/08/26–14/08/26; completion confirmed by the project user 17/08/26. Per-case execution dates within the window not separately recorded. |
|
||||
| 5 | Closest retained repository state | Git commit `dd48a8b` dated 14/08/26. It is the closest retained state by date, not a claim that every case used that exact commit. |
|
||||
| 6 | Delivered software baseline | Git commit `6c39700` dated 17/08/26. It post-dates the test window and is not represented as the exact tested build. |
|
||||
|
||||
## 3. Execution summary
|
||||
|
||||
| Measure | Count |
|
||||
|---|---:|
|
||||
| Total test cases defined | 34 |
|
||||
| Executed | 34 |
|
||||
| Passed | 34 |
|
||||
| Failed | 0 |
|
||||
| Blocked | 0 |
|
||||
| Not executed | 0 |
|
||||
|
||||
## 4. Verification items
|
||||
|
||||
| No. | Test Case | Requirement ID | Requirement Topic | Status | Test Date |
|
||||
|---:|---|---|---|---|---|
|
||||
| 1 | TC-FR-001 | FR-001 | Registration and onboarding | Passed | 10/08/26–14/08/26 |
|
||||
| 2 | TC-FR-002 | FR-002 | Role-based authentication | Passed | 10/08/26–14/08/26 |
|
||||
| 3 | TC-FR-003 | FR-003 | Password recovery / session / OTP | Passed | 10/08/26–14/08/26 |
|
||||
| 4 | TC-FR-004 | FR-004 | Company/SMTP/settings/user/app-access administration | Passed | 10/08/26–14/08/26 |
|
||||
| 5 | TC-FR-005 | FR-005 | Master data CRUD | Passed | 10/08/26–14/08/26 |
|
||||
| 6 | TC-FR-006 | FR-006 | Simple vs layered warehouse model | Passed | 10/08/26–14/08/26 |
|
||||
| 7 | TC-FR-007 | FR-007 | Stock-in | Passed | 10/08/26–14/08/26 |
|
||||
| 8 | TC-FR-008 | FR-008 | Stock-out | Passed | 10/08/26–14/08/26 |
|
||||
| 9 | TC-FR-009 | FR-009 | Stock transfer | Passed | 10/08/26–14/08/26 |
|
||||
| 10 | TC-FR-010 | FR-010 | Lot/serial/expiry tracking | Passed | 10/08/26–14/08/26 |
|
||||
| 11 | TC-FR-011 | FR-011 | Stock/movement/capacity/expiry reporting | Passed | 10/08/26–14/08/26 |
|
||||
| 12 | TC-FR-012 | FR-012 | Barcode labels and scanning | Passed | 10/08/26–14/08/26 |
|
||||
| 13 | TC-FR-013 | FR-013 | Sales lifecycle | Passed | 10/08/26–14/08/26 |
|
||||
| 14 | TC-FR-014 | FR-014 | Purchasing lifecycle | Passed | 10/08/26–14/08/26 |
|
||||
| 15 | TC-FR-015 | FR-015 | Finance documents | Passed | 10/08/26–14/08/26 |
|
||||
| 16 | TC-FR-016 | FR-016 | Accounting structures and posting | Passed | 10/08/26–14/08/26 |
|
||||
| 17 | TC-FR-017 | FR-017 | Financial reports | Passed | 10/08/26–14/08/26 |
|
||||
| 18 | TC-FR-018 | FR-018 | Document numbering and lifecycle | Passed | 10/08/26–14/08/26 |
|
||||
| 19 | TC-FR-019 | FR-019 | File attachment | Passed | 10/08/26–14/08/26 |
|
||||
| 20 | TC-FR-020 | FR-020 | Report filter/view/print/export | Passed | 10/08/26–14/08/26 |
|
||||
| 21 | TC-FR-021 | FR-021 | Status/alert notification | Passed | 10/08/26–14/08/26 |
|
||||
| 22 | TC-FR-022 | FR-022 | Scheduled aggregate/alert jobs | Passed | 10/08/26–14/08/26 |
|
||||
| 23 | TC-FR-023 | FR-023 | Creator/updater/status/history retention | Passed | 10/08/26–14/08/26 |
|
||||
| 24 | TC-FR-024 | FR-024 | Company/warehouse data isolation | Passed | 10/08/26–14/08/26 |
|
||||
| 25 | TC-NFR-001 | NFR-001 | Secrets protection | Passed | 10/08/26–14/08/26 |
|
||||
| 26 | TC-NFR-002 | NFR-002 | Server-side validation/authZ/tenant scope | Passed | 10/08/26–14/08/26 |
|
||||
| 27 | TC-NFR-003 | NFR-003 | Transactional integrity | Passed | 10/08/26–14/08/26 |
|
||||
| 28 | TC-NFR-004 | NFR-004 | Installation/configuration/backup/recovery | Passed | 10/08/26–14/08/26 |
|
||||
| 29 | TC-NFR-005 | NFR-005 | Responsive UI | Passed | 10/08/26–14/08/26 |
|
||||
| 30 | TC-NFR-006 | NFR-006 | Operational performance | Passed | 10/08/26–14/08/26 |
|
||||
| 31 | TC-NFR-007 | NFR-007 | Maintainability | Passed | 10/08/26–14/08/26 |
|
||||
| 32 | TC-NFR-008 | NFR-008 | Platform/browser compatibility | Passed | 10/08/26–14/08/26 |
|
||||
| 33 | TC-NFR-009 | NFR-009 | Traceability completeness | Passed | 10/08/26–14/08/26 |
|
||||
| 34 | TC-NFR-010 | NFR-010 | Time-zone consistency | Passed | 10/08/26–14/08/26 |
|
||||
|
||||
## 5. Evidence basis and limitation
|
||||
|
||||
The retained per-case record consists of the test specification and expected result in work product 15, the pass result and test window in this report, the named responsible QA/Tester, and the requirement links in the Traceability Record. Per-case timestamps, transaction/data identifiers, screenshots, logs, and detailed actual-result notes were not separately retained. The test results must therefore be read as a signed manual execution record, not as a claim that those additional artefacts exist.
|
||||
|
||||
The closest retained repository state at the end of the test window is `dd48a8b` (14/08/26). The delivered baseline `6c39700` was committed on 17/08/26 after the recorded test window and includes delivery, branding, and deployment-preparation changes. This report does not claim that a complete 34-case regression run was performed against `6c39700`.
|
||||
|
||||
## 6. Related indirect evidence
|
||||
|
||||
The Correction Register records 28 defect corrections found and fixed during development.
|
||||
|
||||
## 7. QA execution declaration
|
||||
|
||||
By signing the Prepared by block below, the QA/Tester confirms that they executed all 34 test cases on the internal testing server during 10/08/26–14/08/26, compared the observed behavior with each specified output, recorded all 34 cases as passed, and reported no unresolved test anomaly. The declaration applies to the application state used during that test window and does not represent Git commit `6c39700` as the exact tested build.
|
||||
|
||||
## 8. Recommendation
|
||||
|
||||
Future regression testing should record per-case execution dates and detailed observations at the time of execution, alongside the tester and environment already identified here.
|
||||
|
||||
## 9. Approval
|
||||
|
||||
### Prepared by
|
||||
|
||||
Name: Parin Ngamkham
|
||||
Role: QA / Tester
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
|
||||
### Reviewed by
|
||||
|
||||
Name: Apirach Supattaratpateep
|
||||
Role: Project Manager
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
|
||||
### Reviewed and authorized by
|
||||
|
||||
Name: Seri Viriyasakultorn
|
||||
Project roles: Project Sponsor / Customer Representative / Authorized Approver
|
||||
Position: Managing Director
|
||||
Company: B.R.N. Enterprise Co., Ltd.
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
+57
@@ -0,0 +1,57 @@
|
||||
# Software
|
||||
|
||||
| Document field | Value |
|
||||
|---|---|
|
||||
| Document | Software |
|
||||
| Project | BRN WMS |
|
||||
| Project code | 200-WMS-26-001-00 |
|
||||
| Title | Reference Record of Delivered Software |
|
||||
| Project period | 05/01/26–24/08/26 |
|
||||
| Release | 17/08/26 V1.0 |
|
||||
| Standard | ISO/IEC 29110 Basic Profile |
|
||||
| System Analyst | Noppong Chareunsook |
|
||||
| Developer | Thanakorn Sathitwitayakul |
|
||||
| Project Manager | Apirach Supattaratpateep |
|
||||
| Status | Final — the working software itself is the deliverable; this record identifies and locates it |
|
||||
|
||||
## 1. Purpose
|
||||
|
||||
Work product 17 is the running software itself, not a narrative document. The example reference package left this folder empty for the same reason. This record identifies the delivered software baseline and points to where its full inventory, architecture, and repository location are controlled, so this folder is not left without any traceable content.
|
||||
|
||||
## 2. Delivered software identification
|
||||
|
||||
| Field | Value |
|
||||
|---|---|
|
||||
| Product | BRN WMS (browser-based warehouse management application) |
|
||||
| Build baseline | Git HEAD `6c39700` — Add interactive script to generate root .env for docker-compose (17/08/26) |
|
||||
| Repository | See Project Repository (work product 9), `origin` — `git@188.166.228.62:nok/wms-app.git` |
|
||||
| Backup | See Project Repository (Backup) (work product 10) |
|
||||
| Component inventory | See Software Components (work product 14) |
|
||||
| Architecture | See Software Design (work product 12) |
|
||||
| Configuration-item baseline | See Software Configuration (work product 8) |
|
||||
| Deployment methods | Manual LAMP install via `setup.php`, or `docker compose up -d --build` using the stack in `docker/` |
|
||||
|
||||
## 3. Approval
|
||||
|
||||
### Prepared by
|
||||
|
||||
Name: Thanakorn Sathitwitayakul
|
||||
Role: Developer
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
|
||||
### Reviewed by
|
||||
|
||||
Name: Apirach Supattaratpateep
|
||||
Role: Project Manager
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
|
||||
### Reviewed and authorized by
|
||||
|
||||
Name: Seri Viriyasakultorn
|
||||
Project roles: Project Sponsor / Customer Representative / Authorized Approver
|
||||
Position: Managing Director
|
||||
Company: B.R.N. Enterprise Co., Ltd.
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
+118
@@ -0,0 +1,118 @@
|
||||
# Software User Documentation
|
||||
|
||||
| Document field | Value |
|
||||
|---|---|
|
||||
| Document | Software User Documentation |
|
||||
| Project | BRN WMS |
|
||||
| Project code | 200-WMS-26-001-00 |
|
||||
| Title | User Guide Document |
|
||||
| Project period | 05/01/26–24/08/26 |
|
||||
| Release | 17/08/26 V1.0 |
|
||||
| Standard | ISO/IEC 29110 Basic Profile |
|
||||
| Organizer | Apirach Supattaratpateep (Project Manager), Noppong Chareunsook (System Analyst), Thanakorn Sathitwitayakul (Developer) |
|
||||
| Status | Final — reflects the implemented application at project baseline |
|
||||
|
||||
## Objective
|
||||
|
||||
Provide operational users a guide to accessing and using BRN WMS: onboarding, warehouse/inventory operations, sales, purchasing, finance/accounting, reporting, and notifications.
|
||||
|
||||
## 1. Accessing the system
|
||||
|
||||
- Users access BRN WMS through a current standards-based browser (Chrome, Edge, or Firefox) at the URL configured for the deployment.
|
||||
- The interface is responsive and usable on desktop and warehouse-floor (tablet/mobile) devices.
|
||||
- New company owners register and complete onboarding; users invited by an Owner/Admin complete invited-user onboarding to join the correct company.
|
||||
- Forgot-password recovery is available from the login screen.
|
||||
|
||||
## 2. Roles and access
|
||||
|
||||
BRN WMS enforces four roles: **Owner**, **Admin**, **Staff**, and **Viewer**. Menu items and actions shown to a user reflect their role and any additional application-access restrictions set by an Admin/Owner. A Viewer can see authorized screens and reports but cannot create or edit transactions.
|
||||
|
||||
## 3. Dashboard
|
||||
|
||||
The dashboard (`app/dashboard/`) summarizes stock status, low-stock items, and recent operational activity. An accounting-focused dashboard (`app/ac_dashboard/`) summarizes financial position. Dashboard figures refresh from scheduled aggregate jobs, so very recent transactions may briefly lag behind live data.
|
||||
|
||||
## 4. Master data setup
|
||||
|
||||
Before recording transactions, an Owner/Admin sets up:
|
||||
|
||||
- **Warehouses, storage areas, and bins** (`app/inventory/`) — either a simple single-level warehouse model or the full warehouse/storage/bin hierarchy.
|
||||
- **Product categories and products** (`app/inventory/`).
|
||||
- **Contacts and contact types** (`app/contact/`) — customers and suppliers.
|
||||
- **Company settings, SMTP, and application access** (`app/setting/`).
|
||||
|
||||
## 5. Inventory and warehouse operations
|
||||
|
||||
Under the Inventory Control System area (`app/ics/`):
|
||||
|
||||
- **Stock-in**: record a receipt against a product, quantity, warehouse location, and source document, including lot/serial/expiry where applicable.
|
||||
- **Stock-out**: issue stock against an authorized document; the system validates available balance before allowing the issue.
|
||||
- **Stock transfer**: move stock between authorized locations as one linked transaction.
|
||||
- **Barcode labels**: generate SKU and location barcode labels and use a barcode scanner (or manual entry) on supported screens.
|
||||
- **Stock reports**: stock overview, movement history, capacity/occupancy, low-stock, expired-stock, and product-lot views are available under Reports (`app/reports/`).
|
||||
|
||||
## 6. Sales workflow
|
||||
|
||||
Under Sales/Revenue (`app/order/`, `app/revenue/`):
|
||||
|
||||
1. Create a **quotation** for a customer.
|
||||
2. Convert an accepted quotation to a **sales order**.
|
||||
3. Issue an **invoice** against the order.
|
||||
4. Process a **return** or **credit note** where applicable.
|
||||
|
||||
Each step follows the document's permitted status transitions; an invalid transition is rejected.
|
||||
|
||||
## 7. Purchasing workflow
|
||||
|
||||
Under Purchasing (`app/po/`):
|
||||
|
||||
1. Raise a **purchase request**.
|
||||
2. Convert an approved request to a **purchase order**.
|
||||
3. Record the **purchase invoice** on receipt of supplier goods/services.
|
||||
4. Process a **supplier return** where applicable.
|
||||
|
||||
## 8. Finance and accounting
|
||||
|
||||
Under Finance (`app/finance/`) and Accounting (`app/accounting/`, `app/journal/`):
|
||||
|
||||
- **Receipt billing and receipts** record incoming customer payments against invoices.
|
||||
- **Payment billing and payments** record outgoing supplier payments against purchase invoices.
|
||||
- **Chart of accounts, departments, and account formulas** are maintained by an Owner/Admin.
|
||||
- **Journals and general-ledger entries** are posted from source documents or manually where permitted; entries must balance.
|
||||
- **Financial reports** — trial balance, profit-and-loss, balance sheet, VAT, journal, and GL-movement — are available under Reports.
|
||||
|
||||
## 9. Document numbering and status
|
||||
|
||||
Every controlled business document (order, invoice, receipt, payment, journal entry, etc.) receives a system-generated document number following the configured sequence, and moves through a defined lifecycle of statuses. Users cannot force an invalid status transition.
|
||||
|
||||
## 10. Notifications
|
||||
|
||||
Authorized users receive real-time notifications (via the Node.js notification service) for relevant status transitions — for example, a new order, an approval request, or a low-stock alert — scoped to their authorized company/role context.
|
||||
|
||||
## 11. Reports
|
||||
|
||||
The Reports area (`app/reports/`) provides authorized users filter, view, print, and export access to the operational and financial reports listed in Sections 5 and 8, subject to their company and role scope.
|
||||
|
||||
## Approval
|
||||
|
||||
### Prepared by
|
||||
|
||||
Name: Thanakorn Sathitwitayakul
|
||||
Role: Developer
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
|
||||
### Reviewed by
|
||||
|
||||
Name: Apirach Supattaratpateep
|
||||
Role: Project Manager
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
|
||||
### Reviewed and authorized by
|
||||
|
||||
Name: Seri Viriyasakultorn
|
||||
Project roles: Project Sponsor / Customer Representative / Authorized Approver
|
||||
Position: Managing Director
|
||||
Company: B.R.N. Enterprise Co., Ltd.
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
+115
@@ -0,0 +1,115 @@
|
||||
# Product Operation Guide
|
||||
|
||||
| Document field | Value |
|
||||
|---|---|
|
||||
| Document | Product Operation Guide |
|
||||
| Project | BRN WMS |
|
||||
| Project code | 200-WMS-26-001-00 |
|
||||
| Title | Operating Manual Document for System Administrators |
|
||||
| Project period | 05/01/26–24/08/26 |
|
||||
| Release | 17/08/26 V1.0 |
|
||||
| Closure status date | 24/08/26 |
|
||||
| Standard | ISO/IEC 29110 Basic Profile |
|
||||
| Organizer | Apirach Supattaratpateep (Project Manager), Noppong Chareunsook (System Analyst), Thanakorn Sathitwitayakul (Developer) |
|
||||
| Status | Final — reflects the implemented deployment mechanisms at project baseline |
|
||||
|
||||
## Objective
|
||||
|
||||
Guide a System Administrator through installing, configuring, operating, monitoring, backing up, and recovering BRN WMS, so operation is consistent, correct, and quickly recoverable.
|
||||
|
||||
## 1. Deployment options
|
||||
|
||||
BRN WMS supports two deployment paths, evidenced in the repository:
|
||||
|
||||
| Path | Mechanism | Reference |
|
||||
|---|---|---|
|
||||
| Manual installation | One-shot database setup script | `setup.php` |
|
||||
| Containerized deployment | Docker Compose stack: php-apache, mariadb, node/pm2 | `docker-compose.yml`, `docker/` |
|
||||
|
||||
## 2. Containerized installation (recommended)
|
||||
|
||||
1. Copy `.env.example` to `.env`, or run the interactive generator: `docker/init-env.sh` (prompts for DB password, public host, `EMIT_SECRET`, and SMTP credentials; auto-generates secrets left blank).
|
||||
2. Run `docker compose up -d --build`. This brings up:
|
||||
- `php-apache` — the PHP 8+ web application (`docker/php/`), with `app/config.php` generated from `.env` at container start by `docker/php/entrypoint.sh` — never baked into the image or committed.
|
||||
- `mariadb` — the database service, initialized from `docker/mariadb/init-wms2.sql` and `setup.php`.
|
||||
- `node` — the Node.js real-time/scheduler service (`docker/node/`), managed by pm2 (`nodejs/ecosystem.config.js`).
|
||||
3. Confirm the application is reachable at the configured public host and that the Node.js service is running (Section 5).
|
||||
|
||||
## 3. Manual installation
|
||||
|
||||
1. Provision a PHP 8+ / MariaDB / Node.js environment.
|
||||
2. Configure `app/config.php` (database credentials for the `wms` and `wms2` databases, `NODE_PUBLIC_URL`, `NODE_EMIT_URL`, `NODE_EMIT_SECRET`, SMTP).
|
||||
3. Run `setup.php` once to create the database schema (see Software Requirements Specification, SR08, for the full table list).
|
||||
4. Start the Node.js services (`nodejs/server.js`, `nodejs/scheduler.js`), for example under pm2 using `nodejs/ecosystem.config.js`.
|
||||
|
||||
## 4. Configuration
|
||||
|
||||
| Item | Location | Notes |
|
||||
|---|---|---|
|
||||
| Application configuration | `app/config.php` | Generated at deploy time; never committed |
|
||||
| Environment secrets | `.env` (Docker) or shell/deployment environment (manual) | Excluded via `.gitignore` |
|
||||
| Company-level settings | In-application (`app/setting/`) | Per-company profile, SMTP, system settings |
|
||||
| Time zone | `$time_zone` in `app/config.php` | Fixed to `Asia/Bangkok` |
|
||||
|
||||
## 5. Monitoring
|
||||
|
||||
- **Web application**: confirm the PHP application responds and users can authenticate.
|
||||
- **Database**: confirm both `wms` and `wms2` databases are reachable.
|
||||
- **Node.js service**: confirm `server.js` (Socket.IO) and `scheduler.js` (scheduled jobs) are running under pm2; review `nodejs/logs/` (`socket.log`, `scheduler.log`, `scheduler-error.log`) for errors.
|
||||
- **Scheduled jobs**: confirm stock/GL aggregate maintenance and low-stock/overdue-invoice alert jobs are completing on schedule without duplication.
|
||||
|
||||
The production monitoring control performs an automated health check every five minutes. Two consecutive failures trigger an email to the System Administrator. pm2 automatic restart is the first recovery response. If service is not restored within 30 minutes, the System Administrator escalates to the Project Manager; the Project Sponsor is notified when an outage exceeds two hours or materially affects business operations. The System Administrator reviews the affected process state and logs, restores service, confirms application and scheduled-job health, and records the incident through the applicable operational support channel.
|
||||
|
||||
## 6. Backup and recovery
|
||||
|
||||
| Item | Mechanism | Status |
|
||||
|---|---|---|
|
||||
| Source code and configuration templates | Git, two remotes (`origin`, `backup`) | See Project Repository / Project Repository (Backup), work products 9–10 |
|
||||
| Database (`wms`, `wms2`) | Automated database export at 02:00 ICT daily to company-controlled cloud storage | Daily backups retained 30 days; month-end backups retained 12 months; access restricted to the System Administrator and authorized management |
|
||||
| SDLC documents | External PDF export package | See Project Repository (Backup), Section 3 |
|
||||
|
||||
### 6.1 Database restoration procedure
|
||||
|
||||
1. The System Administrator selects the required backup from company-controlled cloud storage and confirms its date and integrity.
|
||||
2. The backup is restored into a non-production MariaDB environment before any production recovery is attempted.
|
||||
3. Connectivity to `wms` and `wms2` and representative master-data and transaction records are verified.
|
||||
4. For a production recovery, the System Administrator records the recovery point, pauses affected services, restores the verified backup, restarts the application and Node.js services, and performs the health checks in Section 5.
|
||||
5. Failed or missing scheduled backups are investigated and rerun by the System Administrator.
|
||||
|
||||
A sample backup dated 22/08/26 was restored successfully to a non-production environment on 23/08/26. Database accessibility and representative records were verified, and the Project Manager reviewed completion during closure.
|
||||
|
||||
## 7. Operational-control closure
|
||||
|
||||
| ID | Control | Owner | Status | Closure evidence |
|
||||
|---|---|---|---|---|
|
||||
| OP-001 | Automated database backup and restoration control for `wms` and `wms2`. | System Administrator | **Closed 23/08/26** | Section 6 records the 02:00 ICT schedule, controlled cloud destination, retention, operator, recovery steps, and successful non-production restoration test. |
|
||||
| OP-002 | Monitoring and failure alerting beyond local log review. | System Administrator | **Closed 23/08/26** | Section 5 records the five-minute health check, two-failure email trigger, recipients, escalation time, and recovery response. |
|
||||
|
||||
## 8. User and access management
|
||||
|
||||
An Owner/Admin manages users, roles (Owner/Admin/Staff/Viewer), and application-access flags from Settings (`app/setting/`). Role changes take effect on the user's next authenticated action; concurrent-session policy blocks a second simultaneous login on the same account.
|
||||
|
||||
## Approval
|
||||
|
||||
### Prepared by
|
||||
|
||||
Name: Thanakorn Sathitwitayakul
|
||||
Role: Developer
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
|
||||
### Reviewed by
|
||||
|
||||
Name: Apirach Supattaratpateep
|
||||
Role: Project Manager
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
|
||||
### Reviewed and authorized by
|
||||
|
||||
Name: Seri Viriyasakultorn
|
||||
Project roles: Project Sponsor / Customer Representative / Authorized Approver
|
||||
Position: Managing Director
|
||||
Company: B.R.N. Enterprise Co., Ltd.
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
+79
@@ -0,0 +1,79 @@
|
||||
# Maintenance Documentation
|
||||
|
||||
| Document field | Value |
|
||||
|---|---|
|
||||
| Document | Maintenance Documentation |
|
||||
| Project | BRN WMS |
|
||||
| Project code | 200-WMS-26-001-00 |
|
||||
| Title | System Maintenance Manual Document |
|
||||
| Project period | 05/01/26–24/08/26 |
|
||||
| Release | 17/08/26 V1.0 |
|
||||
| Standard | ISO/IEC 29110 Basic Profile |
|
||||
| Organizer | Apirach Supattaratpateep (Project Manager), Noppong Chareunsook (System Analyst), Thanakorn Sathitwitayakul (Developer) |
|
||||
| Status | Final — reflects the implemented architecture at project baseline |
|
||||
|
||||
Note: the example reference package filed the same content twice under Product Operation Guide and Maintenance Documentation. BRN WMS keeps them distinct — the Product Operation Guide (work product 19) is for day-to-day administration; this document is for developers maintaining and extending the codebase.
|
||||
|
||||
## Objective
|
||||
|
||||
Give a developer maintaining BRN WMS enough architectural context, component ownership, and known-issue awareness to make a safe, correctly-scoped change.
|
||||
|
||||
## 1. Architecture summary
|
||||
|
||||
See Software Design (work product 12) for the full component/deployment diagrams. In summary: PHP presentation + business-logic manager classes → two MariaDB databases (`wms` identity/company, `wms2` WMS/accounting), plus a Node.js real-time/scheduler tier reached only through a secret-protected internal endpoint.
|
||||
|
||||
## 2. Component ownership
|
||||
|
||||
See Software Components (work product 14) for the full inventory. When changing behavior, locate the owning manager class first (e.g., stock behavior → `StockManager`/`StockSourceManager`/`StockTablesTrait`; posting/GL behavior → `PostingManager`; document numbering → `DocumentNumberManager`) rather than editing page-level code directly, consistent with NFR-007 (maintainability).
|
||||
|
||||
## 3. Database change procedure
|
||||
|
||||
- The `schema_migrations` table exists in the WMS database, indicating an intended migration-tracking mechanism; confirm the current migration convention before hand-editing schema in a shared environment.
|
||||
- `setup.php` is the authoritative one-shot schema definition for a fresh environment; any schema change should be reflected there so a new environment matches production.
|
||||
- Prefer additive, backward-compatible schema changes; coordinate destructive schema changes through the Change Report.
|
||||
|
||||
## 4. Configuration points
|
||||
|
||||
| Area | File(s) | Notes |
|
||||
|---|---|---|
|
||||
| Database/app config | `app/config.php` (generated) | Never hand-edit the committed template with live secrets |
|
||||
| Docker build | `docker/php/config.php.template`, `docker/php/entrypoint.sh` | Change here to affect all container deployments |
|
||||
| Node.js services | `nodejs/server.js`, `nodejs/scheduler.js`, `nodejs/ecosystem.config.js` | Scheduled-job timing and notification wiring |
|
||||
| CORS/notification security | `app/config.php` (`NODE_EMIT_SECRET`), Node.js CORS whitelist | See Correction Register entries on CORS/notify guarding |
|
||||
|
||||
## 5. Known issues and defect history
|
||||
|
||||
The Correction Register (work product 4) is the authoritative known-issue history: 28 recorded corrections, all verified against their linked test cases and formally closed through the Accepted decision. Before changing an area, check the Correction Register so a verified fix is not accidentally reverted. Areas with the most correction activity: authentication/session/login (CoR-005, CoR-009, CoR-016, CoR-017, CoR-026), onboarding (CoR-007, CoR-008, CoR-013, CoR-018), and master-data/document-lifecycle review (CoR-019, CoR-020).
|
||||
|
||||
## 6. Release procedure
|
||||
|
||||
1. Implement and locally verify the change.
|
||||
2. If the change affects scope, schedule, or an already-delivered baseline item, raise a Change Report entry (work product 6).
|
||||
3. If the change corrects a defect, add a Correction Register entry (work product 4).
|
||||
4. Update the Software Components / Software Configuration record if a component's status or version changes.
|
||||
5. Commit to the repository; the `backup` remote should be kept in sync per Project Repository (Backup), work product 10.
|
||||
|
||||
## 7. Approval
|
||||
|
||||
### Prepared by
|
||||
|
||||
Name: Thanakorn Sathitwitayakul
|
||||
Role: Developer
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
|
||||
### Reviewed by
|
||||
|
||||
Name: Apirach Supattaratpateep
|
||||
Role: Project Manager
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
|
||||
### Reviewed and authorized by
|
||||
|
||||
Name: Seri Viriyasakultorn
|
||||
Project roles: Project Sponsor / Customer Representative / Authorized Approver
|
||||
Position: Managing Director
|
||||
Company: B.R.N. Enterprise Co., Ltd.
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
+122
@@ -0,0 +1,122 @@
|
||||
# Verification Results
|
||||
|
||||
| Document field | Value |
|
||||
|---|---|
|
||||
| Document | Verification Results |
|
||||
| Project | BRN WMS |
|
||||
| Project code | 200-WMS-26-001-00 |
|
||||
| Title | Record of Verification Against Standard Requirements |
|
||||
| Project period | 05/01/26–24/08/26 |
|
||||
| Release | 17/08/26 V1.0 |
|
||||
| Standard | ISO/IEC 29110 Basic Profile |
|
||||
| Review round | Round 2 completed 17/08/26 — Round 2A document-control verification and Round 2B technical work-product verification |
|
||||
| Organizer | Apirach Supattaratpateep (Project Manager), Noppong Chareunsook (System Analyst), Thanakorn Sathitwitayakul (Developer) |
|
||||
| Round 2A verifier | Yaowalak Bangchomphoo — Document Control, independent of the document preparer |
|
||||
| Round 2B technical reviewers | Noppong Chareunsook — System Analyst; Parin Ngamkham — QA / Tester; Apirach Supattaratpateep — Project Manager |
|
||||
| Status | Final — Round 2 document-control and technical verification complete |
|
||||
|
||||
## Objective
|
||||
|
||||
Confirm the correctness and completeness of the SDLC work products against ISO/IEC 29110 Basic Profile document-control and technical work-product expectations before they are treated as ready for Project Sponsor review and authorization.
|
||||
|
||||
## 1. Deliverables under review
|
||||
|
||||
PM work products 1–10 and SI work products 11–20 (this and work product 22 are excluded, being the verification/validation records themselves).
|
||||
|
||||
## 2. Round 2A — Document-control verification
|
||||
|
||||
Each row checks the document-control header, content, project coverage, and approval block.
|
||||
|
||||
| ID | Work product | Header complete | Purpose met | Evidence basis disclosed | Approval block present | Result |
|
||||
|---|---|---|---|---|---|---|
|
||||
| VR-01 | Statement of Work | Yes | Yes | N/A | Yes | Passed |
|
||||
| VR-02 | Project Plan (Work Schedule, SPP, Customer Requirements) | Yes | Yes | Yes, where applicable | Yes | Passed |
|
||||
| VR-03 | Progress Status Records (13) | Yes | Yes | Yes | Yes | Passed |
|
||||
| VR-04 | Correction Register | Yes | Yes | Yes | Yes | Passed |
|
||||
| VR-05 | Acceptance Report | Yes | Yes | Yes | Yes | Passed |
|
||||
| VR-06 | Change Report (CH-001–CH-003) | Yes | Yes | Yes | Yes | Passed |
|
||||
| VR-07 | Meeting Record (MTG-001–MTG-004) | Yes | Yes | Yes — each record discloses its evidence basis and marks unrecorded fields | Yes | Passed |
|
||||
| VR-08 | Software Configuration | Yes | Yes | Yes | Yes | Passed |
|
||||
| VR-09 | Project Repository | Yes | Yes | Yes | Yes | Passed |
|
||||
| VR-10 | Project Repository (Backup) | Yes | Yes | Yes — backup sync and restoration verified manually by the Developer | Yes | Passed |
|
||||
| VR-11 | Software Requirements Specification | Yes | Yes | Yes — scaling note explains granularity choice | Yes | Passed |
|
||||
| VR-12 | Software Design | Yes | Yes | Yes | Yes | Passed |
|
||||
| VR-13 | Traceability Record | Yes | Yes | Yes | Yes | Passed |
|
||||
| VR-14 | Software Components | Yes | Yes | Yes | Yes | Passed |
|
||||
| VR-15 | Test Cases and Test Procedures | Yes | Yes | Yes — all 34 cases executed and passed 10/08/26–14/08/26 | Yes | Passed |
|
||||
| VR-16 | Test Report | Yes | Yes | Yes — records 34 of 34 executed and passed 10/08/26–14/08/26 | Yes | Passed |
|
||||
| VR-17 | Software | Yes | Yes | Yes | Yes | Passed |
|
||||
| VR-18 | Software User Documentation | Yes | Yes | N/A (forward-facing usage guide) | Yes | Passed |
|
||||
| VR-19 | Product Operation Guide | Yes | Yes | Yes | Yes | Passed |
|
||||
| VR-20 | Maintenance Documentation | Yes | Yes | Yes | Yes | Passed |
|
||||
|
||||
## 3. Round 2B — Technical work-product verification
|
||||
|
||||
| ID | Verification performed | Responsible reviewer | Result |
|
||||
|---|---|---|---|
|
||||
| TV-01 | Customer Requirements are complete, internally consistent, feasible within the agreed project scope, and expressed in a testable form. | Noppong Chareunsook — System Analyst | Passed |
|
||||
| TV-02 | All 34 Customer Requirements resolve to valid SRS and Software Design references in the Traceability Record. | Noppong Chareunsook — System Analyst | Passed |
|
||||
| TV-03 | Referenced software components and design units exist in delivered baseline `6c39700` and agree with the controlled Software Design and Software Components records. | Noppong Chareunsook — System Analyst; Parin Ngamkham — QA / Tester | Passed |
|
||||
| TV-04 | All 34 test cases map to controlled requirements and contain defined inputs and expected results. | Parin Ngamkham — QA / Tester | Passed |
|
||||
| TV-05 | Test totals reconcile across work products 13, 15, and 16: 34 defined, 34 executed, 34 passed, and no unresolved test anomaly reported. | Parin Ngamkham — QA / Tester | Passed |
|
||||
| TV-06 | All 28 Correction Register entries resolve to valid implementation commits and applicable verification test-case references. | Parin Ngamkham — QA / Tester; Apirach Supattaratpateep — Project Manager | Passed |
|
||||
| TV-07 | Traceability is complete from each approved requirement through SRS, design, test case, and recorded result; the stated coverage totals reconcile. | Noppong Chareunsook — System Analyst; Parin Ngamkham — QA / Tester | Passed |
|
||||
| TV-08 | Software User Documentation, Product Operation Guide, and Maintenance Documentation agree with the delivered software scope, architecture, and controlled deployment approach. | Apirach Supattaratpateep — Project Manager; Noppong Chareunsook — System Analyst | Passed |
|
||||
| TV-09 | No unresolved technical verification finding prevents the recorded acceptance decision. | Apirach Supattaratpateep — Project Manager | Passed |
|
||||
|
||||
## 4. Risk and constraint note
|
||||
|
||||
1. Round 1 was a self-review by the document preparer (the Developer). Round 2A was performed on 17/08/26 by Yaowalak Bangchomphoo, Document Control, who is independent of the Developer and whose assigned role covers identifiers, versions, approvals, distribution, repository content, and evidence — the attributes checked in Section 2.
|
||||
2. Round 2B technical verification was performed by the assigned System Analyst, QA/Tester, and Project Manager. Noppong Chareunsook reviewed requirements, design, components, traceability, and technical documentation; Parin Ngamkham reviewed tests, correction references, components, and traceability; Apirach Supattaratpateep reviewed correction disposition, documentation agreement, and overall technical disposition.
|
||||
3. All 34 functional/non-functional test cases and all 12 UAT/validation scenarios were executed over 10/08/26–14/08/26 and passed.
|
||||
4. The test and validation baseline/evidence limitations are disclosed in work products 15, 16, and 22. Round 2B verifies the controlled records and their internal consistency; it does not create per-case observations or represent delivered baseline `6c39700` as the exact tested or validated build.
|
||||
5. Per-item reviewer notes were not retained beyond the pass/fail results recorded above. Future reviews should retain those notes alongside each result so the basis of each verification decision is auditable and not only its outcome.
|
||||
|
||||
## 5. Recommendation
|
||||
|
||||
Retain per-item reviewer notes alongside the recorded results in future projects to strengthen the audit trail.
|
||||
|
||||
## 6. Reviewer declarations
|
||||
|
||||
By signing the applicable blocks below, the assigned reviewers confirm that they performed the Round 2 checks attributed to their roles, found the referenced work products consistent with the controlled project evidence, recorded the listed checks as Passed, and identified no unresolved verification finding affecting acceptance.
|
||||
|
||||
The Document Control signature confirms Round 2A. The System Analyst, QA/Tester, and Project Manager signatures confirm their respective Round 2B technical checks. The Project Sponsor signature authorizes the recorded verification disposition.
|
||||
|
||||
## 7. Approval
|
||||
|
||||
### Round 2A verified by
|
||||
|
||||
Name: Yaowalak Bangchomphoo
|
||||
Role: Document Control
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
|
||||
### Round 2B requirements, design, components, traceability, and technical documentation verified by
|
||||
|
||||
Name: Noppong Chareunsook
|
||||
Role: System Analyst / Technical Reviewer
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
|
||||
### Round 2B tests, corrections, components, and traceability verified by
|
||||
|
||||
Name: Parin Ngamkham
|
||||
Role: QA / Tester
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
|
||||
### Round 2B reviewed and dispositioned by
|
||||
|
||||
Name: Apirach Supattaratpateep
|
||||
Role: Project Manager
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
|
||||
### Reviewed and authorized by
|
||||
|
||||
Name: Seri Viriyasakultorn
|
||||
Project roles: Project Sponsor / Customer Representative / Authorized Approver
|
||||
Position: Managing Director
|
||||
Company: B.R.N. Enterprise Co., Ltd.
|
||||
Signature: ______________________________________________
|
||||
Date: ___________________________________________________
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user