Skip to content

Commit

Permalink
Merge pull request #18 from kartik-212004/feature/readme-improvements (
Browse files Browse the repository at this point in the history
…closes #15)

updated README.md
  • Loading branch information
iamDyeus authored Oct 25, 2024
2 parents 3c0c5dc + ac6850d commit 74c0a26
Showing 1 changed file with 53 additions and 39 deletions.
92 changes: 53 additions & 39 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,68 +1,69 @@
<div align="center">

<!-- # `tkreload` -->
![TkReload-Logo](https://github.com/iamDyeus/tkreload/blob/main/.assets/logo/svg/logo_light.svg?raw=true)
# ![TkReload-Logo](https://github.com/iamDyeus/tkreload/blob/main/.assets/logo/svg/logo_light.svg?raw=true)

![Static Badge](https://img.shields.io/badge/pip_install-tkreload-purple)
<br />
![Static Badge](https://img.shields.io/badge/Language-Python-red)
![GitHub last commit](https://img.shields.io/github/last-commit/iamDyeus/tkreload)

<p class="align center">
<h4><code>tkreload</code> is an open-source tool for automatically reloading terminal-based Python applications, saving developers valuable time.</h4>
<h3>
<code>tkreload</code> | Automated Tkinter App Reloading for a Smoother Development Workflow
</h3>

<p align="center">
Effortlessly reload Tkinter-based Python applications in the terminal, saving valuable development time.
</p>

[Installation](#installation)
[Usage](#usage)
[Contributing](#contributing)
[Testing](#testing)
[License](#license)
[Installation](#installation)[Usage](#usage)[Features](#features)[Testing](#testing)[Contributing](#contributing)[License](#license)

</div>

# Problem Statement
Developers often lose significant time manually restarting terminal applications during development. This process can be tedious and time-consuming, especially when working on complex projects that require frequent updates and testing.
---

## 🚀 Problem Statement

For developers, frequent manual restarts of terminal applications during development can add up quickly, especially in complex Tkinter projects that require regular updates. `tkreload` provides a solution to this by automating the reload process, resulting in significant time savings.

### ⏳ Estimated Time Saved with tkreload

Imagine restarting your terminal application **15 times daily**, with each reload taking **30 seconds**. That’s approximately **7.5 minutes daily** or about **3 hours per month**. `tkreload` helps avoid this productivity drain.

# Time-Saving Analysis
Let’s assume that a developer restarts their terminal application approximately 15 times per day, and each reload takes 30 seconds. This adds up to 7.5 minutes daily or around 3.12 hours per month. Multiply that by the number of developers working on a project, and you quickly see how terminal reloading becomes a significant bottleneck in development productivity.
---

# Solution: tkreload
tkreload solves this issue by providing an automatic reload mechanism for terminal-based Python applications, particularly those using Tkinter. It eliminates the need for manual restarts, saving developers hours of time and streamlining the debugging process.
## 🔍 Solution Overview

## Without tkreload
`tkreload` automates reloading for terminal-based Python applications, designed specifically for **Tkinter**. By eliminating the need for manual restarts, it streamlines the development process, saving developers valuable time and enhancing productivity.

**Without tkreload:**
![Without tkreload](https://github.com/iamDyeus/tkreload/blob/main/.assets/without.gif?raw=true)

## With tkreload
**With tkreload:**
![With tkreload](https://github.com/iamDyeus/tkreload/blob/main/.assets/with.gif?raw=true)

# Getting Started
---

## 🛠️ Getting Started

## Prerequisites
- Python 3.9+
- pip
### Prerequisites
- **Python** 3.9+
- **pip** for dependency management

## Installation
### Installation

1. Clone the repository:
#### 1. Clone the Repository
```sh
git clone https://github.com/iamDyeus/tkreload.git
cd tkreload
```

2. Create and activate a virtual environment:
#### 2. Create and activate a virtual environment:
```sh
python -m venv venv
source venv/bin/activate # On Windows, use `venv\Scripts\activate`
```

3. Install the required dependencies:
3. Install tkreload (in editable mode):
```sh
pip install -r requirements.txt
```

4. Install tkreload:
```sh
pip install .
pip install -e.[test]
```

# Usage
Expand All @@ -75,15 +76,28 @@ tkreload your_app.py

Now, whenever you save changes to your script, tkreload will automatically reload your application.

## 🌟 Features

- **Automatic Reloading:** Automatically restarts Tkinter apps upon file changes.
- **Command-Based Control:**
- **`H`:** View help commands
- **`R`:** Restart the application
- **`A`:** Toggle auto-reload
- **`Ctrl + C`:** Exit the application
- **Real-Time Feedback:** Uses `rich` for styled console feedback and progress indicators.



## Testing
Ensuring the functionality and reliability of tkreload is crucial. Follow these steps to run the test suite for the project:
1. Install Testing Dependencies
Before running the tests, install the required dependencies (e.g., pytest). You can do this by installing the packages listed in the requirements.txt file.
2. Running Tests
Navigate to the root directory of the project (`tkreload`) and run the tests using `pytest` with the following command:
To verify tkreload functionality, follow these steps:

1.Install Testing Dependencies: Make sure all testing libraries are installed as per the requirements.txt file.

2.Run Tests Using Pytest
```bash
pytest .
pytest -v
```
This will run the test suite and confirm tkreload is working as expected.

# Contributing

Expand Down

0 comments on commit 74c0a26

Please sign in to comment.