{"id":24649509,"url":"https://github.com/mrjx-dev/mr-clock","last_synced_at":"2025-03-20T18:49:56.313Z","repository":{"id":271909650,"uuid":"911049227","full_name":"mrjx-dev/mr-clock","owner":"mrjx-dev","description":"Mr-Clock (Multi-Timezone Clock Application) A simple clock application that has a license key feature (this repo is for learning purposes)","archived":false,"fork":false,"pushed_at":"2025-01-10T16:59:07.000Z","size":17,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-01-25T17:17:14.660Z","etag":null,"topics":["custom-tkinter","python","python-gui-tkinter"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mrjx-dev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-01-02T06:05:06.000Z","updated_at":"2025-01-10T16:59:10.000Z","dependencies_parsed_at":"2025-01-10T17:42:31.839Z","dependency_job_id":"5e2d65ab-3b87-4b38-ab84-1e59878cb6af","html_url":"https://github.com/mrjx-dev/mr-clock","commit_stats":null,"previous_names":["mrjx-dev/mr-clock"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrjx-dev%2Fmr-clock","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrjx-dev%2Fmr-clock/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrjx-dev%2Fmr-clock/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrjx-dev%2Fmr-clock/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mrjx-dev","download_url":"https://codeload.github.com/mrjx-dev/mr-clock/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244675614,"owners_count":20491824,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["custom-tkinter","python","python-gui-tkinter"],"created_at":"2025-01-25T17:17:21.429Z","updated_at":"2025-03-20T18:49:56.284Z","avatar_url":"https://github.com/mrjx-dev.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🕒 Mr-Clock (Multi-Timezone Clock Application)\n\nA simple and robust Python application that displays current time and date information across multiple timezones, featuring a license management system and modern UI. ⚡\n\n\u003cdiv align=\"center\"\u003e\n  \n  [![LinkedIn](https://img.shields.io/badge/-LinkedIn-0077B5?style=flat-square\u0026logo=linkedin\u0026logoColor=white)](https://www.linkedin.com/in/mrjxtr)\n  [![Upwork](https://img.shields.io/badge/-Upwork-6fda44?style=flat-square\u0026logo=upwork\u0026logoColor=white)](https://www.upwork.com/freelancers/~01f2fd0e74a0c5055a?mp_source=share)\n  [![Facebook](https://img.shields.io/badge/-Facebook-1877F2?style=flat-square\u0026logo=facebook\u0026logoColor=white)](https://www.facebook.com/mrjxtr)\n  [![Instagram](https://img.shields.io/badge/-Instagram-E4405F?style=flat-square\u0026logo=instagram\u0026logoColor=white)](https://www.instagram.com/mrjxtr)\n  [![Threads](https://img.shields.io/badge/-Threads-000000?style=flat-square\u0026logo=threads\u0026logoColor=white)](https://www.threads.net/@mrjxtr)\n  [![Twitter](https://img.shields.io/badge/-Twitter-1DA1F2?style=flat-square\u0026logo=twitter\u0026logoColor=white)](https://twitter.com/mrjxtr)\n  [![Gmail](https://img.shields.io/badge/-Gmail-D14836?style=flat-square\u0026logo=gmail\u0026logoColor=white)](mailto:mr.jesterlumacad@gmail.com)\n\n\u003c/div\u003e\n\n## ✨ Features\n\n### 🎯 Core Features\n\n- ⏰ Real-time display of local time and date\n- 🌎 EST timezone display (licensed version)\n- 🎨 Modern, responsive UI using CustomTkinter\n- ⚙️ Configurable time and date formats\n\n### 🔑 License Management\n\n- ⏳ 30-day trial period with remaining days display\n- 🔒 Secure machine-specific license activation\n- 📊 Multiple license states (Trial, Licensed, Expired, Invalid)\n- 🛡️ Graceful error handling and user feedback\n\n### 🖥️ User Interface\n\n- 🎯 Clean and intuitive interface\n- 📱 Auto-adjusting window size\n- ⚠️ Error message display with auto-dismiss\n- 📌 Status indicators for license state\n- ⚡ Responsive time updates\n\n## 📋 Requirements\n\n- 🐍 Python 3.8 or higher\n- 💻 Operating System: Windows, macOS, or Linux\n\n## 🚀 Installation\n\n1. Clone the repository:\n\n   ```bash\n   git clone https://github.com/yourusername/multi-timezone-clock.git\n   cd multi-timezone-clock\n   ```\n\n2. Create and activate a virtual environment (recommended):\n\n   ```bash\n   # Windows\n   python -m venv venv\n   .\\venv\\Scripts\\activate\n\n   # macOS/Linux\n   python3 -m venv venv\n   source venv/bin/activate\n   ```\n\n3. Install required dependencies:\n\n   ```bash\n   pip install -r requirements.txt\n   ```\n\n4. Set up environment variables (for license testing):\n\n   ```bash\n   # Create .env file\n   echo \"LICENSE_KEY=DEMO-123-456-789\" \u003e .env\n   ```\n\n## 📖 Usage\n\n### 🎮 Running the Application\n\n```bash\npython src/main.py\n```\n\n### 📝 License States\n\n1. **🔄 Trial Version**\n\n   - 🆕 Automatically starts with a 30-day trial\n   - 🕒 Displays local time only\n   - ⏳ Shows remaining trial days\n   - 🔑 Includes license activation option\n\n2. **✅ Licensed Version**\n\n   - 🌎 Displays both local and EST time\n   - 🔒 Machine-specific license validation\n   - ⭐ Permanent access to all features\n\n3. **❌ Expired/Invalid**\n   - 🚫 Clear notification of license status\n   - 🔑 Option to activate valid license\n   - 🛡️ Graceful degradation of functionality\n\n### 🔐 License Activation\n\n1. During trial period:\n\n   - 🖱️ Click the \"Activate License\" button\n   - ⌨️ Enter your license key\n   - ✅ System will validate and activate if valid\n\n2. After expiration:\n   - 🔄 Use the activation interface on the expired notice\n   - 🔑 Enter a valid license key to restore functionality\n\n## 📁 Project Structure\n\n```plaintext\nmulti-timezone-clock/\n├── src/\n│   ├── main.py           # Application entry point\n│   ├── ui/\n│   │   ├── app.py        # Main application window\n│   │   └── clock_display.py  # Clock display components\n│   └── utils/\n│       └── license_manager.py  # License management\n├── requirements.txt      # Project dependencies\n├── .env                 # Environment variables (create this)\n└── README.md           # Project documentation\n```\n\n## 🛠️ Development\n\n### 🧩 Key Components\n\n- 🖥️ `App`: Main application window and UI management\n- ⏰ `ClockDisplay`: Handles time display and timezone logic\n- 🎯 `TimeFrame`: Individual time display component\n- 🔑 `LicenseManager`: License validation and trial management\n\n### ⚠️ Error Handling\n\nThe application includes comprehensive error handling:\n\n- 🛡️ Graceful degradation on errors\n- 💬 User-friendly error messages\n- 📝 Logging of technical errors\n- 🔄 Automatic recovery where possible\n\n## 🧪 Testing\n\nFor testing the license system, use:\n\n- 🔑 Demo Key: `DEMO-123-456-789`\n- 🔄 Test different states by modifying the trial start date in `license_data.json`\n\n## 🤝 Contributing\n\n1. 🔀 Fork the repository\n2. 🌿 Create a feature branch\n3. ✍️ Commit your changes\n4. 🚀 Push to the branch\n5. 📬 Create a Pull Request\n\n## 📜 License\n\nThis project is licensed under the MIT License - see the LICENSE file for details.\n\n## 🙏 Acknowledgments\n\n- 🎨 CustomTkinter for the modern UI components\n- ⏰ Python datetime and pytz for timezone management\n\n## 📫 Let's Connect!\n\n[![LinkedIn](https://img.shields.io/badge/-LinkedIn-0077B5?style=flat-square\u0026logo=linkedin\u0026logoColor=white)](https://www.linkedin.com/in/mrjxtr)\n[![Upwork](https://img.shields.io/badge/-Upwork-6fda44?style=flat-square\u0026logo=upwork\u0026logoColor=white)](https://www.upwork.com/freelancers/~01f2fd0e74a0c5055a?mp_source=share)\n[![Facebook](https://img.shields.io/badge/-Facebook-1877F2?style=flat-square\u0026logo=facebook\u0026logoColor=white)](https://www.facebook.com/mrjxtr)\n[![Instagram](https://img.shields.io/badge/-Instagram-E4405F?style=flat-square\u0026logo=instagram\u0026logoColor=white)](https://www.instagram.com/mrjxtr)\n[![Threads](https://img.shields.io/badge/-Threads-000000?style=flat-square\u0026logo=threads\u0026logoColor=white)](https://www.threads.net/@mrjxtr)\n[![Twitter](https://img.shields.io/badge/-Twitter-1DA1F2?style=flat-square\u0026logo=twitter\u0026logoColor=white)](https://twitter.com/mrjxtr)\n[![Gmail](https://img.shields.io/badge/-Gmail-D14836?style=flat-square\u0026logo=gmail\u0026logoColor=white)](mailto:mr.jesterlumacad@gmail.com)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmrjx-dev%2Fmr-clock","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmrjx-dev%2Fmr-clock","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmrjx-dev%2Fmr-clock/lists"}