/qualitative-coding-app

This desktop application supports researchers and students performing qualitative coding analysis on videos.

Primary LanguagePython

Qualitative Coding App

This desktop application supports researchers and students performing qualitative coding analysis on videos.

Requirements

  • Python >= 3.7
  • Python modules: PySide6, superqt

How to set up and run the application

  1. Ensure the Python >= 3.7 requirement is met.
    If python needs to be updated or installed, the following guide can be followed: https://wiki.python.org/moin/BeginnersGuide/Download

  2. Clone the repository and change your current directory to the project directory.
    git clone https://github.com/MichaelKintscher/qualitative-coding-app.git && cd qualitative-coding-app

  3. We recommend setting up a virtual environment.
    Unix/macOS: python3 -m venv env
    Windows: py -m venv env

  4. Activate the virtual environment.
    Unix/macOS: source env/bin/activate
    Windows: .\env\Scripts\activate.bat

  5. Install PySide6 to your virtual environment using the pip package manager.
    Unix/macOS: python3 -m pip install PySide6
    Windows: py -m pip install PySide6

  6. Install superqt to your virtual environment using the pip package manager.
    Unix/macOS: python3 -m pip install superqt
    Windows: py -m pip install superqt

  7. Run the application
    Unix/macOS: python3 main.py
    Windows: py main.py

Development

Any text-editor or IDE, preferably with python support, can be used to develop the project. The previous steps will manually set up the project, however most IDEs should have support for facilitating the process described above. We recommend the PyCharm IDE for development.

Application Features

  1. Data Persistence

    • All work performed in the application is saved to the user's current session. The application provides a session manager and a session creator page, which are accessible in the welcome page and allow the user to start a new session or load a previous session. A session will save the encoding table data, encoding table title, and the encoding buttons stored in the encoding table panel.
    • User settings not only persist, but are applied to all sessions.
    • Button definitions can be saved globally, and may be loaded from any session. Global button definitions can be edited and removed in the user settings page.
  2. Playing video files

    • Once a session is created or loaded, users can load a video file through the menu bar at the top. Available video formats will depend on the user's operating system, however most popular formats are supported.
  3. Scalable Scrubbing Bar

    • The application provides a scalable scrubbing bar, allowing the user to scrub their loaded video with high precision.
  4. Spreadsheet-like table

    • Users can enter data into the table manually or through the use of encoding buttons and associated hotkeys. Column headers can be edited by double-clicking (except the "Time" column). Columns and rows can be added through using the buttons available next to the table. To delete rows and columns, and entire row or column must be selected and then the "delete column" or "delete row button must be clicked. An entire row or columns can be selected by clicking on the associated row or column header. Table font can be changed through the user settings window. Additionally, columns can be resized by clicking and dragging the line between column headers. This same line can be double-clicked to resize a column to fit cell contents.
  5. Encoding Buttons

    • Encoding buttons can be clicked to fill the next empty row in the table with user specified data. Users will have the option to add or delete these buttons from the button panel. Upon choosing to add a button users will have the choice of creating a button definition or loading an existing button definition. Button definitions consist of a keyboard hotkey and fields for each table columns for users to specify desired data. Upon creation buttons will be placed in a grid layout in the button panel which allows up to 9 buttons.
  6. Export table data

    • Users can export table data to a CSV file through the menu bar at the top of the application.

Known Bugs

  1. MacOS is not supported, as the video loading and playing is not supported.
  2. Any text remaining in an input field in the user settings dialog upon the closing of the dialog will be saved.
  3. The activation of an encoding button with more column fields than the number of columns in the encoding table will result in data entry "spill over".
  4. New unnamed columns will not be present in the button creation dialog.
  5. The CSV file generated by the application does not save column names.
  6. The CSV file generated by the application does not properly handle quotations in table cells.

Limitations

  1. Globally saved button definitions must have unique button names.
  2. It is not possible to manually adjust the height of a row in the encoding table.

UML Diagram

  • Link to a pdf version here
  • Link to original LucidChart file here