Skip to content

fgalaf/sit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

24 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🐞 Java CLI Issue Tracker (Google Sheets–Backed)

A simple Java command-line application for tracking system issues, using Google Sheets as the persistent data store.

Think of it as a lightweight Jira β€” but living in a spreadsheet πŸ“Š.


✨ Features

The CLI supports the following operations:

βž• Create a New Issue

  • Description (required)
  • Parent Issue ID (optional)

πŸ”„ Update Issue Status

  • Issue ID (required)
  • Status (required)

Allowed status values:

  • OPEN
  • IN_PROGRESS
  • CLOSED

πŸ“„ List Issues by Status

  • Status (required)

    • OPEN
    • IN_PROGRESS
    • CLOSED

All issues are stored and managed inside a Google Spreadsheet.


πŸ“‹ Google Spreadsheet Structure

Your spreadsheet must contain a single sheet with the following columns in this exact order:

Column Name Description
ID Unique identifier (UUID or incremental ID)
Description Issue description
Parent ID Optional reference to another issue
Status OPEN / IN_PROGRESS / CLOSED
Created At Timestamp of creation
Updated At Timestamp of last update

βš™οΈ Running Prerequisites

Before running the application, a few setup steps are required.


πŸ” Google Sheets API Setup

1️⃣ Create a Google Cloud Project

  1. Visit console.cloud.google.com and sign in.
  2. Create a new project (the name doesn’t matter).

2️⃣ Enable Required APIs

From the left sidebar:

  1. Open API Library

  2. Enable:

    • Google Sheets API

3️⃣ Configure OAuth Credentials

  1. Navigate to APIs & Services β†’ Credentials

  2. Click Create Credentials β†’ OAuth client ID

  3. If prompted, configure the Consent Screen:

    • Use your email
    • Fill required fields only
  4. Choose Desktop App as the application type

  5. Download the credentials file and rename it to:

credentials.json
  1. Move the file to:
src/main/resources/credentials.json

4️⃣ Add Yourself as a Test User

  1. In OAuth settings, open the Audience tab
  2. Add your email under Test Users

This allows your account to access Google Sheets during development.


5️⃣ Update Redirect URI

Open credentials.json and update:

"redirect_uris": [
  "http://localhost:8080"
]

πŸ“Š Creating a Valid Google Spreadsheet

  1. Create a new Google Spreadsheet
  2. Set up the columns exactly as shown below
Spreadsheet structure

Important Notes

  • Column names must match exactly
  • Column order must not change
  • Remember the sheet name (highlighted in red)

This value will be used for the environment variable:

SHEET_NAME

Required Spreadsheet Environment Variables

Variable Name Description Example
SHEET_NAME Sheet name Issue Data
SPREADSHEET_RANGE Column range (⚠️ ! required) !A1:F
SPREADSHEET_ID Spreadsheet ID from URL 1AbC...

πŸ“Œ The Spreadsheet ID can be copied from url:

https://docs.google.com/spreadsheets/d/<SPREADSHEET_ID>/edit

πŸš€ Running with Docker

The application is distributed as a Docker image β€” no local Java installation required.


Prerequisites

  • Docker installed
  • Google Spreadsheet created
  • Google Cloud credentials configured

Build Image

docker build -t system-issue-tracker .

Run Container

Make sure the spreadsheet setup is complete:

➑️ Creating valid google spreadsheet

docker run -it \
  -p 8080:8080 \
  -e SPREADSHEET_ID=<your_spreadsheet_id> \
  -e SHEET_NAME=<your_sheet_name> \
  -e SPREADSHEET_RANGE=<your_sheet_range> \
  system-issue-tracker

Once running, the CLI will prompt you to create, update, or list issues. Type anything to receive information about program usage.


πŸ–₯️ Available CLI Commands

The application is fully interactive and supports the following commands:


βž• Create Issue

Create a new issue with a description and an optional parent issue.

create -p <parent_id> -d <description>
  • -d <description> β€” required, issue description
  • -p <parent_id> β€” optional, links the issue to a parent

Example:

create -d "Login button not working"
create -p dc092f2b-4cd7-4d6b-a125-d2c62913afdc -d "OAuth callback fails"

πŸ”„ Update Issue Status

Update the status of an existing issue.

update <issue_id> <status>

Example:

update dc092f2b-4cd7-4d6b-a125-d2c62913afdc IN_PROGRESS

πŸ“„ List Issues by Status

Display all issues matching the given status.

list <status>

Example:

list OPEN

πŸšͺ Exit Application

Exit the CLI application.

exit

βœ… Valid Status Values

The following status values are supported:

  • OPEN
  • IN_PROGRESS
  • CLOSED

🧠 Notes

  • Issue IDs are generated automatically
  • Updated At is refreshed on status change
  • Parent issues can be used for subtasks or dependencies

Happy tracking! πŸ›πŸ“Š

About

System Issue Tracker - CLI Application used to track system issues in Google Spreadsheet.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors