← Back to CS Projects

SmartTodo

A cross-platform desktop to-do list application that intelligently prioritizes tasks based on deadlines, urgency, and user-defined categories.

View GitHub Repository

What problem this solves

Traditional to-do apps treat all tasks equally, making it hard to focus on what actually matters. SmartTodo automatically surfaces urgent and deadline-driven tasks while keeping everything organized by category. It eliminates the mental overhead of constantly re-prioritizing your task list.

Features

Technical overview

SmartTodo is built with Electron, which separates the application into two processes: the main process (Node.js backend) handles window management and system integration, while the renderer process (web frontend) manages the UI and user interactions. This architecture allows the app to feel native while leveraging web technologies.

Task data is persisted locally using the browser's localStorage API, ensuring all your tasks remain available even after closing the application. The prioritization algorithm runs client-side, providing instant updates as deadlines approach or tasks are modified.

Key product + technical decisions

Challenges & learnings

Building a desktop app with Electron required understanding the main/renderer process communication model, which was initially unfamiliar. Managing state persistence across app restarts while maintaining performance taught me the importance of efficient data structures for real-time sorting and filtering.

The biggest learning was balancing feature richness with simplicity. Early versions had too many configuration options, which overwhelmed users. Simplifying to automatic prioritization with minimal settings made the app more approachable while still being powerful.

Tech stack

Electron JavaScript HTML/CSS localStorage API Node.js