envelope_cli/
lib.rs

1//! EnvelopeCLI - Terminal-based zero-based budgeting application
2//!
3//! This library provides the core functionality for the EnvelopeCLI budgeting
4//! application. It implements a zero-based budgeting system similar to YNAB,
5//! but designed for terminal users who prefer CLI and TUI interfaces.
6//!
7//! # Architecture
8//!
9//! The crate is organized into the following modules:
10//!
11//! - `config`: Configuration and path management
12//! - `error`: Custom error types
13//! - `models`: Core data models (accounts, transactions, categories, etc.)
14//! - `storage`: JSON file storage layer
15//! - `services`: Business logic layer
16//! - `audit`: Audit logging system
17//! - `backup`: Automatic backup management
18//!
19//! # Example
20//!
21//! ```rust,ignore
22//! use envelope_cli::config::{paths::EnvelopePaths, settings::Settings};
23//!
24//! let paths = EnvelopePaths::new()?;
25//! let settings = Settings::load_or_create(&paths)?;
26//! ```
27
28pub mod audit;
29pub mod backup;
30pub mod cli;
31pub mod config;
32pub mod crypto; // Step 31: Encryption at Rest
33pub mod display;
34pub mod error;
35pub mod export; // Step 30: Full Data Export
36pub mod models;
37pub mod reports; // Steps 28-29: Reports
38pub mod services;
39pub mod setup; // Step 32: First-Run Setup Wizard
40pub mod storage;
41pub mod tui; // Phase 4: TUI
42
43pub use error::EnvelopeError;