CSV Transaction Imports #708

Merged
zachgoll merged 68 commits from csv-imports-part-1 into main 2024-05-17 21:09:32 +08:00
zachgoll commented 2024-05-03 06:14:18 +08:00 (Migrated from github.com)

Overview

The overall strategy is to:

  1. Accept any valid CSV format
  2. Allow user to map their columns to our Transaction columns
  3. Once mapped and data is cleaned, we'll initiate an import that creates Transaction records using records and the mappings from Import

A note on inheritance

In the future, we will likely introduce different types of data imports. For example, "Transaction Import", "Account Import", "Category Import".

This initial implementation introduces a broad superclass, Import, and does not account for inheritance. My main reasoning is to avoid a premature implementation.

In this PR

  • A layout refactor (since we'll need another layout for this flow)
  • Basic import flow (happy path)
## Overview The overall strategy is to: 1. Accept any valid CSV format 2. Allow user to map their columns to our `Transaction` columns 3. Once mapped and data is cleaned, we'll initiate an import that creates `Transaction` records using records and the mappings from `Import` ### A note on inheritance In the future, we will _likely_ introduce different types of data imports. For example, "Transaction Import", "Account Import", "Category Import". This initial implementation introduces a broad superclass, `Import`, and does _not_ account for inheritance. My main reasoning is to avoid a premature implementation. ## In this PR - A layout refactor (since we'll need another layout for this flow) - Basic import flow (happy path)
Sign in to join this conversation.