Skip to content

schak04/priorify

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

154 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Priorify

C++ SQLite CMake Bash Linux

Priorify is a priority-based task manager built in C++, focused on performance, simplicity, and productivity.
What started as a basic console app has evolved into a modern, keyboard-driven Terminal User Interface (TUI) tailored for terminal-heavy workflows.


Vision

This project is designed to be:

  • Fast: Minimal overhead with in-memory caching and instant operations.
  • Keyboard-First: No mouse needed, fully optimised for Vim-style (h/j/k/l) and standard navigation.
  • Focused: Prioritisation over clutter.
  • Native to Programmers: Created for programmers who enjoy being in the terminal.

Through this project, I intend to improve the way I track my tasks, solving a personal productivity problem, and I hope it helps others too.


Features (v2.0.0)

  • Modern TUI
  • Vim-like Navigation: h/j/k/l
  • Custom pill toggles for selecting task status and priority.
  • Task Management: Add, update, complete, and delete (and clear all) tasks instantly.
  • Visual Feedback: Colour-coded priority bars and active-state highlights.
  • Persistent Storage: SQLite database safely stores all task data.
  • Performance Optimised: In-memory caching minimises database polling.

Technologies Used

  • Language: C++
  • Database: SQLite3
  • TUI Framework: FTXUI
  • Build System: CMake
  • Build Automation: Bash Scripting

Usage Instructions

Prerequisites

  • CMake
  • A C++ compiler supporting C++20 or higher

On Linux, macOS, and Unix-like Systems

1. Clone the Repository

git clone https://github.com/schak04/priorify.git
cd priorify

2. Build the Project

chmod +x scripts/build.sh
./scripts/build.sh

3. Run the App

Always run the executable from the project root to ensure the database path (data/tasks.db) resolves correctly.

./bin/priorify

Keybindings Guide

  • a: Add a new task
  • e: Edit selected task
  • d: Delete selected task (requires confirmation)
  • D: Clear all tasks (requires confirmation)
  • c: Toggle completion status
  • j/k or Up/Down: Navigate lists and form fields
  • h/l or Left/Right: Cycle through radio options or should I say... pills (Status/Priority)
  • Enter: Save / Confirm
  • q/Esc: Quit the app when in the dashboard
  • Esc: Return to the dashboard when inside the add/edit-task screens or delete/clear-all confirmation screens

Note

The app is not available for Windows yet.


System Design

High-Level Design

  • System Architecture:
    System Architecture

  • UML Use Case Diagram:
    UML Use Case Diagram

Low-Level Design

  • Sequence Diagram:
    Sequence Diagram

Author

© 2025-2026 Saptaparno Chakraborty.
All rights reserved.