01

Used in production

Built for a real recurring workflow, not only as a demo.

02

Bookkeeping focused

Designed around repeated structured entries that belong in a sheet.

03

Workflow improvement

Helped reduce repetitive manual typing and made the process easier to repeat.

Overview

A practical tool for repeated record entry

This project demonstrates how a lightweight Flask app can collect structured input and send it directly to Google Sheets through the Google Sheets API. It was useful because the workflow did not need a large custom system; it needed a fast, consistent way to enter the same kinds of bookkeeping records again and again.

The result is small enough to understand quickly, configurable enough to reuse, and focused enough to solve the actual problem without overbuilding.

Why it is useful

A small automation with a clear payoff

Less manual repetition

Common values are selected from configurable options instead of typed from scratch.

More consistent records

The guided flow keeps entries structured before they reach the spreadsheet.

Easy local setup

Sheet ids, OAuth files, labels, and options live in local configuration.

Simple to maintain

The stack is intentionally small: Flask routes, Google Sheets API calls, and tests.

Features

Focused implementation details

Flask-based input flow

Provides a compact web interface for collecting structured records.

Google Sheets API integration

Appends validated rows to a configured spreadsheet.

Configurable labels

Record types, targets, and option labels are editable locally.

Environment overrides

Important paths and ids can be supplied without changing source code.

pytest coverage

Core service behavior and the guided form flow are covered by tests.

Portfolio-safe demo

The public repository uses placeholders and generic examples only.

Architecture

Simple data flow

  1. User Input
  2. Flask App
  3. Record Review
  4. Google Sheets API
  5. Spreadsheet

Example output

Generic spreadsheet shape

Public repo notes

Configured locally

The public version contains placeholders and generic labels. Real spreadsheet ids, OAuth files, tokens, and workflow-specific labels are kept in local configuration files.

Tech stack

Tools used