Skip to content

Lucifer516-sudoer/clock

Repository files navigation

project-logo

CLOCK

Timekeeping Evolved, Readability Ensured

Developed with the software and tools below.

Poetry Python


Table of Contents

Overview

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.


Features

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.

Repository Structure

└── clock/
    ├── README.md
    ├── clock
    │   ├── __init__.py
    │   ├── api.py
    │   ├── app
    │   └── logger
    ├── poetry.lock
    ├── pyproject.toml
    └── tests
        └── __init__.py

Modules

pyproject.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.

Getting Started

System Requirements:

  • Python: version 3.12.4 The version I used to develop this.

Installation

From source

  1. Clone the clock repository:
git clone https://github.com/Lucifer516-sudoer/clock.git
  1. Change to the project directory:
$ cd clock
  1. Install the dependencies:
  • Using Poetry tool

poetry install

And yeah you need to google how to install poetry and stuffs.

Usage

From source

Run clock using the command below:

python -m clock.app.gui  # runs the flet program

Tests

Run the test suite using the command below:

pytest

Nothing would happen now since, I haven't written any tests for this yet

Project Roadmap

  • 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)

Contributing

Contributions are welcome! Here are several ways you can contribute:

  • Report Issues: Submit bugs found or log feature requests for the clock project.
Contributing Guidelines
  1. Fork the Repository: Start by forking the project repository to your local account.
  2. Clone Locally: Clone the forked repository to your local machine using a git client.
    git clone https://github.com/Lucifer516-sudoer/clock.git
  3. Create a New Branch: Always work on a new branch, giving it a descriptive name.
    git checkout -b new-feature-x
  4. Make Your Changes: Develop and test your changes locally.
  5. Commit Your Changes: Commit with a clear message describing your updates.
    git commit -m 'Implemented new feature x.'
  6. Push to local: Push the changes to your forked repository.
    git push origin new-feature-x
  7. Submit a Pull Request: Create a PR against the original project repository. Clearly describe the changes and their motivations.
  8. Review: Once your PR is reviewed and approved, it will be merged into the main branch. Congratulations on your contribution!
Contributor Graph


License

This project is protected under the MIT License License. For more details, refer to the LICENSE file.


Acknowledgments

  • Have used, some stuffs from the internet, and those stuffs are creditted to the rightful owners Return

About

Just a simple clock program

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages