Skip to content

haportech/Relic

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

💎 Relic - Personal Finance & Net Worth Tracker

Relic is a beautiful, premium, fully offline, self-hosted personal finance and net worth tracking application. Built with absolute data privacy in mind, Relic helps you aggregate your asset allocation, track liabilities, log transactions, configure category budgets, and analyze your wealth progression without any telemetry, trackers, or external network requests.


✨ Key Features

📊 Immersive Dashboard

  • Dynamic Net Worth Counter: A large, prominent net worth banner featuring an animated count-up on interface load.
  • Obsidian Trend Sparkline: A local, responsive sparkline tracking your 12-month net worth trajectory right at the top.
  • Metrics Cards: At-a-glance cards showing total assets, total debts, current month's income, and current month's expenses.
  • Due This Week: A prioritized panel highlighting upcoming recurring bills or active subscriptions due within the next 7 days.
  • Recent Entries: A compact ledger listing your latest 10 transactions.

💰 Asset & Liability Allocation

  • Asset Tracking: Organizes cash, investments, real estate, vehicles, crypto, and custom categories.
  • Liability Tracking: Manage mortgages, car loans, credit cards, student loans, personal loans, and custom categories.
  • Manual FX Conversions: Multi-currency support! Denominate foreign assets in their native currencies (e.g., EUR, BTC) and input manual exchange rates to translate values into your base currency.
  • Historical logs: Logging value changes appends timestamps and maps complete historical progression lines per account.

📝 Transaction Ledger & CSV Wizard

  • Comprehensive CRUD: Manually log income or expenses with date, amount, currency, category, merchant, and notes.
  • Auto-Recurring Schedules: Flag any transaction as recurring (weekly, monthly, or yearly) to establish templates that auto-generate future instances when due.
  • RFC-Compliant CSV Import Wizard: Drag and drop your banks' ledger CSVs. Our intelligent client-side parser auto-detects date, amount, and category columns, supports quoted text containing commas, and executes bulk inserts in a single transaction.
  • Filterable CSV Export: Build custom tables using category, type, or search queries, and instantly export the filtered list to a clean CSV.

📉 Custom Analytics & Reports (Powered by Chart.js)

  • Monthly Comparison: Grouped bar chart comparing income against expenses over the last 12 months.
  • Category Breakdown: Donut charts illustrating expenditures per category for any selected month.
  • Net Worth Progression: Line graph visualizing historical asset lines, debt lines, and overall net worth.
  • Savings Rate Trends: Evaluates your monthly savings rate percentage computed as ((Income - Expense) / Income) * 100.
  • Exportable Reports: Export any chart as a clean PNG image file with a single click.

🔒 Security Model

  • First-Launch Initialization: On boot, if no PIN exists, Relic secures the vault by forcing the setup of a 4-digit PIN.
  • Bcrypt Protection: Your 4-digit PIN is salted and hashed using bcrypt before storage.
  • Cookie-Based Sessions: Authentication cookie sessions are verified via JSON Web Tokens (JWT) signed with a persistent secret, maintaining active states for 7 days.
  • 100% Offline & Telemetry-Free: Zero CDN scripts, zero tracking pixels, and zero outbound network telemetry. Your financial files never leave your machine.

🛠️ Technical Stack

  • Frontend: Clean Semantic HTML5, Vanilla JavaScript, and Premium Glassmorphic Vanilla CSS.
  • Charts: Chart.js (downloaded locally for offline use).
  • Backend: Node.js + Express REST API.
  • Database: SQLite via better-sqlite3 (single-file persistence).
  • Authentication: jsonwebtoken, bcryptjs, and cookie-parser.

🚀 Quick Start & Installation

1. Prerequisites

Ensure you have Node.js installed (v18 or higher recommended).

2. Clone the Repository

git clone https://github.com/[your-username]/relic.git
cd relic

3. Install Dependencies

npm install

4. Run the Server

Start the production server:

npm start

Or start the development server with automatic file hot-reloading:

npm run dev

5. Access the Application

Open your browser and navigate to:

http://localhost:3000

Follow the screen prompts to set up your 4-digit PIN.


⌨️ Keyboard Shortcuts

Relic is optimized for high-speed manual data logging:

  • Press N from anywhere in the app to immediately open the New Transaction Ledger Form. (Disabled while actively typing in input fields).

💾 Backups & Database Management

Because Relic values data sovereignty, all settings, historical entries, transactions, and budgets can be exported or recovered inside the Settings menu:

  • JSON Export: Download your entire database in a structured JSON payload to safeguard or archive your data.
  • JSON Recovery: Upload your JSON archive file to immediately restore your ledger state on any other self-hosted host (WARNING: This overwrites active data).

📄 License

Distributed under the MIT License. See LICENSE for more information.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors