The solution to predictive budgeting, real-time spending optimization, & accounting made simple
Dineros.cc is a comprehensive financial management platform that provides predictive budgeting, real-time spending optimization, and simplified accounting. Built with Nuxt 4, TypeScript, and a modern microservice architecture.
Dineros is source-available under a custom non-commercial license in LICENSE.
- Copyright remains with Jeremy DeYoung.
- Personal and non-commercial use is allowed.
- Commercial use requires a separate written license from Jeremy DeYoung.
- Attribution is required.
Read the full terms in LICENSE.
- Nuxt 4 + Vue 3
- TypeScript
- Prisma ORM
- MySQL 8
- Redis
- PNPM workspaces
- Node
24.14.0+(see.nvmrc) - PNPM
10+ - MySQL 8
- Redis
- Clone and install:
git clone https://github.com/deyoungjd/dineros.cc.git
cd dineros.cc
pnpm install- Configure environment:
cp .env.example .env- Start dependencies:
docker compose up -d- Run database migrations:
pnpm --filter dineros-app exec prisma migrate deploy- Start the app:
pnpm devApp URL: http://localhost:3000
From repo root:
pnpm dev
pnpm lint
pnpm test
pnpm test:e2eApp package targeted commands:
pnpm --filter dineros-app exec prisma generate
pnpm --filter dineros-app exec prisma migrate deployapp/: Nuxt application, API routes, Prisma schema, tests.microservice/: companion service code.scripts/: local automation and maintenance scripts.docs/: project-specific documentation..github/workflows/: CI, checks, and deployment workflows.
Community contributions are welcome.
- Start with
CONTRIBUTING.md - Follow
CODE_OF_CONDUCT.md - Report vulnerabilities via
SECURITY.md
Fork PRs run contributor-safe checks. Deploy workflows are maintainer-only.
- Jeremy DeYoung (project owner and lead maintainer)
Before/when making the repository fully public:
- Ensure repository visibility is set to public.
- Enable GitHub Issues.
- Optionally enable GitHub Discussions.
- Keep
SECURITY.mdreporting details current.
- Predictive Budgeting: Advanced forecasting engine with 5-10x performance improvements
- Real-time Spending Tracking: Monitor expenses and income in real-time
- Multi-Account Support: Manage checking, savings, credit cards, loans, and investment accounts
- Automated Recurring Transactions: Handle bills, payroll, and regular expenses
- Loan & Credit Card Management: Interest calculations, minimum payments, and debt tracking
- Investment Account Support: 401k, HSA, ESA, and other investment vehicles
- Asset Tracking: Houses, cars, and other valuable assets
- Modern Architecture: Nuxt 4 with TypeScript and modular service design
- High-Performance Forecasting: Custom ModernCacheService for lightning-fast calculations
- Microservice Support: Separate microservice for specialized operations
- Database Encryption: Field-level encryption for sensitive financial data
- Queue Management: BullMQ for background job processing
- Real-time Updates: WebSocket support for live data synchronization
- Plaid Integration: Secure bank account linking and transaction sync
- Two-Factor Authentication: Enhanced security with TOTP support
- Financial Forecasting: 5-year projections with scenario modeling
- Balance Tracking: Real-time account balance monitoring
- Transfer Management: Inter-account transfers with validation
- Performance Metrics: Detailed financial performance analytics
- Custom Reports: Generate personalized financial reports
Frontend (Nuxt 4)
βββ Pages & Components
βββ State Management (Pinia)
βββ UI Components (@nuxt/ui)
βββ API Integration
Backend Services
βββ Forecast Engine (Modular Architecture)
βββ Account Management
βββ Transaction Processing
βββ Plaid Integration
βββ Authentication & Security
βββ Queue Management (BullMQ)
Main Application (Port 3000)
βββ Web Interface
βββ API Endpoints
βββ Core Business Logic
Microservice (Port 3001)
βββ Specialized Operations
βββ Background Processing
βββ Extended Functionality
ForecastEngine (Orchestrator)
βββ DataLoaderService (Database β Cache)
βββ AccountRegisterService (Account Operations)
βββ ReoccurrenceService (Recurring Transactions)
βββ RegisterEntryService (Entry Management)
βββ LoanCalculatorService (Interest Calculations)
βββ TransferService (Account Transfers)
βββ DataPersisterService (Cache β Database)
- Nuxt 4: Vue.js framework with SSR/SSG
- TypeScript: Full type safety
- @nuxt/ui: Modern UI components
- Pinia: State management
- Tailwind CSS: Utility-first styling
- Node.js 24.14+: Runtime environment
- Prisma: Database ORM with migrations
- PostgreSQL/MySQL: Primary database
- Redis: Caching and session storage
- BullMQ: Job queue management
- Docker: Containerization
- Docker Compose: Local development
- Plaid API: Bank account integration
- Postmark: Email delivery
- NATS: Message queuing
- Node.js 24.14.0 or higher
- Docker and Docker Compose
- Git
- Clone the repository
git clone https://github.com/deyoungjd/dineros.cc.git
cd dineros.cc- Install dependencies
# Using pnpm (recommended)
pnpm install
# Or using npm
npm install- Set up environment variables
cp .env.example .env
# Edit .env with your configuration- Start development environment
# Start database and Redis
docker-compose up -d
# Run database migrations
pnpm prisma migrate deploy
# Start development server
pnpm dev- Access the application
- Main app: http://localhost:3000
- Microservice: http://localhost:3001
For production-like environment:
# Build and test Docker images
./build-test.sh
# Run with Docker Compose
docker-compose -f docker-compose.prod.yml up -d# Development
pnpm dev # Start development server
pnpm build # Build for production
pnpm preview # Preview production build
# Testing
pnpm test # Run all tests
pnpm test:forecast # Run forecast engine tests
pnpm test:forecast:all # Run all forecast tests
pnpm test:forecast:unit # Run unit tests only
pnpm test:forecast:integration # Run integration tests
# Database
pnpm prisma migrate dev # Create and apply migrations
pnpm prisma generate # Generate Prisma client
pnpm reset-database # Reset database (development)
# Code Quality
pnpm lint # Run ESLint
pnpm lint-fix # Fix linting issues
pnpm pre-commit # Run pre-commit checksThe forecast engine has comprehensive testing:
# Quick functionality test
npm run test:forecast
# Performance testing
npm run test:forecast:performance
# All test suites
npm run test:forecast:all# Apply migrations
pnpm prisma migrate deploy
# Reset database (development only)
pnpm reset-database
# Generate Prisma client
pnpm prisma generate# Build the application
pnpm build
# Start production server
pnpm start# Build Docker images
docker build -t dineros-main .
cd microservice && docker build -t dineros-microservice .
# Run containers
docker run -p 3000:3000 dineros-main
docker run -p 3001:3000 dineros-microserviceRequired environment variables:
# Database
DATABASE_URL="postgresql://user:password@localhost:5432/dineros"
# Redis
REDIS_URL="redis://localhost:6379"
# Authentication
JWT_SECRET="your-jwt-secret"
RSA_PRIVATE_KEY="your-rsa-private-key"
RSA_PUBLIC_KEY="your-rsa-public-key"
# Plaid Integration
PLAID_CLIENT_ID="your-plaid-client-id"
PLAID_SECRET="your-plaid-secret"
# Email
POSTMARK_API_KEY="your-postmark-api-key"| Dataset Size | Execution Time | Memory Usage | Improvement |
|---|---|---|---|
| Small (1 account, 10 entries) | < 50ms | < 5MB | 5x faster |
| Medium (10 accounts, 1K entries) | < 500ms | < 25MB | 3x faster |
| Large (50 accounts, 10K entries) | < 2s | < 100MB | 2x faster |
- ModernCacheService: 60% less memory usage than LokiJS
- Query Performance: 10x faster for complex operations
- Memory Efficiency: Optimized for financial data patterns
- Field-level Encryption: Sensitive data encrypted at rest
- JWT Authentication: Secure token-based authentication
- Two-Factor Authentication: TOTP support for enhanced security
- HTTPS Enforcement: Secure communication protocols
- GDPR Ready: Data protection and privacy controls
- Financial Data Standards: Secure handling of financial information
- Audit Logging: Comprehensive activity tracking
- Fork the repository
- Create a feature branch
git checkout -b feature/your-feature-name
- Make your changes
- Run tests
pnpm test:forecast:all
- Submit a pull request
- TypeScript: Incremental strictness (project currently runs with relaxed type checks)
- ESLint: Code quality enforcement
- Pre-commit hooks: Automated quality checks
- Conventional Commits: Standardized commit messages
- Unit Tests: Test individual components and services
- Integration Tests: Test service interactions
- Performance Tests: Monitor forecast engine performance
- End-to-End Tests: Test complete user workflows
- REST API:
/api/endpoints for all operations - WebSocket API: Real-time data synchronization
- Plaid Webhooks: Bank account integration
- Forecast Engine: Forecast Engine README
- Migration Guide: Migration Guide
- Testing Guide: Testing Documentation
- Quick Test Commands: Quick Test Guide
- Cache Analysis: Cache System Analysis
Database Connection Issues
# Check database status
docker-compose ps
# Reset database
pnpm reset-databaseForecast Engine Performance
# Run performance tests
npm run test:forecast:performance
# Check cache statistics
npm run test:forecastDocker Build Issues
# Test Docker builds
./build-test.sh
# Clean Docker cache
docker system prune -a# Enable debug logging
DEBUG=forecast:* pnpm dev
# Check logs
docker logs dineros-main
docker logs dineros-microserviceSee the LICENSE file for full terms (custom non-commercial license).
- Issues: Create an issue on GitHub
- Documentation: Check the
/docsdirectory - Community: Join our Discord/Telegram
- Email: support@dineros.cc
- Website: https://dineros.cc
- Documentation: https://docs.dineros.cc
- Nuxt Team: For the amazing Nuxt 4 framework
- Prisma Team: For the excellent database toolkit
- Plaid: For secure financial data integration
- Community Contributors: For all the valuable contributions
Built with β€οΈ by the Dineros.cc team