Skip to content

cyrusae/highlighter-public

Repository files navigation

project tag: highlighter

in active development absolute baby alpha version development branch: flagfixing

GitHub commit activity (main) GitHub last commit (main) Maintenance GitHub issues

Express.js TypeScript SASS Prisma SQLite Next JS


Note: highlighter v1 is currently under development. It is not safe to use yet. In order to understand what that means for this repo, see the first section below. For what it is meant to do, see the second.

Or you can just skip to the third section for installation instructions (instructions tk pending more testing).

tl;dr: It's a GUI for coding qualitative data, but initial setup on a new dataset will require some edits to adapt it to your data. Click here if you want it. (see above re: instructions)

It will also break unpredictably while in alpha. A specific family of issues recur when I add features due to underlying issues with how the prototype works. I know what they are and the prototype exists in part to have let me find them. Refactoring to make this cycle obsolete is now possible but bottlenecked behind the fact that I'm a full-time student for whom this is an unlicensed extracurricular.

For code didn't make it in but exists, see noodle.tsx and noodle_harder.md. For the most recent survey of things I need to do once highlighter is working in order for it to be more human-friendly to people who aren't me, see the issue tracker; for the least mixed with other to-do items, see cleanup_steps.md.

Whylighter

This is a bit of a weird one! (Skip this section if you just want to know about features; this is about philosophy.)

highlighter exists because I couldn't find other qualitative data analysis software that would do what I wanted in time for me to finish finals on a quarter system. (Yes this app exists because I didn't have the patience to find software that suited my purposes so I wrote it. I have a problem.) This repository consists of a limited subset of the highlighter project that I can publish without involving the database itself.

What this means:

You're welcome to clone the repository if you think it'd help you, but highlighter is not going to run out of the box on your data if you have data of your own already; importing your own database requires some editing the code, albeit mostly search and replace (see "what does it do"). Part of the reason for making there be one at all is because I want the exercise of documenting what you'd need to do in order to make it work for you.

You might still benefit if...

  • You have qualitative data in need of coding that you've stored in, or can import into, a SQLite database
  • You're comfortable with editing small to medium amounts of JavaScript and CSS with instructions as you go
  • You're doing data analysis in RStudio or similar software and can't find a good way to reference your qualitative data coding there

If that sounds like you, please be my guest, it would be nice for making this public to benefit someone other than my need for thought exercises.

This README seems to be targeted towards a non-technical audience.

Yep.

I'm a technical audience.

Cool! If that means you're interested in extending highlighter's functionality to be easier to set up and/or do more things once set up, I would be absolutely elated; I'm interested in a universe where highlighter is usable without the caveats, but as long as I'm the sole or primary user my effort has to go towards meeting class deadlines first.

(If that means you're frustrated that my documentation is intended partly as an educational tool, I will have to kindly request that you deal with it.)

Wait, not that technical.

Attempt at standoffishness aside, I'm still happy to entertain comments, suggestions, and even feature requests.

Great, but what does it actually do?

highlighter provides a GUI for coding qualitative data, as stored in a SQLite database, that does the following:

  • Loads individual observations from your database and assigns a code to a selected fragment of text
  • Highlights displayed text with a color specific to that assigned code, including if you navigate back to that observation later
  • Saves the highlighted phrase, its assigned code, and a relationship to the full observation in your database
  • Navigates between different observations in a table so you can do the same thing with the next set
  • (Currently a stretch goal) Saves comments on the observation as a whole or a specific phrase coded within it

In other words: have you ever wanted to print out all your observations to go through them in hard copy with color-coded highlighters, while knowing that's not worth it because how on Earth are you going to reference all that coding work once you've done it?

That. It does that.

[Screenshots TK]

Important elements that still have to be manually configured:

  • Hooking Prisma up to your actual database, putting your own variable names into the code (search every time the 'canonical' ones in this version occur), and adding a table for highlighter output
  • Styling for codes (copy and paste output of the Sass map generator into the relevant .scss file)
  • Any troubleshooting if that doesn't go as planned

But! The good news is: that's about it.

Known and potential accessibility issues

  • Use of colors: highlighter can be manually configured with colorblind-safe colors, but does not support alternate means of showing what the code given to a text fragment is out of the box. (If that's a concern for you, you could--for example--add dotted/dashed/etc. borders, and configure the highlighting function to add a tooltip listing the code given to a highlight when made.)
  • Screenreader support: Qual coding isn't a part of my workflow I use my screenreader for right now, so highlighter does not have a default means of announcing coding out loud yet. If you're interested in implementing one, you may need to adjust your verbosity settings, because codes are stored as <mark> tags and may be skipped over.
  • (potential) I don't know how the highlighting interacts with a keyboard-only UI (if you find out or have suggestions for avoiding issues in advance, please let me know)
  • (potential) I use highlighter in OSX Safari, Chrome on OSX, and Microsoft Edge on Windows 11. It may not perform as expected on your machine.
  • (idiosyncratic) If you find my text size frustrating you'll have to edit it yourself.

I would like an alternative.

qcoder is filling a similar niche (potential con: RStudio-specific; potential pro: much less idiosyncratic) but is also in development. Other than that, I'm afraid I can't make any recommendations, or I wouldn't have written this in the first place.

Set up highlighter on your own machine

[INSTRUCTIONS TK]


Twitter GitHub Patreon