Capstone: ship Smart Ledger
Assemble the product
This capstone starts empty—there is no fake ledger. A real user adds their own transactions. The app validates and normalizes input, stores amounts as agorot, persists locally, derives KPIs, filters rows, deletes entries, and exports a JSON backup.
The export is a real artifact. The storage is real browser storage. The only limitation is deliberate: this learning project never connects to a bank and never asks for banking credentials.
التعليمات
Implement loadTransactions and saveTransactions using localStorage and JSON.
تلميح: Restore [] on parse failure; stringify transactions on every mutation.
أين أكتب هذا؟
// Assemble: load/save, validation, add/delete, derived KPIs, filter, and JSON export.اكتبه في السطر 5 — أسفل هذا التعليق، بعد الكود الذي أضفته بالفعل.
Validate and normalize input in createTransaction.
Render KPIs and filtered rows from the transactions array.
Implement add and delete flows, saving after each mutation.
Export a real JSON backup with Blob and URL.createObjectURL.
الكود الخاص بك
صف ما تريد بناءه في هذه الخطوة وسأكتب الكود — ثم انقر «تطبيق» لإدراجه في محرّرك. هذه الخطوة: Implement loadTransactions and saveTransactions using localStorage and JSON.