Open Net Worth
Open Net Worth is an open-source personal AI wealth assistant you run yourself: one ledger for your whole financial life, worked by an AI agent you control.
翻訳待ち
No updates detected yet. GitHub releases will appear here.
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗אפליקציית ווב לניהול הכספים של הבית: סקירה ותחזית חודשית, מעקב חודשי מול תקציב, התחייבויות קבועות, תובנות, פנסיה, שאלות פתוחות ופירוט כל התנועות.
כתובות (אותה אפליקציה, כניסה עם חשבון Google מורשה בלבד):
docs/ האפליקציה שמתפרסמת ב-Firebase Hosting וב-GitHub Pages (בלי שום נתון אישי)
index.html הדשבורד
app.js התחברות עם Google, טעינה ושמירה מול Firestore
firebase-config.js הגדרות הפרויקט ב-Firebase (ציבוריות מטבען)
files.js לשונית ״מסמכים״: העלאה, בדיקת כפילות וגרסאות, ומיזוג של השינויים בלבד
reader.js קריאת PDF: טקסט מסודר בשורות, ו-OCR לסריקות. עצמאי, אפשר להעתיק לפרויקט אחר
scripts/build.py הופך קבצי ייצוא לקובץ נתונים אחד, data.json
firestore.rules מי מורשה לקרוא ולכתוב את הנתונים
finance/private/ לא נכנס ל-git: קבצי ייצוא, config.json, data.json
הנתונים לא נמצאים בריפו. הם שמורים ב-Firestore, במסמכים finance/data (התנועות) ו-finance/state (תקציב ותשובות). לפי firestore.rules, רק הבעלים ומי שהוא שיתף איתם יכולים לקרוא או לכתוב אותם. הריפו ציבורי, ולכן אין להכניס אליו את finance/private/. התיקייה מוחרגת ב-.gitignore.
finance/private/raw/. אין צורך למחוק קבצים ישנים: כפילויות מזוהות ונספרות פעם אחת.
.xls).xlsx).csv)python scripts/build.py
(בפעם הראשונה: pip install xlrd openpyxl pdfplumber)finance/private/data.json. ב-Chrome וב-Edge האתר זוכר את הקובץ, ומאז מספיק ללחוץ ״רענון״: אם הקובץ השתנה, הוא עולה אוטומטית. בדפדפנים אחרים בוחרים את הקובץ מחדש בכל פעם.finance/private/config.json)categories: קטגוריות, הסוג של כל אחת ותקציב מומלץ. income / expense נספרות במאזן החודשי. *_oneoff (חד-פעמי) ו-pass (כסף שרק עובר דרככם) מוצגות בנפרד. ignore מוחרגת לגמרי ולא מגיעה לאפליקציה, למשל כרטיס ששייך למישהו אחר.bank_rules ו-card_rules: כללי סיווג (ביטוי רגולרי על תיאור התנועה). הכלל הראשון שמתאים קובע. @card מסמן את החיוב הכולל של כרטיס האשראי בבנק, שמוחלף בפירוט העסקאות מקובץ הכרטיס.forecast: סכומים קבועים לתחזית של חודש רגיל.fixed_commitments, insights, learned, questions: הטקסטים שבלשוניות. לכל שאלה אפשר להוסיף src: הסבר (note), תנועות קשורות (match, ביטוי רגולרי על התיאור, ואופציונלית cat, issuer, from ו-to) ומסמכים (docs, שמות מתוך manual_sources). לחיצה על השאלה באתר מציגה אותם. summary הוא כרטיס תמונת המצב בראש התובנות, ו-{{tin}}, {{tout}}, {{gap}} ו-{{fixed}} מתמלאים בו מהתחזית.manual_sources, missing_sources: לשונית ״מקורות״, עם מסמכים שהתקבלו ידנית ומה שעוד חסר. את רשימת הקבצים האוטומטיים והתקופה שכל אחד מכסה build.py מפיק בעצמו.אחרי שינוי בהגדרות מריצים שוב את build.py ומעלים את הקובץ החדש.
firestore.rules וב-docs/firebase-config.js) לוחץ באפליקציה על ״שיתוף״ ומוסיף או מסיר כתובות Gmail. הרשימה נשמרת ב-Firestore, באוסף access, ולא בריפו הציבורי. מי שברשימה מתחבר עם Google ורואה ועורך את כל הנתונים.shareSalts/{id} נשמר רק ה-salt, וב-shares/{id} המידע המוצפן, שנחסם לקריאה עד הפתיחה. הפתיחה הראשונה מחייבת הוכחה שנגזרת מהסיסמה (השרת בודק SHA-256), השרת חותם את זמן הפתיחה וחוסם את הקריאה אחרי שעה. אפשר לבטל קישור בכל רגע.firestore.rules:
npx firebase-tools deploy --only firestore:rules
npx firebase-tools deploy --only hosting
gavishori.github.io.