Skip to content

Commit 47babdd

Browse files
committed
docs: update README.md and index.md
1 parent 461d103 commit 47babdd

File tree

4 files changed

+103
-104
lines changed

4 files changed

+103
-104
lines changed

README.md

Lines changed: 63 additions & 85 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,19 @@
11
# TagStudio: A User-Focused Document Management System
22

3+
[![Translation](https://hosted.weblate.org/widget/tagstudio/strings/svg-badge.svg)](https://hosted.weblate.org/projects/tagstudio/strings/)
4+
[![PyTest](https://github.com/TagStudioDev/TagStudio/actions/workflows/pytest.yaml/badge.svg)](https://github.com/TagStudioDev/TagStudio/actions/workflows/pytest.yaml)
5+
[![MyPy](https://github.com/TagStudioDev/TagStudio/actions/workflows/mypy.yaml/badge.svg)](https://github.com/TagStudioDev/TagStudio/actions/workflows/mypy.yaml)
6+
[![Ruff](https://github.com/TagStudioDev/TagStudio/actions/workflows/ruff.yaml/badge.svg)](https://github.com/TagStudioDev/TagStudio/actions/workflows/ruff.yaml)
7+
[![Downloads](https://img.shields.io/github/downloads/TagStudioDev/TagStudio/total.svg?maxAge=2592001)](https://github.com/TagStudioDev/TagStudio/releases)
8+
39
<p align="center">
410
<img width="60%" src="docs/assets/github_header.png">
511
</p>
612

7-
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. **Read the documentation and more at [docs.tagstud.io](https://docs.tagstud.io)!**
13+
TagStudio is a photo & file organization application with an underlying tag-based 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. **Read the documentation and more at [docs.tagstud.io](https://docs.tagstud.io)!**
814

915
> [!CAUTION]
10-
> **As of Pull Request [#332](https://github.com/TagStudioDev/TagStudio/pull/332) (SQLite Migration) the `main` branch will be an open test bed to get full JSON to SQL parity operational.** Existing TagStudio libraries are not yet compatible with this change, however they will **NOT be corrupted or deleted** if opened with these versions. Once parity is reached and a stable conversion tool in place, this notice will be removed.
16+
> As of Pull Request [#332](https://github.com/TagStudioDev/TagStudio/pull/332) (SQLite Migration) the `main` branch will be an open test bed to get full JSON to SQL parity operational. This notice will be removed once parity between v9.4 and v9.5 is reached.
1117
>
1218
> For the most recent stable feature release branch, see the [`Alpha-v9.4`](https://github.com/TagStudioDev/TagStudio/tree/Alpha-v9.4) branch. These v9.4 specific features are currently being backported to the SQL-ized `main` branch. [Feel free to help!](/CONTRIBUTING.md)
1319
@@ -20,10 +26,11 @@ TagStudio is a photo & file organization application with an underlying system t
2026
> - Ask you to recreate your tags or libraries after new releases. It's our highest priority to ensure that your data safely and smoothly transfers over to newer versions.
2127
> - Cause you to suddenly be able to recall your 10 trillion downloaded images that you probably haven't even seen firsthand before. You're in control here, and even tools out there that use machine learning still needed to be verified by human eyes before being deemed accurate.
2228
29+
<p align="center">
30+
<img width="80%" src="docs/assets/screenshot.jpg" alt="TagStudio Screenshot">
31+
</p>
2332
<figure align="center">
24-
<img width="80%" src="docs/assets/screenshot.jpg" alt="TagStudio Screenshot" align="center">
25-
26-
<figcaption><i>TagStudio Alpha v9.1.0 running on Windows 10.</i></figcaption>
33+
<figcaption><i>TagStudio Alpha v9.4.2 running on Windows 10.</i></figcaption>
2734
</figure>
2835

2936
## Contents
@@ -38,51 +45,76 @@ TagStudio is a photo & file organization application with an underlying system t
3845

3946
## Goals
4047

41-
- To achieve a portable, privacy-oriented, open, extensible, and feature-rich system of organizing and rediscovering files.
42-
- To provide powerful methods for organization, notably the concept of tag composition, or “taggable tags”.
43-
- 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.
48+
- To achieve a portable, private, extensible, open-format, and feature-rich system of organizing and rediscovering files.
49+
- To provide powerful methods for organization, notably the concept of tag inheritance, or “taggable tags” _(and in the near future, the combination of composition-based tags)._
50+
- 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 requiring them to change their existing file structures and workflows.
4451
- To support a wide range of users spanning across different platforms, multi-user setups, and those with large (several terabyte) libraries.
4552
- To make the darn thing look like nice, too. It’s 2024, not 1994.
4653

4754
## Priorities
4855

49-
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._
56+
1. **The concept.** Even if TagStudio as an 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._
5057
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.
5158
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.
52-
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.
59+
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...
60+
61+
## Contributing
62+
63+
If you're interested in contributing to TagStudio, please take a look at the [contribution guidelines](/CONTRIBUTING.md) for how to get started!
64+
65+
Translation hosting generously provided by [Weblate](https://weblate.org/en/). Check out our [project page](<(https://hosted.weblate.org/projects/tagstudio/)>) to help translate TagStudio!
5366

5467
## Current Features
5568

69+
### Libraries
70+
5671
- 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.
72+
- Address moved, deleted, or otherwise "unlinked" files by using the "Fix Unlinked Entries" option in the Tools menu.
73+
74+
### Metadata + Tagging
75+
5776
- Add metadata to your library entries, including:
5877
- Name, Author, Artist (Single-Line Text Fields)
5978
- Description, Notes (Multiline Text Fields)
6079
- Tags, Meta Tags, Content Tags (Tag Boxes)
61-
- 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.
62-
- Search for entries based on tags, ~~metadata~~ (TBA), or filenames/filetypes (using `filename: <query>`)
63-
- Special search conditions for entries that are: `untagged`/`no tags` and `empty`/`no fields`.
80+
- Create rich tags composed of a name, a list of aliases, and a list of “parent tags” - being tags in which these tags inherit values from.
81+
- Copy and paste tags and fields across file entries
82+
- Generate tags from your existing folder structure with the "Folders to Tags" macro (NOTE: these tags do NOT sync with folders after they are created)
6483

65-
> [!NOTE]
66-
> For more information on the project itself, please see the [FAQ](#faq) section as well as the [documentation](/docs/index.md).
84+
### Search
6785

68-
## Contributing
86+
- Search for entries based on tags, ~~metadata~~ (TBA), or filenames/filetypes (using `filename: <query>`).
87+
- Special search conditions for entries that are: `untagged` and `empty`.
6988

70-
If you're interested in contributing to TagStudio, please take a look at the [contribution guidelines](/CONTRIBUTING.md) for how to get started!
89+
### File Entries
7190

72-
Translation services provided via [Weblate](https://hosted.weblate.org/projects/tagstudio/).
91+
- All\* file types are supported in TagStudio libraries - just not all have dedicated thumbnail support.
92+
- Preview most image file types, animated GIFs, videos, plain text documents, audio files\*\*, Blender projects, and more!
93+
- Open files or file locations by right-clicking on thumbnails and previews and selecting the respective context menu options. You can also click on the preview panel image to open the file, and click the file path label to open its location.
94+
- Delete files from both your library and drive by right-clicking the thumbnail(s) and selecting the "Move to Trash"/"Move to Recycle Bin" option.
95+
96+
> - _\* Weird files with no extension or files such as ".\_DS_Store" currently have limited support._
97+
> - _\*\* Audio playback coming in v9.5_
98+
99+
> [!NOTE]
100+
> For more information on the project itself, please see the [FAQ](#faq) section as well as the [documentation](https://docs.tagstud.io/).
73101
74102
## Installation
75103

76104
To download TagStudio, visit the [Releases](https://github.com/TagStudioDev/TagStudio/releases) section of the GitHub repository and download the latest release for your system under the "Assets" section. TagStudio is available for **Windows**, **macOS** _(Apple Silicon & Intel)_, and **Linux**. Windows and Linux builds are also available in portable versions if you want a more self-contained executable to move around.
77105

78-
For video thumbnails and playback, you'll also need [FFmpeg](https://ffmpeg.org/download.html) installed on your system.
106+
**We do not currently publish TagStudio to any package managers. Any TagStudio distributions outside of the GitHub releases page are _unofficial_ and not maintained by us.** Installation support will not be given to users installing from unofficial sources. Use these versions at your own risk.
79107

80108
> [!IMPORTANT]
81109
> On macOS, you may be met with a message saying _""TagStudio" can't be opened because Apple cannot check it for malicious software."_ If you encounter this, then you'll need to go to the "Settings" app, navigate to "Privacy & Security", and scroll down to a section that says _""TagStudio" was blocked from use because it is not from an identified developer."_ Click the "Open Anyway" button to allow TagStudio to run. You should only have to do this once after downloading the application.
82110
83-
#### Optional Arguments
111+
### Third-Party Dependencies
84112

85-
Optional arguments to pass to the program.
113+
- For video thumbnails and playback, you'll also need [FFmpeg](https://ffmpeg.org/download.html) installed on your system.
114+
115+
### Optional Arguments
116+
117+
Arguments available to pass to the program, either via the command line or a shortcut.
86118

87119
> `--open <path>` / `-o <path>`
88120
> Path to a TagStudio Library folder to open on start.
@@ -145,7 +177,7 @@ Inevitably, some of the files inside your library will be renamed, moved, or del
145177
146178
### Saving the Library
147179

148-
Libraries are saved upon exiting the program. To manually save, select File -> Save Library from the menu bar. To save a backup of your library, select File -> Save Library Backup from the menu bar.
180+
Libraries are saved upon exiting the program. To manually save, select File -> Save Library from the menu bar. To save a backup of your library, select File -> Save Library Backup from the menu bar. Automatic backups are created when loading a library, and are automatically loaded from in the event of a crash or unexpected system shutdown.
149181

150182
### Half-Implemented Features
151183

@@ -185,74 +217,20 @@ See instructions in the "[Creating Development Environment](/CONTRIBUTING.md/#cr
185217

186218
### What State Is the Project Currently In?
187219

188-
As of writing (Alpha v9.3.0) the project is in a useable state, however it lacks proper testing and quality of life features.
220+
As of writing (Alpha v9.4.2) the project is in a useable state, however includes several metadata field bugs and lacks several quality of life features. Focus has been on developing v9.5 with a new SQLite backend which will allow us to not only fix these bugs but also to give us a jumping off point for some [pretty cool](https://docs.tagstud.io/updates/roadmap/) features we've been wanting to add for quite a while now!
189221

190222
### What Features Are You Planning on Adding?
191223

192-
> [!IMPORTANT]
193-
> See the [Feature Roadmap](/docs/updates/roadmap.md) documentation for the latest feature lists. The lists here are currently being migrated over there with individual pages for larger features.
194-
195-
Of the several features I have planned for the project, these are broken up into “priority” features and “future” features. Priority features were originally intended for the first public release, however are currently absent from the Alpha v9.x.x builds.
196-
197-
#### Priority Features
198-
199-
- Improved search
200-
- Sortable Search
201-
- Boolean Search
202-
- Coexisting Text + Tag Search
203-
- Searchable File Metadata
204-
- Comprehensive Tag management tab
205-
- Easier ways to apply tags in bulk
206-
- Tag Search Panel
207-
- Recent Tags Panel
208-
- Top Tags Panel
209-
- Pinned Tags Panel
210-
- Better (stable, performant) library grid view
211-
- Improved entry relinking
212-
- Cached thumbnails
213-
- Tag-like Groups
214-
- Resizable thumbnail grid
215-
- User-defined metadata fields
216-
- Multiple directory support
217-
- SQLite (or similar) save files
218-
- Reading of EXIF and XMP fields
219-
- Improved UI/UX
220-
- Better internal API for accessing Entries, Tags, Fields, etc. from the library.
221-
- Proper testing workflow
222-
- Continued code cleanup and modularization
223-
- Exportable/importable library data including "Tag Packs"
224-
225-
#### Future Features
226-
227-
- Support for multiple simultaneous users/clients
228-
- Draggable files outside the program
229-
- Comprehensive filetype whitelist
230-
- A finished “macro system” for automatic tagging based on predetermined criteria.
231-
- Different library views
232-
- Date and time fields
233-
- Entry linking/referencing
234-
- Audio waveform previews
235-
- 3D object previews
236-
- Additional previews for miscellaneous file types
237-
- Optional global tags and settings, spanning across libraries
238-
- Importing & exporting libraries to/from other programs
239-
- Port to a more performant language and modern frontend (Rust?, Tauri?, etc.)
240-
- Plugin system
241-
- Local OCR search
242-
- Support for local machine learning-based tag suggestions for images
243-
- Mobile version _(FAR future)_
244-
245-
#### Features I Likely Won’t Add/Pull
224+
See the [Feature Roadmap](https://docs.tagstud.io/updates/roadmap/) page for the core features being planned and implemented for TagStudio. For a more up to date look on what's currently being added for upcoming releases, see our GitHub [milestones](https://github.com/TagStudioDev/TagStudio/milestones) for versioned releases.
225+
226+
### Features That Will NOT Be Added
246227

247228
- Native Cloud Integration
248-
- There are plenty of services already (native or third-party) that allow you to mount your cloud drives as virtual drives on your system. Pointing TagStudio to one of these mounts should function similarly to what native integration would look like.
229+
- There are plenty of services already (native or third-party) that allow you to mount your cloud drives as virtual drives on your system. Hosting a TagStudio library on one of these mounts should function similarly to what native integration would look like.
230+
- Supporting native cloud integrations such as these would be an unnecessary "reinventing the wheel" burden for us that is outside the scope of this project.
249231
- Native ChatGPT/Non-Local LLM Integration
250-
- This could mean different things depending on what you're intending. Whether it's trying to use an LLM to replace the native search, or to trying to use a model for image recognition, I'm not interested in hooking people's TagStudio libraries into non-local LLMs such as ChatGPT and/or turn the program into a "chatbot" interface (see: [Goals/Privacy](#goals)). I wouldn't, however, mind using **locally** hosted models to provide the _optional_ ability for additional searching and tagging methods (especially when it comes to facial recognition).
251-
252-
### Why Is the Version Already v9?
253-
254-
I’ve been developing this project over several years in private, and have gone through several major iterations and rewrites in that time. This “major version” is just a number at the end of the day, and if I wanted to I couldn’t released this as “Version 0” or “Version 1.0”, but I’ve decided to stick to my original version numbers to avoid needing to go in and change existing documentation and code comments. Version 10 is intended to include all of the “Priority Features” I’ve outlined in the [previous](#what-features-are-you-planning-on-adding) section. I’ve also labeled this version as an Alpha, and will likely reset the numbers when a feature-complete beta is reached.
232+
- This could mean different things depending on your intentions. Whether it's trying to use an LLM to replace the native search, or to trying to use a model for image recognition, I'm not interested in hooking people's TagStudio libraries into non-local LLMs such as ChatGPT and/or turn the program into a "chatbot" interface (see: [Goals/Privacy](#goals)). I wouldn't, however, mind using **locally** hosted models to provide the _optional_ ability for additional searching and tagging methods (especially when it comes to facial recognition) - but this would likely take the form of plugins external to the core program anyway.
255233

256-
### Wait, Is There a CLI Version?
234+
### Why Is this Already Version 9?
257235

258-
As of right now, **no**. However, I _did_ have a CLI version in the recent past before dedicating my efforts to the Qt GUI version. I’ve left in the currently-inoperable CLI code just in case anyone was curious about it. Also yes, it’s just a bunch of glorified print statements (_the outlook for some form of curses on Windows didn’t look great at the time, and I just needed a driver for the newly refactored code...)._
236+
Over the first few years of private development the project went through several major iterations and rewrites. These major version bumps came quickly, and by the time TagStudio was opened-sourced the version number had already reached v9.0. Instead of resetting to "v0.0" or "v1.0" for this public release I decided to keep my v9.x numbering scheme and reserve v10.0 for when all the core features on the [Feature Roadmap](https://docs.tagstud.io/updates/roadmap/) are implemented. I’ve also labeled this version as an "Alpha" and will drop this once either all of the core features are implemented or the project feels stable and feature-rich enough to be considered "Beta" and beyond.

docs/assets/db_schema.png

-138 KB
Binary file not shown.

docs/assets/screenshot.jpg

319 KB
Loading

0 commit comments

Comments
 (0)