Timekeeping Evolved, Readability Ensured
Developed with the software and tools below.
Table of Contents
Clock is an open-source timekeeping application written in Python, leveraging libraries like Arrow, Rich, Flet, and PyInstaller for precise timing and user-friendly interfaces. The project empowers efficient project management by offering customizable loggers for debugging purposes and providing a seamless development, installation, and deployment experience with tools such as Poetry and Python. The core functionality revolves around creating an intuitive graphical user interface for timekeeping, including theme switching, date-time updates, and about information display. The flexible logging solution ensures enhanced output readability and maintains compatibility with the standard Python logging module. Overall, Clock offers a robust, easy-to-use, and customizable timekeeping solution that caters to a wide range of user requirements.
| Feature | Description |
|---|---|
| ⚙️ Architecture | Uses Python as the programming language with dependency management via Poetry, pyproject.toml, and a structured project layout for easy deployment. |
| 🔩 Code Quality | Consistent code style using Rich for output formatting and adheres to the conventions of Arrow library. |
| 📄 Documentation | Well-documented with explanations in corresponding Python files for ease of understanding project functionality. |
| 🔌 Integrations | Leverages the open-source UI development library, Flet. |
| 🧩 Modularity | Modular architecture with distinct files for different functionalities like API implementation, logging, and user interface. |
| 🧪 Testing | Not explicitly stated in the given codebase details. |
| ⚡️ Performance | Utilizes efficient libraries such as Arrow for date-time operations; scalability unknown at this time due to limited data. |
| 🛡️ Security | Access controls managed by default Python permissions, but no specific encryption or authentication measures provided in codebase shown. |
| 📦 Dependencies | Uses various dependencies such as Python, pyproject.toml, Flet, Rich, Lock, and external packages specified in the repository. |
└── clock/
├── README.md
├── clock
│ ├── __init__.py
│ ├── api.py
│ ├── app
│ └── logger
├── poetry.lock
├── pyproject.toml
└── tests
└── __init__.pypyproject.toml
| File | Summary |
|---|---|
| pyproject.toml | Empowers efficient project management by providing a well-structured architecture for clock, an open-source timekeeping application. This file, pyproject.toml, facilitates easy dependency management and builds with tools like Poetry, PyInstaller, Python, Arrow, Rich, and Flet. It sets the foundation for a seamless development and installation experience. |
clock
| File | Summary |
|---|---|
| api.py | This Python class provides logging facilities while utilizing the Arrow library for precise date-time handling. Enhances the Clock API architecture by enabling customizable timezone settings." |
clock.logger
| File | Summary |
|---|---|
| _custom_handler.py | Empower your log management within this clock repository by introducing customizable console and file logging with the RichLogger module. The module features RichConsoleHandler for formatted console logs and RichFileHandler to output rich-formatted entries into a specified file. This flexible logging solution enhances the readability of your app's output while maintaining compatibility with the standard Python logging module. |
| logger.py | Includes customizable loggers for clock", flet, and flet_core.Implements RichConsoleHandler and RichFileHandler to enhance output readability.Provides a way to configure loggers, ensuring flexible handlers management. |
clock.app.gui
| File | Summary |
|---|---|
__main__.py |
The provided Python script clock/app/gui/__main__.py serves as the entrypoint for the graphical user interface (GUI) of our clock repository, automatically executing when python-m clock.app.gui is invoked. This script launches the applications main instance through from clock.app.gui.main import run and initiates its execution with the run() function call. Essentially, this file orchestrates the deployment of our apps visual components on the user's screen for easy timekeeping. |
| main.py | Updates the date-time in the specified UserControl by setting it and refreshing the screen.Sets up loggers to enable debugging for the app and flet libraries.Creates a clock user interface with theme switching and about information display features.Builds and runs the Flet application using the provided main function, which displays the date-time. |
System Requirements:
- Python:
version 3.12.4The version I used to develop this.
- Clone the clock repository:
git clone https://github.com/Lucifer516-sudoer/clock.git
- Change to the project directory:
$ cd clock
- Install the dependencies:
poetry install
And yeah you need to google how to install poetry and stuffs.
Run clock using the command below:
python -m clock.app.gui # runs the flet program
Run the test suite using the command below:
pytest
- Create a skeletal boredom clock
- Add Stop watch functionality
- Add Timer Functionality
- Create a world clock (I guess)
- Modify the UI
- Think about the packaging and stuffs (Not even thinking about it now)
Contributions are welcome! Here are several ways you can contribute:
- Report Issues: Submit bugs found or log feature requests for the
clockproject.
- Join the Discussions: Share your insights, provide feedback, or ask questions.
Contributing Guidelines
- Fork the Repository: Start by forking the project repository to your local account.
- Clone Locally: Clone the forked repository to your local machine using a git client.
git clone https://github.com/Lucifer516-sudoer/clock.git
- Create a New Branch: Always work on a new branch, giving it a descriptive name.
git checkout -b new-feature-x
- Make Your Changes: Develop and test your changes locally.
- Commit Your Changes: Commit with a clear message describing your updates.
git commit -m 'Implemented new feature x.' - Push to local: Push the changes to your forked repository.
git push origin new-feature-x
- Submit a Pull Request: Create a PR against the original project repository. Clearly describe the changes and their motivations.
- Review: Once your PR is reviewed and approved, it will be merged into the main branch. Congratulations on your contribution!
This project is protected under the MIT License License. For more details, refer to the LICENSE file.
- Have used, some stuffs from the internet, and those stuffs are creditted to the rightful owners Return