- β¨ Features
- πΌοΈ Screenshots
- π Quick Start
- π» Installation
- π User Guide
- π οΈ Tech Stack
- ποΈ Architecture
- π How It Works
- π§© Project Structure
- π§ Development
- π€ Contributing
- π License
- π Acknowledgments
|
Automatically fetches real-time federal interest rates from the FRED API (1-Year Treasury Constant Maturity Rate) Pre-populated database with interest rates for all U.S. jurisdictions Built-in UI for viewing, editing, adding, and deleting state interest rates |
Uses the standard formula: Principal Γ Rate Γ (Days / 365) Calculate interest for any date range with intuitive date pickers Local storage of FRED API key with easy configuration |
- β Windows (MSI installer available for x64 and ARM64)
- β macOS (Build from source)
- β Linux (Build from source)
|
π Calculator Tab Calculate interest with ease |
ποΈ Database Manager Manage state rates efficiently |
βοΈ Settings Configure your API key |
![]() |
![]() |
![]() |
- Download the installer from the Releases page
- Install the application
- Get your FREE API key from FRED
- Configure your API key in the Settings tab
- Start calculating post-judgment interest!
- Download the appropriate MSI for your system architecture
- Double-click the downloaded file to run the installer
- Follow the installation wizard
- Launch the app from your Start Menu
π¨ Build Steps
# Clone the repository
git clone https://github.com/matt793/JudgmentRateDesktop.git
cd JudgmentRateDesktop
# Install dependencies
npm install
# Run development server
npm run tauri dev
# Build for production
npm run tauri buildThe main interface for calculating post-judgment interest:
- Select Jurisdiction: Choose between Federal or any U.S. state
- Enter Judgment Date: The date the judgment was entered
- Enter Amount: The principal judgment amount
- Select Date Range: Choose start and end dates for interest calculation
- Calculate: Click to see results including:
- Applied interest rate
- Number of days
- Total interest amount
- Legal disclaimer
π‘ Tip: Federal rates are fetched automatically based on the judgment date!
Manage state interest rates with an intuitive interface:
- View all state rates in a sortable grid
- Edit rates by double-clicking cells
- Search for specific states
- Filter by rate type (fixed/variable)
- Add new jurisdictions
- Delete outdated entries
Rate Types:
- Fixed Rate: A specific percentage (e.g., 8%)
- Variable Rate: Federal rate + additional percentage
Configure your FRED API key:
-
Get your API key:
- Visit FRED API Registration
- Create a free account
- Request an API key (instant approval)
-
Enter the key in the settings
-
Save to enable federal rate calculations
π Security: Your API key is stored locally and never transmitted except to FRED's servers.
| Technology | Purpose |
|---|---|
| Tauri | Desktop application framework |
| SQLite | Local database via rusqlite |
| reqwest | HTTP client for FRED API |
| chrono | Date handling and calculations |
| serde | JSON serialization |
| thiserror | Error handling |
| dotenvy | Environment management |
| Technology | Purpose |
|---|---|
| React | UI framework |
| TypeScript | Type-safe JavaScript |
| Vite | Build tool and dev server |
| Tailwind CSS | Utility-first styling |
| React DatePicker | Date selection |
| Tauri API | Backend communication |
graph TB
A[React Frontend] -->|Tauri IPC| B[Rust Backend]
B --> C[SQLite Database]
B --> D[FRED API]
B --> E[Interest Calculator]
C --> F[State Rates]
D --> G[Federal Rates]
E --> H[Results]
H --> A
- Week Determination: Identifies the week preceding the judgment date (Monday-Sunday)
- API Call: Fetches daily 1-Year Treasury yields from FRED
- Average Calculation: Computes average of valid yields (skips missing data)
- Rate Conversion: Converts percentage to decimal
- Storage: Local SQLite database
- Types:
- Fixed: Specific percentage rate
- Variable: Federal rate + additional percentage
- Management: Full CRUD operations via Database Manager
β οΈ Important Note: State interest rates are subject to change and may be updated by state legislatures. While this application comes pre-populated with current rates, you should verify and manually update state rates periodically through the Database Manager tab to ensure accuracy. Always consult official state sources or legal counsel for the most current rates.
Interest = Principal Γ Rate Γ (Days / 365)
- Days calculated inclusively
- Results rounded to 2 decimal places
- Includes legal disclaimer
JudgmentRateDesktop/
βββ π src/ # React frontend
β βββ π components/ # UI components
β β βββ π CalculatorTab.tsx
β β βββ π DbManagerTab.tsx
β β βββ π SettingsTab.tsx
β βββ π App.tsx # Main app
β βββ π types.ts # TypeScript types
β βββ π main.tsx # Entry point
β
βββ π src-tauri/ # Rust backend
β βββ π src/
β β βββ π main.rs # App entry
β β βββ π commands.rs # Tauri commands
β β βββ π db.rs # Database ops
β β βββ π rate_fetcher.rs # FRED API
β β βββ π calculator.rs # Interest calc
β βββ π Cargo.toml # Rust deps
β
βββ π RMImages/ # Screenshots
βββ π package.json # Node deps
CREATE TABLE state_rates (
id INTEGER PRIMARY KEY,
state TEXT NOT NULL UNIQUE,
rate REAL NOT NULL,
is_variable INTEGER NOT NULL DEFAULT 0,
plus_percentage REAL DEFAULT 0,
update_frequency TEXT,
last_update TEXT,
notes TEXT
);# Rust tests
cd src-tauri
cargo test
# Frontend tests
npm test# Rust dependencies
cd src-tauri
cargo update
# Node dependencies
npm updateWe welcome contributions! Here's how you can help:
- π΄ Fork the repository
- πΏ Create a feature branch (
git checkout -b feature/AmazingFeature) - πΎ Commit your changes (
git commit -m 'Add AmazingFeature') - π€ Push to the branch (
git push origin feature/AmazingFeature) - π Open a Pull Request
- Rust: Follow standard Rust formatting (
cargo fmt) - TypeScript: Use Prettier and ESLint configurations
- Commits: Use conventional commit messages
This project is licensed under the MIT License - see the LICENSE file for details.
Special thanks to:
π¦ Federal Reserve Economic Data (FRED) for providing reliable interest rate data
π Tauri for the amazing desktop framework
βοΈ React and π¦ Rust communities
π All contributors and users of this application
This entire application was "Vibe Coded" - built through an interactive, conversational coding session where we explored ideas, iterated on solutions, and created something awesome together. Sometimes the best code comes from good vibes and collaborative energy! β¨



