Skip to content
COMP 523.002 · Team C

Deliverables

Every intermediate and formal deliverable for the semester. Submitted artifacts are linked directly from this table.

Repository of course deliverables
DeliverableDueStatusArtifact
Project website

Introduction, roles, contacts, schedule, team rules, journal, deliverables, and links are posted. Content is edited in content/*.ts on each weekly branch and kept current as the project moves, per the TA's weekly reporting requirement.

September 5, 2026In progressView
D1. Specifications

Functional requirements (lens system builder, aberration analysis, spot diagrams, optimization), non-functional requirements (URPS+: usable without writing code, fast feedback since LieOptics is 600-1000x faster than ray tracing, maintainable by the client after hand-off), and interface requirements (form/canvas builder, results views), prioritized Definite / Perhaps / Improbable. Draft started; not yet written up as a standalone document.

September 19, 2026In progress—
Team rules and coding practices

Team rules are posted on the home page (attendance, response time, pull-request review, blockers, confidentiality). Added this week: Gitflow branching, Conventional Commits, mandatory pre-commit hooks (commit-message + lint/typecheck), a Kanban board, and the weekly PPP report, per the TA's course requirements.

September 26, 2026In progress—
User stories

Draft stories: as an optics researcher, I want to define a multi-element lens system without writing code; as a student, I want to see aberration coefficients and a spot diagram for my design; as a researcher, I want to run an optimization over lens parameters and see the result. Still to write: acceptance criteria for each.

September 26, 2026In progress—
Platform selection

Leaning TypeScript + React + Electron for the UI, talking to the existing Python LieOptics backend through a thin API layer, so the client's computational code is not modified. Alternatives being weighed: a pure web app (no desktop install, but no native file access) vs. Electron (desktop packaging, works offline); a Python-native GUI (PyQt/Tkinter) was considered and set aside since the team's stronger skill set is web, not desktop Python GUI frameworks. Pros/cons write-up not finished.

September 26, 2026In progress—
Architecture diagram

Client-server-style diagram: Electron/React UI (ours) on one side, a thin API layer (ours) in the middle, and the existing LieOptics Python package (the client's, unmodified) on the other side. Still need to add the diagram image/file itself to the site.

September 30, 2026In progress—
System metaphor

Working idea: the app as an optical bench, where each lens element is a physical component you place and adjust, and the results panel is the measurement equipment reading off the bench. Not written up yet.

September 30, 2026Not started—
Midterm talk

Midterm talks run 10/5 to 10/12. Plan to show the frontend prototype (lens builder through mock results) and the platform/architecture decisions.

October 5, 2026Not started—
Week 2: frontend scaffold + mock prototype

Ahead of schedule: a Vite + React + TypeScript app is up with a lens-system builder form, a layout sketch, an aberration coefficient table, a spot diagram (3 field angles), and a mock optimization run, all behind a typed API interface so the real backend can be swapped in later. Not done yet: Electron packaging and the real LieOptics backend connection.

October 11, 2026In progressView
Week 3: lens builder wired to real backend

Replace the mock API with a thin service (or Electron child process) calling the real LieOptics Python package (OpticalSystemSpec, LensOptimizer, SpotDiagram), so results shown in the UI are real, not placeholder.

October 18, 2026Not started—
D2. Design document
October 20, 2026Not started—
Midpoint demo

Goal: lens definition through real aberration coefficients and a real spot diagram, end to end, using the real LieOptics backend rather than the current mock.

October 20, 2026Not started—
Ethics assignment
October 21, 2026Not started—
Weeks 5-6: layout visualization, save/load, error handling

Canvas-based lens visualization beyond the current sketch, saving and loading lens systems reliably, and surfacing backend errors (invalid parameters, failed optimization) in the UI instead of failing silently.

November 8, 2026Not started—
D3. Test plan

TODO: date is the team's internal target; confirm against the course page.

November 10, 2026Not started—
Week 7: optimization UI, phase-space plots, tests

Real differential-evolution optimization controls (bounds, constraints, progress), phase-space plots, and the start of an automated test suite feeding into the test plan below.

November 15, 2026Not started—
Client acceptance testing
November 17, 2026Not started—
D4. User manual

TODO: date is the team's internal target; confirm against the course page.

November 30, 2026Not started—
Client hand-off plan

TODO: date is the team's internal target; confirm against the course page.

November 30, 2026Not started—
Weeks 9-10: packaging and final polish

Electron installers for the target platforms, folding in client acceptance-testing feedback, and final presentation prep.

December 5, 2026Not started—
D5. Code and final presentation

Frontend prototype repository. A mock-data UI is up (builder, aberration table, spot diagram, mock optimization); the real LieOptics backend is not wired in yet, and Electron packaging has not started.

December 5, 2026In progressView

Source code for the project lives in the team repository.