כל הפרויקטים

ARCS Dental — מערכת מלאי ורכש

UI ספירה בטאבלט + Flask API + אוטומציית עגלת Henry Schein ב-Playwright — מקצה לקצה עם מסמכי העברה.

המטרה

הצוות ספר מלאי ידנית והקליד מחדש הזמנות ל-Henry Schein — טעויות וזמן מבוזבז. המטרה: UI ספירה בטאבלט, backend שמכיר par levels, ואוטומציה שדוחפת SKUs לעגלת הספק — מקצה לקצה עם מסמכי העברה.

הפתרון

מערכת תלת-חלקית ברפו אחד: backend ב-Flask + MongoDB Atlas (CRUD לפריטים, endpoint ספירה, audit, ניהול משתמשים), UI ספירה ב-Vue 3 + Vite לטאבלט (פריט אחד בכל פעם), ואוטומציה ב-Python (Playwright + API של Henry Schein שהוסגר) שמעשירה פריטים ודוחפת shortfalls לעגלה.

עיקרי הדברים

  • זרימה מקצה לקצה מספירה לעגלת ספק
  • UI טאבלט-first מסלק חיכוך של spreadsheet
  • אוטומציית עגלה ב-Henry Schein שהוסגרה מהדפדפן
  • העברה מתועדת עם גבול Phase 1 / Phase 2

האתגר

צוות בטאבלט לא יכול להתמודד עם רשימות ארוכות או טפסים מורכבים.

UI ב-Vue 3 מציג פריט בכל פעם — תמונה, שם, pack size, input — ומקדם אוטומטית.

Henry Schein בלי API ציבורי להזמנה.

לכידת הקריאות מהדפדפן והרצה דרך api_client.py עם Playwright-bootstrapped session.

עדכוני data/items.json + re-imports יצרו כפילויות.

import_items.py upsert לפי SKU (idempotent); פריטים שנמחקו → active:false (היסטוריה נשמרת).

Phase 1 כבר בפרודקשן — אסור לשבור בזמן ש-Phase 2 נופלת.

src/ ללא שינוי; backend/ ו-frontend/ נופלים לצידה עם README_PHASE2.md שמתעד את הגבול ומתור את Phase 2b.

מה נמסר

  • backend/ Flask API + Mongo + ניהול משתמשים + audit
  • frontend/ Vue 3 + Vite UI ספירה לטאבלט
  • src/ אוטומציית Playwright + API ל-Henry Schein
  • data/items.json + import_items.py upsert
  • PROJECT.md + README_PHASE2.md
  • .env.example, requirements.txt, frontend package.json
  • Run logs תחת logs/

תוצאות

End-to-end

זרימה

Documented

העברה

12

שדות בסכמת פריט

מה זה לימד אותי

  • 'פריט בכל פעם' מנצח spreadsheets בטאבלט
  • שמירה על Phase 1 ללא שינוי בזמן ש-Phase 2 נופלת לצידה הופכת את ההעברה ל-zero-risk
  • Upsert-by-SKU + soft-delete = pipeline re-runnable בלי איבוד היסטוריה