How nosibbiswas22/expenzo works
Expenzo is a browser-based expense tracker. Users add categorized entries, browse and filter them, edit or delete records, and review category totals and charts; Settings also manages categories and JSON import/export. The sampled source shows localStorage as the persistence layer and app.js as the page dispatcher. Some Settings, summary, and action implementations are excerpted, so only their directly supported responsibilities and connections are shown.
Main entry points: app.js Page dispatcher · localdb.js Browser storage · actions.js Entry actions · ListItems.js Entry list
Components 18
App navigation
- Page dispatcher
app.js - Navigation UI
components/Navigation.js
Expense entries
- Add entry
components/AddItem.js - Entry list
components/ListItems.js - Filter and render
components/renderItems.js - Edit entry
components/EditEntry.js - Entry actions
components/actions.js
Summary and settings
- Totals and charts
components/Summary.js - Settings and transfer
components/Settings.js
Shared services
- Category rendering
components/renderCategories.js - Browser storage
components/localdb.js - Confirmation modal
components/modal.js - Toast notifications
components/toastify.js - Loading indicator
components/TopLoadingBar.js
Other components
- User
- Browser localStorage
- Chart library
- jsPDF library
Connections 29
- User → Navigation UI: selects page
- Navigation UI → Page dispatcher: dispatches click
- Page dispatcher → Add entry: opens page
- Page dispatcher → Entry list: opens page
- Page dispatcher → Totals and charts: opens page
- Page dispatcher → Settings and transfer: opens page
- Page dispatcher → Loading indicator: updates progress
- Page dispatcher → Browser storage: checks entries
- Add entry → Category rendering: renders categories
- Add entry → Browser storage: loads and saves
- Add entry → Toast notifications: reports outcome
- Entry list → Filter and render: renders entries
- Entry list → Category rendering: renders categories
- Entry list → Entry actions: binds actions
- Filter and render → Browser storage: loads entries
- Filter and render → Edit entry: opens edit form
- Filter and render → Entry actions: requests deletion
- Edit entry → Browser storage: loads and saves
- Edit entry → Entry list: refreshes list
- Edit entry → Toast notifications: reports outcome
- Entry actions → Confirmation modal: confirms actions
- Entry actions → Browser storage: updates entries
- Entry actions → Filter and render: refreshes entries
- Entry actions → jsPDF library: generates PDF
- Totals and charts → Browser storage: loads entries
- Totals and charts → Chart library: renders charts
- Settings and transfer → Browser storage: manages data
- Settings and transfer → Toast notifications: reports outcome
- Browser storage → Browser localStorage: reads and writes