Shoile
Back to Projects

Reminder CLI App

Python Reminder CLI App

Python
Datetime
CLI
Reminder CLI App

Project Overview

A modular Python CLI app that allows users to set reminders in 12-hour format and receive notifications between 5 to 30 minutes in advance. Built using match-case for clean input handling and `datetime`, `time`, and `timedelta` for timing logic. Includes dynamic user interaction, modular codebase for different intervals, and upcoming email alert support.

Challenges
Key technical challenges addressed in this project
  • Handling time calculations and conversions accurately
  • Creating a user-friendly CLI interface
  • Implementing flexible reminder intervals
  • Managing background notification processes
Solutions
How these challenges were overcome
  • Used Python's datetime library for precise time handling
  • Implemented a clean CLI with clear prompts and error handling
  • Created a modular design for different reminder intervals
  • Used threading for background notification processes

Technology Stack

Python

Primary programming language

Proficiency90%

Datetime

Time handling library

Proficiency85%

Argparse

Command-line argument parsing

Proficiency80%

Threading

Concurrent execution

Proficiency75%

Colorama

Terminal text styling

Proficiency70%

PyInstaller

Executable packaging

Proficiency65%

Project Metrics

850

Lines of Code

Total codebase size

8.5MB

Memory Usage

Runtime memory footprint

100%

Time Accuracy

Reminder timing precision

12

Commands

Available CLI commands

Development Timeline

Concept Development
February 2024

Initial idea and planning

Core Functionality
March 2024

Basic reminder functionality

CLI Interface
March 2024

User-friendly command-line interface

Notification System
April 2024

Alert delivery mechanism

Packaging & Distribution
May 2024

Creating executable versions

System Architecture

CLI Interface

Handles user input and command processing

Time Calculator

Manages time conversions and calculations

Reminder Manager

Stores and tracks active reminders

Notification Service

Delivers reminder notifications to the user

System Architecture Diagram

System Architecture Diagram: Visual representation of the project's components and data flow

Performance Metrics

Accuracy
100% time calculation accuracy
Memory Usage
Minimal footprint (<10MB)
Extensibility
Easily extendable for new features
User Experience
Simple and intuitive interface