DEV Community

Ruthel Cedrick Ascens BALOCK
Ruthel Cedrick Ascens BALOCK

Posted on

Building an Accounting Diary Component for React (with PDF/Excel Export)

Building an Accounting Diary Component for React

Ever needed to display accounting transactions in a React app with export functionality? I built react-accounting-diary to solve exactly that.

🎯 The Problem

Most accounting software is either:

  • Too complex for simple use cases
  • Lacks modern export options (PDF, Excel, PNG)
  • Not customizable enough
  • Heavy dependencies

✨ The Solution

A lightweight React component (~45KB gzipped) that handles:

import AccountingDiary from 'react-accounting-diary';

function App() {
  const transactions = [
    {
      date: '2024-01-01',
      text: 'Opening balance',
      isDebit: true,
      amount: 10000,
      account: 'Cash',
      currency: 'USD',
    },
  ];

  return (
    <AccountingDiary
      data={transactions}
      title="My Company"
      columnHeader={true}
    />
  );
}
Enter fullscreen mode Exit fullscreen mode

🚀 Key Features

1. Multiple Export Formats

  • PNG/JPEG for sharing
  • PDF for printing
  • CSV/Excel for data analysis

2. Built-in Editing

  • Add/edit transactions via dialog
  • Undo/Redo functionality
  • Search and filter by date

3. Zero Config

  • No external CSS needed
  • Dark/Light theme support
  • Fully typed with TypeScript

💡 Why I Built This

While working on a fintech project, I needed a simple way to display transaction journals. Existing solutions were either:

  • Enterprise-grade (overkill)
  • jQuery-based (outdated)
  • Missing export features

So I built one from scratch with modern React patterns.

🎨 Customization

Everything is customizable:

<AccountingDiary
  titleBg="#b0d0a3"
  titleColor="#000"
  columnHeaderBgColor="#f5f5f5"
  account={{ width: 150, color: '#333' }}
  amount={{ width: 120, color: '#666' }}
/>
Enter fullscreen mode Exit fullscreen mode

📦 Installation

npm install react-accounting-diary
Enter fullscreen mode Exit fullscreen mode

🔧 Technical Stack

  • React 16.8+ (hooks-based)
  • TypeScript (fully typed)
  • Vite (fast builds)
  • html-to-image (export functionality)
  • xlsx (Excel export)

🎯 Use Cases

Perfect for:

  • Small business accounting apps
  • Invoice management systems
  • Financial dashboards
  • Expense trackers
  • Educational accounting tools

🌟 What's Next?

I'm working on:

  • [ ] Multi-currency calculations
  • [ ] Custom templates
  • [ ] Chart integration
  • [ ] Mobile-responsive improvements

🔗 Links

💬 Feedback Welcome!

This is my first open-source React component. What features would you like to see? Drop a comment below!


If you found this useful, give it a ⭐ on GitHub!

react #typescript #opensource #accounting #webdev

Top comments (0)