An open API service indexing awesome lists of open source software.

https://github.com/mrjx-dev/mr-clock

Mr-Clock (Multi-Timezone Clock Application) A simple clock application that has a license key feature (this repo is for learning purposes)
https://github.com/mrjx-dev/mr-clock

custom-tkinter python python-gui-tkinter

Last synced: 3 months ago
JSON representation

Mr-Clock (Multi-Timezone Clock Application) A simple clock application that has a license key feature (this repo is for learning purposes)

Awesome Lists containing this project

README

        

# ๐Ÿ•’ Mr-Clock (Multi-Timezone Clock Application)

A simple and robust Python application that displays current time and date information across multiple timezones, featuring a license management system and modern UI. โšก



[![LinkedIn](https://img.shields.io/badge/-LinkedIn-0077B5?style=flat-square&logo=linkedin&logoColor=white)](https://www.linkedin.com/in/mrjxtr)
[![Upwork](https://img.shields.io/badge/-Upwork-6fda44?style=flat-square&logo=upwork&logoColor=white)](https://www.upwork.com/freelancers/~01f2fd0e74a0c5055a?mp_source=share)
[![Facebook](https://img.shields.io/badge/-Facebook-1877F2?style=flat-square&logo=facebook&logoColor=white)](https://www.facebook.com/mrjxtr)
[![Instagram](https://img.shields.io/badge/-Instagram-E4405F?style=flat-square&logo=instagram&logoColor=white)](https://www.instagram.com/mrjxtr)
[![Threads](https://img.shields.io/badge/-Threads-000000?style=flat-square&logo=threads&logoColor=white)](https://www.threads.net/@mrjxtr)
[![Twitter](https://img.shields.io/badge/-Twitter-1DA1F2?style=flat-square&logo=twitter&logoColor=white)](https://twitter.com/mrjxtr)
[![Gmail](https://img.shields.io/badge/-Gmail-D14836?style=flat-square&logo=gmail&logoColor=white)](mailto:[email protected])

## โœจ Features

### ๐ŸŽฏ Core Features

- โฐ Real-time display of local time and date
- ๐ŸŒŽ EST timezone display (licensed version)
- ๐ŸŽจ Modern, responsive UI using CustomTkinter
- โš™๏ธ Configurable time and date formats

### ๐Ÿ”‘ License Management

- โณ 30-day trial period with remaining days display
- ๐Ÿ”’ Secure machine-specific license activation
- ๐Ÿ“Š Multiple license states (Trial, Licensed, Expired, Invalid)
- ๐Ÿ›ก๏ธ Graceful error handling and user feedback

### ๐Ÿ–ฅ๏ธ User Interface

- ๐ŸŽฏ Clean and intuitive interface
- ๐Ÿ“ฑ Auto-adjusting window size
- โš ๏ธ Error message display with auto-dismiss
- ๐Ÿ“Œ Status indicators for license state
- โšก Responsive time updates

## ๐Ÿ“‹ Requirements

- ๐Ÿ Python 3.8 or higher
- ๐Ÿ’ป Operating System: Windows, macOS, or Linux

## ๐Ÿš€ Installation

1. Clone the repository:

```bash
git clone https://github.com/yourusername/multi-timezone-clock.git
cd multi-timezone-clock
```

2. Create and activate a virtual environment (recommended):

```bash
# Windows
python -m venv venv
.\venv\Scripts\activate

# macOS/Linux
python3 -m venv venv
source venv/bin/activate
```

3. Install required dependencies:

```bash
pip install -r requirements.txt
```

4. Set up environment variables (for license testing):

```bash
# Create .env file
echo "LICENSE_KEY=DEMO-123-456-789" > .env
```

## ๐Ÿ“– Usage

### ๐ŸŽฎ Running the Application

```bash
python src/main.py
```

### ๐Ÿ“ License States

1. **๐Ÿ”„ Trial Version**

- ๐Ÿ†• Automatically starts with a 30-day trial
- ๐Ÿ•’ Displays local time only
- โณ Shows remaining trial days
- ๐Ÿ”‘ Includes license activation option

2. **โœ… Licensed Version**

- ๐ŸŒŽ Displays both local and EST time
- ๐Ÿ”’ Machine-specific license validation
- โญ Permanent access to all features

3. **โŒ Expired/Invalid**
- ๐Ÿšซ Clear notification of license status
- ๐Ÿ”‘ Option to activate valid license
- ๐Ÿ›ก๏ธ Graceful degradation of functionality

### ๐Ÿ” License Activation

1. During trial period:

- ๐Ÿ–ฑ๏ธ Click the "Activate License" button
- โŒจ๏ธ Enter your license key
- โœ… System will validate and activate if valid

2. After expiration:
- ๐Ÿ”„ Use the activation interface on the expired notice
- ๐Ÿ”‘ Enter a valid license key to restore functionality

## ๐Ÿ“ Project Structure

```plaintext
multi-timezone-clock/
โ”œโ”€โ”€ src/
โ”‚ โ”œโ”€โ”€ main.py # Application entry point
โ”‚ โ”œโ”€โ”€ ui/
โ”‚ โ”‚ โ”œโ”€โ”€ app.py # Main application window
โ”‚ โ”‚ โ””โ”€โ”€ clock_display.py # Clock display components
โ”‚ โ””โ”€โ”€ utils/
โ”‚ โ””โ”€โ”€ license_manager.py # License management
โ”œโ”€โ”€ requirements.txt # Project dependencies
โ”œโ”€โ”€ .env # Environment variables (create this)
โ””โ”€โ”€ README.md # Project documentation
```

## ๐Ÿ› ๏ธ Development

### ๐Ÿงฉ Key Components

- ๐Ÿ–ฅ๏ธ `App`: Main application window and UI management
- โฐ `ClockDisplay`: Handles time display and timezone logic
- ๐ŸŽฏ `TimeFrame`: Individual time display component
- ๐Ÿ”‘ `LicenseManager`: License validation and trial management

### โš ๏ธ Error Handling

The application includes comprehensive error handling:

- ๐Ÿ›ก๏ธ Graceful degradation on errors
- ๐Ÿ’ฌ User-friendly error messages
- ๐Ÿ“ Logging of technical errors
- ๐Ÿ”„ Automatic recovery where possible

## ๐Ÿงช Testing

For testing the license system, use:

- ๐Ÿ”‘ Demo Key: `DEMO-123-456-789`
- ๐Ÿ”„ Test different states by modifying the trial start date in `license_data.json`

## ๐Ÿค Contributing

1. ๐Ÿ”€ Fork the repository
2. ๐ŸŒฟ Create a feature branch
3. โœ๏ธ Commit your changes
4. ๐Ÿš€ Push to the branch
5. ๐Ÿ“ฌ Create a Pull Request

## ๐Ÿ“œ License

This project is licensed under the MIT License - see the LICENSE file for details.

## ๐Ÿ™ Acknowledgments

- ๐ŸŽจ CustomTkinter for the modern UI components
- โฐ Python datetime and pytz for timezone management

## ๐Ÿ“ซ Let's Connect!

[![LinkedIn](https://img.shields.io/badge/-LinkedIn-0077B5?style=flat-square&logo=linkedin&logoColor=white)](https://www.linkedin.com/in/mrjxtr)
[![Upwork](https://img.shields.io/badge/-Upwork-6fda44?style=flat-square&logo=upwork&logoColor=white)](https://www.upwork.com/freelancers/~01f2fd0e74a0c5055a?mp_source=share)
[![Facebook](https://img.shields.io/badge/-Facebook-1877F2?style=flat-square&logo=facebook&logoColor=white)](https://www.facebook.com/mrjxtr)
[![Instagram](https://img.shields.io/badge/-Instagram-E4405F?style=flat-square&logo=instagram&logoColor=white)](https://www.instagram.com/mrjxtr)
[![Threads](https://img.shields.io/badge/-Threads-000000?style=flat-square&logo=threads&logoColor=white)](https://www.threads.net/@mrjxtr)
[![Twitter](https://img.shields.io/badge/-Twitter-1DA1F2?style=flat-square&logo=twitter&logoColor=white)](https://twitter.com/mrjxtr)
[![Gmail](https://img.shields.io/badge/-Gmail-D14836?style=flat-square&logo=gmail&logoColor=white)](mailto:[email protected])