An open API service indexing awesome lists of open source software.

https://github.com/spy4x/financy

Financy - Open-source, self-hostable finance tracking for individuals, families, and small businesses.
https://github.com/spy4x/financy

deno docker finances-manager honojs postgres preact

Last synced: 2 months ago
JSON representation

Financy - Open-source, self-hostable finance tracking for individuals, families, and small businesses.

Awesome Lists containing this project

README

          

# Financy

Open-source, self-hostable finance tracking for individuals, families, and small
businesses.

Check it out at [financy.dev](https://financy.dev).

Financy is a double-entry financial
management web application focused on personal, family, and business expense
management. It emphasizes rich capabilities, transparency, and ease of use while
offering advanced features like group collaboration, public API integrations,
and Telegram bot integration.

## πŸ—ΊοΈ Development Roadmap

- βœ… **Completed** - 🟑 **In Progress** - βšͺ **Planned**

### πŸ—οΈ Core Infrastructure

- βœ… **Database Schema** - Complete PostgreSQL schema with all tables
- βœ… **CQRS Architecture** - Command/Event pattern with buses
- βœ… **Real-time Communication** - WebSocket implementation
- βœ… **Caching & Performance** - Valkey/Redis caching layer
- βœ… **Containerization** - Docker setup for all services
- βœ… **PWA Foundation** - Progressive Web App capabilities
- 🟑 **Authentication System** - Basic auth complete, 2FA UI pending

### πŸ‘₯ User Management

- 🟑 **User Registration/Login** - Basic flow complete, profile management needed
- βœ… **Session Management** - Secure session handling
- 🟑 **Role-Based Access Control** - Multi-tier permissions partially implemented
- 🟑 **Two-Factor Authentication** - Backend ready, UI needs completion
- 🟑 **Password Management** - Basic change functionality, reset needs work
- βšͺ **User Profile Management** - Profile editing, preferences
- βšͺ **Account Recovery** - Email-based recovery system

### 🏒 Group Collaboration

- 🟑 **Group Management** - Create, edit, list groups
- βœ… **Group Settings** - Default currencies, preferences
- βœ… **Real-time Updates** - Live sync across group members
- 🟑 **Group Membership** - Role-based access partially implemented
- βšͺ **Member Invitations** - Invite users via email/link
- βšͺ **Member Management** - Add/remove group members

### 🏦 Account Management

- βœ… **Account CRUD** - Complete create, read, update, delete
- βœ… **Account Management UI** - Edit details, currencies, balances
- βœ… **Account List & Balances** - View all accounts with current balances
- βœ… **Account Archiving** - Soft delete with undelete functionality
- 🟑 **Multi-Currency Display** - Show amounts in different currencies
- βšͺ **Cross-Group Sharing** - Share accounts between multiple groups

### πŸ“Š Transaction Management

- βœ… **Transaction CRUD** - Complete transaction management via WebSockets
- βœ… **Multi-Currency Support** - Original + converted amounts
- βœ… **Transaction Forms** - Add income/expense/transfer forms
- βœ… **Transaction History** - View and filter transaction list
- βœ… **Transaction Editing** - Modify existing transactions
- βœ… **Transaction Archiving** - Soft delete with undelete
- βšͺ **Bulk Operations** - Import/export transactions
- βšͺ **Transaction Templates** - Save frequently used transactions
- βšͺ **Recurring Transactions** - Automated scheduled entries

### 🏷️ Categories & Tags

- βœ… **Category Management** - Complete CRUD with real-time sync
- βœ… **Category Analytics** - Spending insights by category
- βœ… **Monthly Spending Limits** - Budget tracking per category
- 🟑 **Tag Management** - Schema ready, UI implementation pending
- βšͺ **Tag-based Filtering** - Search transactions by tags

### πŸ“ˆ Dashboard & Analytics

- βœ… **Financial Overview Cards** - Balance, income, expenses, net worth
- βœ… **Recent Transactions** - Latest transactions with quick actions
- βœ… **Budget Progress Bars** - Category spending vs limits
- βœ… **Quick Actions Panel** - Fast access to common operations
- βœ… **Account Balance Overview** - All accounts with trends
- βœ… **Monthly Spending Trends** - 6-month spending patterns
- βœ… **Cash Flow Summary** - Income vs expenses with trends
- βšͺ **Advanced Reports** - Monthly/yearly analysis with charts
- βšͺ **Goal Setting & Tracking** - Financial goals with progress monitoring

### πŸ’± Multi-Currency

- βœ… **Currency Schema** - Database support for multiple currencies
- βœ… **Exchange Rates** - Rate storage structure
- 🟑 **Currency Conversion** - Basic conversion display
- βšͺ **Real-time Exchange Rates** - Automatic rate fetching
- βšͺ **Historical Rate Tracking** - Exchange rate history

### πŸ€– Integrations & API

- βœ… **WebSocket API** - Real-time data synchronization
- 🟑 **Push Notifications** - Backend structure ready, UI pending
- βšͺ **REST API** - Public API for integrations
- βšͺ **API Documentation** - Comprehensive API documentation
- βšͺ **Telegram Bot** - Natural language transaction entry
- βšͺ **AI Transaction Entry** - LLM-powered natural language parsing

### �️ Security & Infrastructure

- βœ… **Authentication & Sessions** - Secure user authentication
- βœ… **Input Validation** - Comprehensive data validation
- βœ… **HTTPS Configuration** - SSL/TLS setup
- 🟑 **Production Deployment** - Staging and production configs
- 🟑 **Monitoring & Logging** - Grafana, Loki, Prometheus setup
- 🟑 **Automated Testing** - Unit and integration tests
- βšͺ **Security Headers** - Comprehensive security headers
- βšͺ **Rate Limiting** - API abuse prevention
- βšͺ **GDPR Compliance** - Data privacy compliance

### οΏ½ User Experience

- βœ… **Mobile-First Design** - Responsive UI optimized for mobile
- βœ… **PWA Features** - App-like experience with offline capabilities
- βœ… **Real-time Updates** - Live data synchronization
- 🟑 **Dark Mode** - Theme customization with system preference
- 🟑 **Accessibility** - WCAG compliance improvements needed
- 🟑 **Search & Filters** - Basic filtering, advanced search pending
- βšͺ **Internationalization** - Multi-language support
- βšͺ **Keyboard Shortcuts** - Power user productivity features

### πŸš€ Advanced Features

- βšͺ **Split Expenses** - Shared expense management
- βšͺ **Debt Tracking** - Track loans and debts
- βšͺ **Investment Tracking** - Stocks and crypto portfolio
- βšͺ **Receipt Scanning** - OCR for receipt processing
- βšͺ **Mobile Apps** - Native iOS/Android with Capacitor
- 🟑 **Enhanced Offline Mode** - Extended offline capabilities

---

**Next priorities:** API documentation, AI transaction entry, Telegram bot integration.

## Contributing

Contributions are welcome! Please see our [Contributing Guidelines](CONTRIBUTING.md) for details.

## Documentation

- [**Project Overview**](docs/1.principles.md) - Core principles and vision
- [**Features**](docs/2.features.md) - Detailed functionality and capabilities
- [**Architecture**](docs/3.architecture.md) - System components and interactions
- [**Technology Stack**](docs/4.tech-stack.md) - Tools and frameworks used
- [**Deployment**](docs/5.deployment.md) - Installation and setup instructions
- [**Infrastructure**](docs/6.infrastructure.md) - Deployment and hosting information
- [**Recommendations & Gaps**](docs/7.recommendations-expanded.md) - Future improvements and missing pieces

## Quick Start

Prerequisites (unix-like OS):

- [Deno](https://deno.land/): `curl -fsSL https://deno.land/install.sh | sh`
- [Docker](https://www.docker.com/): `curl -fsSL https://get.docker.com | sudo sh`

To start local development:

1. Clone the repository
2. **Install git hooks** (important for code quality):
```sh
deno task hooks:install
```
3. Start all services:
```sh
deno task compose up -d
```

## Seed Data

For development and testing purposes, you can populate the database with comprehensive test data:

```sh
deno task db:seed
```

This command wipes all existing data (except migrations) and recreates seed data including:

- Test user account (`test@test.com` / `pass1234`)
- Sample groups, accounts, categories, and transactions
- Historical exchange rates and multi-currency data
- Complete authentication setup for testing

## Development Commands

For development and code quality, use these commands:

- **`deno task check`** - Run comprehensive checks (TypeScript, linting, formatting, tests)
- **`deno task fix`** - Automatically fix linting and formatting issues
- **`deno task test`** - Run test suite only
- **`deno task ts:check`** - TypeScript check only

This will launch all necessary services & apps in Docker Compose.

## License

This project is licensed under the [MIT License](LICENSE).

---