Co-Pilot
Updated 24 days ago

celeiro

Llucastamoios
0.0k
lucastamoios/celeiro
78
Agent Score

πŸ’‘ Summary

Celeiro is a personal finance management system that automates classification and budget control through OFX imports.

🎯 Target Audience

Individuals managing multiple financial accountsSmall business owners tracking expensesFreelancers needing budget controlStudents learning personal financeDevelopers looking for finance management solutions

πŸ€– AI Roast: β€œThis finance tool is like a budget-friendly accountant, minus the coffee breaks.”

Security AnalysisMedium Risk

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

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

  1. Create a specification in OpenSpec
  2. Implement following docs/conventions.md
  3. Ensure tests pass
  4. Create a PR with a clear description

License

Proprietary - Lucas Tamoios

5-Dim Analysis
Clarity8/10
Novelty7/10
Utility9/10
Completeness8/10
Maintainability7/10
Pros & Cons

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
toolCode Lib
92/ 100

β€œ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
toolCode Lib
90/ 100

β€œ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
toolCo-Pilot
90/ 100

β€œ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.