# TagStudio (Preview/Alpha): A User-Focused Document Management System
<p align="center">
<img width="60%" src="github_header.png">
</p>
> [!CAUTION]
> This is still a **_very_** rough personal project of mine in its infancy. I’m open-sourcing it now in order to accept contributors sooner and to better facilitate the direction of the project from an earlier stage.
> There **_are_** bugs, and there will **_very likely_** be breaking changes!
TagStudio is a photo & file organization application with an underlying system that focuses on giving freedom and flexibility to the user. No proprietary programs or formats, no sea of sidecar files, and no complete upheaval of your filesystem structure.
<p align="center">
<img width="80%" src="screenshot.jpg">
</p>
## Contents
- [Goals](#goals)
- [Priorities](#priorities)
- [Current Features](#current-features)
- [Installation](#installation)
- [Usage](#usage)
- [FAQ](#faq)
## Goals
- To achieve a portable, privacy-oriented, open, extensible, and feature-rich system of organizing and rediscovering files.
- To provide powerful methods for organization, notably the concept of tag composition, or “taggable tags”.
- To create an implementation of such a system that is resilient against a user’s actions outside the program (modifying, moving, or renaming files) while also not burdening the user with mandatory sidecar files or otherwise requiring them to change their existing file structures and workflows.
- To support a wide range of users spanning across different platforms, multi-user setups, and those with large (several terabyte) libraries.
- To make the darn thing look like nice, too. It’s 2024, not 1994.
## Priorities
1. **The concept.** Even if TagStudio as a project or application fails, I’d hope that the idea lives on in a superior project. The [goals](#goals) outlined above don’t reference TagStudio once - _TagStudio_ is what references the _goals._
2. **The system.** Frontends and implementations can vary, as they should. The core underlying metadata management system is what should be interoperable between different frontends, programs, and operating systems. A standard implementation for this should settle as development continues. This opens up the doors for improved and varied clients, integration with third-party applications, and more.
3. **The application.** If nothing else, TagStudio the application serves as the first (and so far only) implementation for this system of metadata management. This has the responsibility of doing the idea justice and showing just what’s possible when it comes to user file management.
4. (The name.) I think it’s fine for an app or client, but it doesn’t really make sense for a system or standard. I suppose this will evolve with time.
## Current Features
- Create libraries/vaults centered around a system directory. Libraries contain a series of entries: the representations of your files combined with metadata fields. Each entry represents a file in your library’s directory, and is linked to its location.
- Add metadata to your library entries, including:
- Name, Author, Artist (Single-Line Text Fields)
- Description, Notes (Multiline Text Fields)
- Tags, Meta Tags, Content Tags (Tag Boxes)
- Create rich tags composed of a name, a list of aliases, and a list of “subtags” - being tags in which these tags inherit values from.
- Search for entries based on tags, metadata, or filename (using `filename: <query>`)
- Special search conditions for entries that are: `untagged`/`no tags` and `empty`/`no fields`.
> [!NOTE]
> For more information on the project itself, please see the [FAQ](#faq) section and other docs.
## Installation
> [!CAUTION]
> TagStudio is only currently verified to work on Windows. I've run into issues with the Qt code running on Linux, but I don't know how severe these issues are. There's also likely bugs regarding filenames and portability of the databases across different OSes.
### Prerequisites
- Python 3.12
### Creating the Virtual Environment
*Skip this step if launching from the .sh script on Linux.*
1. In the root repository directory, create a python virtual environment:
`python3 -m venv .venv`
2. Activate your environment:
- Windows w/Powershell: `.venv\Scripts\Activate.ps1`
- Windows w/Command Prompt: `.venv\Scripts\activate.bat`
- Linux/macOS: `source .venv/bin/activate`
3. Install the required packages:
`pip install -r requirements.txt`
_Learn more about setting up a virtual environment [here](https://docs.python.org/3/tutorial/venv.html)._
### Launching
> [!NOTE]
> Depending on your system, Python may be called `python`, `py`, `python3`, or `py3`. These instructions use the alias `python3`.
#### Optional Arguments
> `--open <path>` / `-o <path>`
> Path to a TagStudio Library folder to open on start.
#### Windows
To launch TagStudio, launch the `start_win.bat` file. You can modify this .bat file or create a shortcut and add one or more additional arguments if desired.
Alternatively, with the virtual environment loaded, run the python file at `tagstudio\tag_studio.py` from your terminal. If you're in the project's root directory, simply run `python3 tagstudio/tag_studio.py`.
> [!CAUTION]
> TagStudio on Linux & macOS likely won't function correctly at this time. If you're trying to run this in order to help test, debug, and improve compatibility, then charge on ahead!
#### macOS
With the virtual environment loaded, run the python file at "tagstudio/tag_studio.py" from your terminal. If you're in the project's root directory, simply run `python3 tagstudio/tag_studio.py`. When launching the program in the future, remember to activate the virtual environment each time before launching *(an easier method is currently being worked on).*
#### Linux
Run the "TagStudio.sh" script, and the program should launch! (Make sure that the script is marked as executable). Note that launching from the script from outside of a terminal will not launch a terminal window with any debug or crash information. If you wish to see this information, just launch the shell script directly from your terminal with `sh TagStudio.sh`.
##### NixOS
Use the provided `flake.nix` file to create and enter a working environment by running `nix develop`. Then, run the above `TagStudio.sh` script.
## Usage
### Creating/Opening a Library
With TagStudio opened, start by creating a new library or opening an existing one using File -> Open/Create Library from the menu bar. TagStudio will automatically create a new library from the chosen directory if one does not already exist. Upon creating a new library, TagStudio will automatically scan your folders for files and add those to your library (no files are moved during this process!).
### Refreshing the Library
In order to scan for new files or file changes, you’ll need to manually go to File -> Refresh Directories.
> [!NOTE]
> In the future, library refreshing will also be automatically done in the background, or additionally on app startup.
### Adding Metadata to Entries
To add a metadata field to a file entry, start by clicking the “Add Field” button under the file preview in the right-hand preview panel. From the dropdown menu, select the type of metadata field you’d like to add to the entry.
### Editing Metadata Fields
#### Text Line / Text Box
Hover over the field and click the pencil icon. From there, add or edit text in the dialog box popup.
#### Tag Box
Click the “+” button at the end of the Tags list, and search for tags to add inside the new dialog popup. Click the “+” button next to whichever tags you want to add. Alternatively, after you search for a tag, press the Enter/Return key to add the add the first item in the list. Press Enter/Return once more to close the dialog box
> [!WARNING]
> Keyboard control and navigation is currently _very_ buggy, but will be improved in future versions.
### Creating Tags
To create a n
没有合适的资源?快使用搜索试试~ 我知道了~
以用户为中心的文档管理系统
共70个文件
png:28个
py:25个
md:3个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 111 浏览量
2024-04-29
09:12:22
上传
评论
收藏 3.84MB ZIP 举报
温馨提示
这是一个照片和文件组织应用程序,其底层系统专注于为用户提供自由和灵活性。没有专有程序或格式,没有海量的 sidecar 文件,也没有文件系统结构的彻底颠覆。 实现可移植、面向隐私、开放、可扩展且功能丰富的文件组织和重新发现系统。 提供强大的组织方法,特别是标签组合或“可标记标签”的概念。 创建此类系统的实现,该系统可抵御用户在程序外部的操作(修改、移动或重命名文件),同时又不会给用户带来强制性 sidecar 文件的负担,也不会要求他们更改现有的文件结构和工作流。 支持跨不同平台、多用户设置以及具有大型(几 TB)库的广泛用户。 为了让的东西看起来也不错。现在是 2024 年,而不是 1994 年。
资源推荐
资源详情
资源评论
收起资源包目录
TagStudio-main.zip (70个子文件)
TagStudio-main
.vscode
launch.json 449B
flake.lock 567B
.gitattributes 66B
doc
documentation.md 7KB
LICENSE 34KB
CHANGELOG.md 330B
tagstudio
__init__.py 0B
tag_studio.py 2KB
resources
qt
images
trash_icon_128.png 3KB
thumb_broken_512.png 24KB
splitter_handle_128.png 2KB
thumb_loading_512.png 12KB
thumb_mask_512.png 5KB
star_icon_filled_128.png 9KB
edit_icon_128.png 3KB
thumb_mask_128.png 2KB
star_icon_empty_128.png 6KB
tag_group_icon_128.png 6KB
tag_group_icon_dark_128.png 5KB
box_icon_empty_128 - Copy.png 3KB
thumb_loading_dark_512.png 11KB
star_icon_empty_128 - Copy.png 6KB
splash.png 229KB
box_icon_empty_128.png 4KB
clipboard_icon_128.png 4KB
edit_icon_dark_128.png 2KB
box_icon_filled_128.png 5KB
box_icon_filled_128 - Copy.png 4KB
star_icon_filled_128 - Copy.png 7KB
thumb_file_default_512.png 12KB
collation_icon_128.png 3KB
trash_icon_dark_128.png 1KB
thumb_border_512.png 6KB
thumb_mask_hl_512.png 5KB
fonts
Oxanium-Bold.ttf 29KB
icon.ico 628KB
icon.png 992KB
src
core
__init__.py 0B
library.py 77KB
utils
__init__.py 0B
web.py 513B
str.py 632B
fs.py 379B
palette.py 10KB
json_typing.py 716B
field_template.py 876B
ts_core.py 9KB
qt
__init__.py 0B
flowlayout.py 5KB
resources.py 717KB
main_window.py 9KB
ts_qt.py 192KB
resources_rc.py 789KB
resources.qrc 1KB
pagination.py 23KB
ui
home.ui 6KB
home_ui.py 6KB
cli
__init__.py 0B
ts_cli.py 122KB
tests
__init__.py 0B
core
__init__.py 0B
test_tags.py 392B
screenshot.jpg 531KB
start_win.bat 71B
TagStudio.sh 132B
requirements.txt 261B
.gitignore 4KB
flake.nix 2KB
README.md 17KB
github_header.png 859KB
共 70 条
- 1
资源评论
sjx_alo
- 粉丝: 1w+
- 资源: 1213
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功