SkillAgentSearch skills...

Fva

A convergent tool set in form of desktop applications to automate the process of importing the multimedia data (photo/audio/video) into the IR multimedia systems like digiKam, Google Photo, Apple Photo, Synology Photo Station, etc. to make the multimedia more searchable and to improve family photos

Install / Use

/learn @dimanikulin/Fva

README

<p align="center"> <a href="./resources/icons/main.png" target="blank"><img src="./resources/icons/main.png" width="120" alt="FVA Logo" /></a> </p> <p align="center"> <img alt="GitHub release (latest by date including pre-releases)" src="https://img.shields.io/github/v/release/dimanikulin/fva?include_prereleases"> <img alt="GitHub all releases" src="https://img.shields.io/github/downloads/dimanikulin/fva/total"> <img alt="GitHub Release Date" src="https://img.shields.io/github/release-date-pre/dimanikulin/fva"> </br> <a href="https://github.com/dimanikulin/fva/actions/workflows/main.yml"><img src="https://github.com/dimanikulin/fva/actions/workflows/main.yml/badge.svg?branch=master" alt="Tests"/></a> <a href="https://www.codefactor.io/repository/github/dimanikulin/fva"><img src="https://www.codefactor.io/repository/github/dimanikulin/fva/badge" alt="CodeFactor" /></a> <img alt="GitHub code size in bytes" src="https://img.shields.io/github/languages/code-size/dimanikulin/fva"> <img alt="GitHub repo size" src="https://img.shields.io/github/repo-size/dimanikulin/fva"> </br> <img alt="GitHub issues" src="https://img.shields.io/github/issues/dimanikulin/fva"> <img alt="GitHub closed issues" src="https://img.shields.io/github/issues-closed/dimanikulin/fva"> <img alt="GitHub pull requests" src="https://img.shields.io/github/issues-pr/dimanikulin/fva"> <img alt="GitHub closed pull requests" src="https://img.shields.io/github/issues-pr-closed/dimanikulin/fva"> </br> <a href="https://github.com/dimanikulin/fva/projects/4"><img src="https://img.shields.io/badge/roadmap-view-d90368"> </a> <img alt="GitHub Discussions" src="https://img.shields.io/github/discussions/dimanikulin/fva"> <img alt="GitHub" src="https://img.shields.io/github/license/dimanikulin/fva"> <a href="https://github.com/dimanikulin/fva/edit/master/README.md"><img src="https://img.shields.io/badge/documentation-read-d90368"> </a> </p>

Quick Links

Description

FVA Software (Photo-Video-Audio Software) is a convergent tool set in a form of desktop applications aimed at automating importing process of Multimedia Data (photo/audio/video) into Multimedia IR systems like digiKam <img src="./resources/images/digiKam.png" alt="digiKam.png" width="20" height="20"/>, Google Photo, Apple Photo, Synology Moments <img src="./resources/images/synologyMoments.png" alt="SynologyMoments.png" height="20" />, etc. to make multimedia more fully-searchable as well as to refine family photos. <img src="./resources/images/inputAndOutputExamples.gif" alt="Input And Output Examples" />

Capabilities

  • Organizing the multimedia: Organizing the Multimedia Data to be more searchable
  • Multimedia metadata gaps identification: It identifies the gaps and tries to fill it up (enriching the metadata and improving its consistency with minimal human involvement).
  • Integration: The system is integrated with online/offline Multimedia IR systems: digiKam <img src="./resources/images/digiKam.png" alt="digiKam.png" width="20" height="20"/> as Offline Multimedia IR systems and Synology Moments <img src="./resources/images/synologyMoments.png" alt="SynologyMoments.png" height="20" /> as Online Multimedia IR systems are now supported.
  • Supporting text search for Multimedia IR systems: It is possible to search by events, photo author, places, people using text search
  • Configuration: The system flow depends on configuration.
  • Automating the import: to decrease the probability of human factor influence on the process of importing new photos into the existing photo album; Despite many steps are automated, still human involvement is required.

Software Architecture Requirements

Constraints

This section lists constrains and explanations for them.

Assumptions

This section lists all the assumptions with explanations for them. This is critical to do in order to cover all the gaps in the requirements. | # | Assumption Description | | - |:--------------:| | 1 | It is assumed that the user, which the proposed solution is going to run under, has the write access to the Google Photo (and other IR Multimedia systems) folder where multimedia data processed is going to be put in. | | 2 | User restarted the wizard after changing the configuration (because of feature of QTWizard and QTWizardPage) |

Quality Attributes

This section lists quality attributes for target architecture. So there are following Quality Attributes: Conceptual Integrity, Maintainability, Reusability, Availability, Interoperability, Manageability, Performance, Reliability, Scalability, Security, Portability, Supportability, Testability, Learnability, Traceability.

For more details please see

Hardware requirements

TBD

Software Architecture Views

Context View

The context diagram below shows the solution bounds and its interactions with other objects and subjects.

flowchart LR
    B -->|Multimedia data| C(Online Multimedia IR system)
    B -->|Multimedia data| D(Offline Multimedia IR system)
    A(Photo Album owner) --> B(FVA Solution)
    A(Photo Album owner) --> D1
    A(Photo Album owner) --> D2
    A(Photo Album owner) --> D3
    D1(fa:fa-tablet Tablet) -->|Multimedia data| B(FVA Solution)
    D2(fa:fa-phone Phone) -->|Multimedia data| B(FVA Solution)
    D3(fa:fa-hdd-o External Disk) -->|Multimedia data| B(FVA Solution)

The solution is used during import of new multimedia content from external devices to an existing user photo album.

The photo album owner is the main and only user of the solution.

The external devices might be:

  • the phones with a camera;
  • the tablets with a camera;
  • the photo/video cameras;
  • external storages (e.g., hard drive or flash card) with multimedia data;
  • etc.

Once the multimedia data from the external devices is processed, the solution interacts with integrated online and offline Multimedia systems.

Functional View

The Layered Architecture shall be applied to the system. Following layers are considered:

flowchart BT
    A(UI) --> B(Processing)
    B(Processing) --> C(Data and Configuration)

For more details please see

Deployment View

The target installation folder shall have next folder structure:

  • #bin# - a directory with all binaries (product one either third party);
  • #data# - a directory to keep user populated dictionaries and application data;
  • #logs# - a directory to keep the application logs. Each log file name shall start from name of process it was created by;
  • #scripts# - a directory to keep all the scripts.

Installation must be possible at any target directory but not only in root folder.

TBD describe dependencies installed along with FVA Software.

TBD fvaParams.csv

Source View

<img src="./resources/images/sourceView.png" alt="Source View">

Was created with a help of gitdiagram

Programming Languages

Now C++ and Python are considered as main languages to implement FVA Software.

TBD - to describe for which cases C++ and for which Python.

License

we use 3-rd party code here TBD link and own licence is TBD

Dependencies

Only open source code/tools are used, as a product is open source.

There were other dependencies but they got outdated.

Code Style

Please see here for the rules to create and review the code.

Code Documentation

Please see here for the rules to document the code.

Implementation status

As of now, I have the implementation status for the following components:

These references will give you an overview of the implementation status for each respective component.

Contributing

There are many items to help the author with.

You can fill in this form to understand your needs in Multimedia search and organizin

Related Skills

View on GitHub
GitHub Stars14
CategoryData
Updated11h ago
Forks2

Languages

C++

Security Score

95/100

Audited on Apr 5, 2026

No findings