Skip to content

The next generation of a AI-based toolbox designed for programmers. (Unfinished Project, to be continue)

License

Notifications You must be signed in to change notification settings

work7z/LafTools

Repository files navigation


LafTools - The next generation of a versatile toolbox designed for programmers

Note: This page is generated from LafTools internally.
English | 简体中文 | 繁體中文 | Deutsch | Español | Français | 日本語 | 한국어 | More

💡 Introduction

You may wonder why we are determined to develop this toolbox as there are numerous tools can be used on the Internet. Indeed, most tools we have provided can be easily found on the Internet, such as codec, formatter, translation, QR Code, etc… However, it is not the most comfortable and efficient approach to use these tools.

Have you ever met the below issues while using those online tools?

  • No Offline Accessibility.
  • No Global Dark Theme.
  • No Productive UI style.
  • Poor Network Performance.
  • Upsetting Advertisements.
  • Data Leakage Issue.

If the answer to any of the above is yes, then you should consider trying our toolbox. It offers the following features:

  • FOSS Forever
  • Lightweight Runtime
  • Full platform support(including ARMv8)
  • Full GPT-alike support
  • Highly integrated with productive UI
  • Available Docker Images and Portable Edition
  • Extra helpers such as notes, manuals, etc...

🌠 Preview

LafTools is still under development, its UI, dependencies or prerequisites may changed as needed.

Preview:

Online Preview

🍀 Getting Started

0. Refactoring

Recently, we are refactoring the architecture of LafTools based on next.js, below steps may changed as needed.

1. Setup System Environment

For the sake of simplicity, let's say that you've cloned this repository to either C:\Usersjerry\project\laftools-repo on Windows or /Users/jerry/projects/laftools-repo on Linux/MacOS, then you should declare env and set config below in your file ~/.bashrc, or simply execute them before running any command.

If you're using Windows OS, please ensure that all commands are executed in git-bash, learn more please refer to CONTRIBUTION. Apart from this, it is recommended to avoid using any whitespace or non-English characters in the file path where this project is located.

Env for Windows:

git config core.ignorecase false
export LAFTOOLS_ROOT="C:\users\jerry\project\laftools-repo"
export PATH=$PATH:$LAFTOOLS_ROOT\dev\source\windows-bin

Env for Linux/MacOS:

export LAFTOOLS_ROOT=/users/jerry/projects/laftools-repo

2. Launch Go Service (Refactoring)

To run Go service in terminal, you can execute below command:

go run ./core/app.go server

To debug Go service, we have configured it in VSCode, you can just follow below steps:

  1. Enter Visual Studio Code
  2. Click "Run and Debug" on your sidebar
  3. Click "Run" button.

3. Launch FrontEnd Module (Moved to web2)

# install required global library
npm i -g pnpm ts-node typescript

# install project deps
cd $LAFTOOLS_ROOT && pnpm install
cd $LAFTOOLS_ROOT/modules/web && pnpm install
cd $LAFTOOLS_ROOT/modules/purejs && pnpm install
cd $LAFTOOLS_ROOT/devtools/scripts/scan && pnpm install

npm run win-clean # It's for Windows Only, it will close all terminals and previous processes.

# run web service on terminal 1
npm run fe-web

# run CSS processor on terminal 2
npm run fe-css

# run extra jobs on terminal 3
npm run fe-extra

Note that you can use the '&' symbol for background execution if you don't want to alternatively run these commands in separate terminal instances.

4. Start Developing

Once the Go service is running, you should be able to see a link printed out in the terminal. Now, copy this URL and paste it into your browser to start developing, let's go!

Example:

-----------------------------------------------
PLEASE ACCESS THE LINK BELOW IN BROWSER.
请复制下方链接并在浏览器端打开(for zh-hans users)
請復製下方鏈接並在瀏覽器端打開(for zh-hant users)
http://127.0.0.1:35000/app/entry?t={YOUR_SECRET_ID}
-----------------------------------------------

5. Build

cd pipeline
./build-all.sh

🌱 What's with the name?

The Tools for Laffin' At Life

The name of this project is inspired by Laffin' At Life, a classic country song from 1987 by Chet Atkins that also has a special place in the author's heart.

Hopefully LafTools will make your daily tasks easier, reducing the need for overtime and helping you maintain a healthy work-life balance, let us just laffin' at life!

📑 Other Materials

Below are further materials that you can have a look if you'd like to learn more detail about this project:

💐 Icons

We would appreciate talent artists who provided below beautiful icons: Ide icons created by umartvurdu - Flaticon

🙏 Acknowledgements

This project would not have been possible without awesome open source projects which I would like to personally express my deepest gratitude to:

  1. Blueprint UI - a React-based UI toolkit.
  2. CyberChef - a web app for encryption, encoding, compression and data analysis.
  3. Lodash - a modern JavaScript utility library delivering modularity, performance, & extras.
  4. one-api - an OpenAI key management & redistribution system.

For sure, there are other open source projects that have benefited and facilitated this project, which I couldn't detail in this part; Without these projects and these talent developers' efforts, LafTools would not have been possible.

Thank you!

Ryan Laf
Feb. 2nd, 2023

🪪 License

This project is protected under the GNU Affero General Public License, please see the LICENSE file for more details.