David Fearn
Back to resume

Projects

Selected work

A Django-powered web application to import/export Canvas QTI test banks, manage in-class test questions, and generate hardcopy exams and answer keys in HTML (Word-friendly) format.

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.

PythonDjangoDjango REST FrameworkMySQLCanvas QTI

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 · BeautifulSoup4 & lxml (QTI XML) · MySQL (mysqlclient / PyMySQL) · openpyxl · requests · Pillow · pandas

This Website

Visit site

Personal portfolio and interactive resume. Dark defense-tech aesthetic, responsive, with collapsible resume sections and dedicated Projects and Contact pages.

Next.js 15TypeScriptTailwind CSSLucide React

Features

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

Tech stack

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