David Fearn
Back to resume

Projects

Selected work

GovCon Compliance SaaS

In development

SaaS/Compliance as Code (CaC) solution for streamlining regulatory defense contracting security controls.

ReactDjangoPython

Tech stack

React · Django · Python

Django web app to import/export Canvas QTI test banks, manage questions, and generate HTML exams and answer keys for Word.

Instructors spend hours copying and formatting questions from Canvas into paper exams. QuizPress solves this by importing Canvas QTI files, managing question metadata, editing and tracking question attributes, generating neatly formatted HTML exams and red/blue answer keys for Word, and exporting back to QTI or Excel. Multi-user roles (Webmaster, Publisher, Teacher) with access control.

PythonDjangoMySQLCanvas QTIJavaScript

Features

  • Import/export Canvas QTI (question banks & tests)
  • Question bank management: add/edit/delete (TF, MC, Matching, Fill-in, Essay, Short Answer, Dynamic)
  • Track graphics, references, points, answer time, test usage
  • Test assembly: pick from bank or template, randomize order, draft vs. final
  • Templates & cover pages (fonts, headers, section order, bonus section)
  • Attachments: append PDFs/images to exam end
  • HTML test and key (red answers, blue grading tips) for Word
  • Excel import/export of question banks
  • Access control: Webmaster, Publisher, Teacher roles

Tech stack

Python 3.8+ · Django 4.x · Django REST Framework · JavaScript · BeautifulSoup4 & lxml (QTI XML) · MySQL (mysqlclient / PyMySQL) · openpyxl · requests · Pillow · pandas · HTML · CSS

This Website!

Visit site

An interactive resume and portfolio built using Next.js 15, TypeScript, and Tailwind; deployed on Vercel.

Next.js 15TypeScriptTailwind CSSLucide React

Features

  • Interactive resume with expand/collapse sections
  • Projects page with detailed project write-ups
  • Contact page with form, social links, and a cool background
  • Sticky navbar and responsive layout
  • Deployed on Vercel with custom domain (HTTPS)

Tech stack

Next.js 15 (App Router) · TypeScript · Tailwind CSS · Lucide React · Vercel

Groop Rate

Open app

Web app for deconflicting an ideal group schedule for select festivals or custom lineups.

Next.js 15TypeScriptTailwind CSSVercelRedis

Features

  • Shareable group code (Groop-XXXXXX); create or join via link
  • Rate artists 0–4 with clear labels (Absolutely Not → Must See)
  • My Schedule: filter by your high ratings
  • Group Schedule: ideal order by average; mismatch callouts
  • Premade lineups (e.g. Bonnaroo 2026) and custom CSV paste

Tech stack

Next.js 15 (App Router) · TypeScript · Tailwind CSS · Vercel · Redis · nanoid