Bops
AI 봇 팀이 업무 운영을 담당, 메일·파이프라인·청구·보고서 관리, 각각 컴퓨터·이메일·전화번호 보유, 모든 정보를 기억
저장소 정보는 아직 수집하지 않았습니다.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Live demo (v2, cartoon revamp): https://alfredang.github.io/kanban11/v2/ Original v1: https://alfredang.github.io/kanban11/
A single-file Kanban board demo for an IT PMO, built with vanilla HTML/CSS/JS. All markup, styles and script live in index.html.
Tasks are seed/demo data (IDs UOB-ITPM-0001–0008; due dates are computed relative to today). The notification email is the placeholder [email protected].
Open index.html in a browser (Start-Process index.html on Windows). No server or build needed.
Set your notification address in one place only: FORMSUBMIT_ENDPOINT in the config section at the top of the <script>. FormSubmit requires a one-time email activation per address (see the HTML comment above the script); until activated, new-task notifications are not delivered (the board still works, a warning toast is shown).
GitHub Actions (.github/workflows/pages.yml) deploys the repo root to GitHub Pages on every push to main. A check job runs node --check on the extracted script block first; deploy only runs if it passes.
localStorage, cookies, etc.); a refresh resets to seed data.!important; colours/spacing come from :root custom properties.escapeHtml(); board DOM is built only in renderBoard()/renderCard(); events are delegated on #board.There is no test suite. Syntax check of the script block:
sed -n '/^<script>/,/^<\/script>/p' index.html | sed '1d;$d' > "$TEMP/k.js" && node --check "$TEMP/k.js"
v2/)prefers-reduced-motion: no-preference.#board, #visual, #timeline): Board (drag-and-drop Kanban), Visual (KPIs, status donut, priority bars, per-project stacked bars, overdue rescue list), Timeline (Gantt-style start-to-due bars with a Today marker). The filters apply to all three.script-src 'self', style-src 'self', connect-src https://formsubmit.co, form-action 'none', base-uri 'none', object-src 'none'), enabled by splitting the app into index.html / styles.css / app.js (no inline code).innerHTML: the DOM is built with createElement/textContent, so user text is never parsed as HTML.credentials: omit, redirect: error, no-referrer, frame-busting, and inert background while the modal is open.v2/ for innerHTML, eval, !important, storage APIs and inline code.frame-ancestors/HSTS cannot be set (frame-busting JS is used instead).