Deliverables
Every intermediate and formal deliverable for the semester. Submitted artifacts are linked directly from this table.
| Deliverable | Due | Status | Artifact |
|---|---|---|---|
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, 2026 | In progress | View |
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, 2026 | In 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, 2026 | In 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, 2026 | In 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, 2026 | In 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, 2026 | In 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, 2026 | Not 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, 2026 | Not 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, 2026 | In progress | View |
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, 2026 | Not started | — |
D2. Design document | October 20, 2026 | Not 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, 2026 | Not started | — |
Ethics assignment | October 21, 2026 | Not 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, 2026 | Not started | — |
D3. Test plan TODO: date is the team's internal target; confirm against the course page. | November 10, 2026 | Not 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, 2026 | Not started | — |
Client acceptance testing | November 17, 2026 | Not started | — |
D4. User manual TODO: date is the team's internal target; confirm against the course page. | November 30, 2026 | Not started | — |
Client hand-off plan TODO: date is the team's internal target; confirm against the course page. | November 30, 2026 | Not 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, 2026 | Not 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, 2026 | In progress | View |
Source code for the project lives in the team repository.