<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Projects on Ian Fang</title>
		<link>https://uwf-fang.github.io/projects/</link>
		<description>Recent content in Projects on Ian Fang</description>
		<generator>Hugo</generator>
		<language>en-us</language>
		
		
		
		
			<atom:link href="https://uwf-fang.github.io/projects/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>Academic Calendar</title>
				<link>https://uwf-fang.github.io/projects/academic-calendar/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://uwf-fang.github.io/projects/academic-calendar/</guid>
				<description>&lt;p&gt;Academic Calendar (&lt;code&gt;acalendar&lt;/code&gt;) is a Python command-line tool that turns a TOML configuration into a weekly course calendar. Define the term dates, add module topics and events, and export the result as CSV, an HTML table, or a LaTeX table snippet.&lt;/p&gt;&#xA;&lt;p&gt;The tool groups the term into Monday-to-Friday weeks and keeps partial weeks within the specified dates. Optional spring and Thanksgiving breaks insert labeled weeks with no classes. Weekly titles and events can use numbered or plain lines, and omitted fields produce blank cells.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Canvas Submission Organizer</title>
				<link>https://uwf-fang.github.io/projects/canvas-submission-organizer/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://uwf-fang.github.io/projects/canvas-submission-organizer/</guid>
				<description>&lt;p&gt;Canvas Submission Organizer is a Python command-line tool that extracts a Canvas assignment download into one directory per student. It handles both single-file submissions and projects submitted as ZIP archives.&lt;/p&gt;&#xA;&lt;p&gt;For repeated submissions, the tool treats the highest submission ID in the Canvas filename as the latest attempt. It places that attempt directly in the student&amp;rsquo;s directory and preserves earlier attempts under an &lt;code&gt;old/&lt;/code&gt; directory. Project mode can flatten a single enclosing folder from a submitted archive.&lt;/p&gt;</description>
			</item>
			<item>
				<title>GitHub Classroom Repos</title>
				<link>https://uwf-fang.github.io/projects/github-classroom-repos/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://uwf-fang.github.io/projects/github-classroom-repos/</guid>
				<description>&lt;p&gt;GitHub Classroom Repos provides the &lt;code&gt;classroom-repos&lt;/code&gt; Python command-line tool for maintaining a collection of cloned programming-project repositories. A YAML configuration identifies shared files, required content, templates, and paths to synchronize between starter and solution repositories.&lt;/p&gt;&#xA;&lt;p&gt;The tool can check README sections, build targets, test files, and other configured requirements across the collection. Pair commands compare starter repositories with their corresponding solution repositories and use marker files to track configured synchronization paths.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Semester Data Processor</title>
				<link>https://uwf-fang.github.io/projects/semester-data-processor/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://uwf-fang.github.io/projects/semester-data-processor/</guid>
				<description>&lt;p&gt;Semester Data Processor is a Python command-line tool for faculty and course coordinators who work with course rosters, Canvas gradebook exports, and learning-outcome assessments. It combines data from multiple sections and produces reports from a configurable assessment plan.&lt;/p&gt;&#xA;&lt;p&gt;The workflow merges section rosters, associates gradebook records with roster attributes, and evaluates selected assignments against specified thresholds. Assessment items can target particular majors and retain their own student populations and reporting totals.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Sphinx to Hugo</title>
				<link>https://uwf-fang.github.io/projects/sphinx-to-hugo/</link>
				<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
				<guid>https://uwf-fang.github.io/projects/sphinx-to-hugo/</guid>
				<description>&lt;p&gt;Sphinx to Hugo is a Python command-line tool for moving documentation into a Hugo website. It uses Sphinx to parse source documents and resolve references, then extends the upstream Markdown builder to produce Hugo content and supporting files.&lt;/p&gt;&#xA;&lt;p&gt;The converter writes page metadata, preserves supported code, math, figures, tables, and downloads, and records toctree relationships in a separate navigation manifest. Graphviz diagrams become SVG files with their DOT source retained. The output includes a small Hugo site for checking the conversion.&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
