π‘ Summary
Celeiro is a personal finance management system that automates classification and budget control through OFX imports.
π― Target Audience
π€ AI Roast: βThis finance tool is like a budget-friendly accountant, minus the coffee breaks.β
The project may expose sensitive financial data through improper handling of OFX imports and database access. Implement strict input validation and secure database connections to mitigate risks.
Celeiro - Personal Finance Management System
A personal finance management system with OFX import, automatic classification, and flexible budgets.
Overview
Problem: Managing personal finances is tedious β multiple accounts, manual classification, no budget control.
Solution: Import OFX β Classify automatically β Control budgets by category.
Documentation
- product.md - Product vision, features, and business decisions
- docs/index.md - Documentation index and quick reference
- docs/setup.md - Installation and setup guide
- docs/architecture.md - System architecture and design patterns
- docs/database.md - Complete data model (auth + financial)
- docs/domains.md - Domains and entities guide
- docs/conventions.md - Code conventions and patterns
- docs/auth.md - Authentication system
- docs/troubleshooting.md - Troubleshooting
Project Structure
celeiro/
βββ backend/ # Go API + PostgreSQL
β βββ cmd/ # Entry points
β βββ internal/ # Private application code
β β βββ domain/ # Entities and interfaces
β β βββ repository/ # Data access
β β βββ service/ # Business logic
β β βββ web/ # HTTP handlers
β βββ migrations/ # SQL migrations (Goose)
β βββ pkg/ # Reusable code
β βββ ofx/ # OFX parser
βββ frontend/ # React + TypeScript + Tailwind
β βββ src/
β β βββ components/ # Reusable components
β β βββ pages/ # Application pages
β β βββ services/ # API clients
β β βββ types/ # TypeScript types
β βββ public/
βββ docs/ # Documentation
βββ openspec/ # OpenSpec specifications (changes in openspec/changes/)
Quick Start
Recommended flow (Docker):
make up
Access http://localhost:13000
See docs/setup.md for the full guide.
Architecture
Backend: Repository β Service β Handler (Go + PostgreSQL + SQLX) Frontend: React + TypeScript + Tailwind CSS DevOps: Docker + GitHub Actions
See docs/architecture.md for full details.
Data Model
users β accounts β transactions β categories β budgets β budget_items
β classification_rules
Key decisions:
- Serial IDs (not UUID) for performance
- Unique FITID per account prevents duplicates
- Budget with 3 types: fixed, calculated, hybrid
- Raw OFX stored in JSONB for auditing
See docs/database.md for the full schema.
Development
Workflow: OpenSpec (proposal/change) β Implementation β Review
# Main commands make test # Run backend tests npm test # Run frontend tests
See docs/conventions.md for conventions.
Tests
# Backend make test # Unit + Integration tests make test-coverage # Coverage report (target: >80%) # Frontend npm test # Jest + React Testing Library npm test -- --coverage
See backend/STARTUP-GUIDE.md for the backend guide.
Tech Stack
Backend: Go 1.24, Chi, PostgreSQL 16, Redis, SQLX, Goose Frontend: React 18, TypeScript, Tailwind CSS, Vite Auth: Passwordless (magic codes via email) DevOps: Docker, GitHub Actions AI Tools: OpenSpec, Claude Code
See docs/conventions.md for code conventions. See docs/auth.md for the auth system.
Troubleshooting
# Backend won't start docker ps | grep postgres # Check PostgreSQL docker logs celeiro-postgres make down docker volume prune # Careful: removes all unused volumes make up # Migrations fail make migrate.rollback # Frontend has no data curl -i localhost:9090/accounts/me/ # Test backend cat frontend/.env # Check VITE_API_URL
See docs/setup.md#troubleshooting for more solutions.
Contributing
- Create a specification in OpenSpec
- Implement following docs/conventions.md
- Ensure tests pass
- Create a PR with a clear description
License
Proprietary - Lucas Tamoios
Pros
- Automates financial classification
- Supports OFX file imports
- Flexible budget management
- User-friendly interface
Cons
- Requires initial setup and configuration
- Limited to OFX format for imports
- May need technical knowledge for troubleshooting
- Proprietary license limits distribution
Related Skills
pytorch
SβIt's the Swiss Army knife of deep learning, but good luck figuring out which of the 47 installation methods is the one that won't break your system.β
agno
SβIt promises to be the Kubernetes for agents, but let's see if developers have the patience to learn yet another orchestration layer.β
nuxt-skills
SβIt's essentially a well-organized cheat sheet that turns your AI assistant into a Nuxt framework parrot.β
Disclaimer: This content is sourced from GitHub open source projects for display and rating purposes only.
Copyright belongs to the original author lucastamoios.
