Skip to content

pc - issue1 (set up initial repo with minimal scaffolding based on proj-scaffold) - #2

Merged
pconrad merged 4 commits into
mainfrom
pc-issue1
Aug 8, 2026
Merged

pc - issue1 (set up initial repo with minimal scaffolding based on proj-scaffold)#2
pconrad merged 4 commits into
mainfrom
pc-issue1

Conversation

@pconrad

@pconrad pconrad commented Aug 8, 2026

Copy link
Copy Markdown
Contributor

In this PR, we build a basic framework for the app, building on a stripped down version of https://github.com/ucsb-cs156/proj-scaffold

Closes #1

Backend (edu.ucsb.cs.citelines):

  • Spring Boot app renamed from ScaffoldApplicationCitelinesApplication; kept only the Auth/Admin/Researcher/Jobs/Developer-page slice per the issue.

  • InstructorResearcher renamed everywhere (entity, repo, controller, ROLE_INSTRUCTOR→ROLE_RESEARCHER, DB table). 71/71 tests pass.

Frontend

  • trimmed to Auth/Common/Jobs/Nav/Users components and Admin/Auth/Help/Home pages per the issue; App.tsx rewritten; placeholder home page. 118/118 tests pass, lint/typecheck/build/Storybook all clean.

Judgment calls where the issue's literal file lists conflicted with a working app (issue said to ask when unsure, so flagging these rather than burying them):

  • Dropped CourseSecurity.java despite "(18) keep all config files" — it depends on Course/Concept/RosterStudent, none of which are kept, and nothing in the kept controller set uses it.

  • Kept SystemInfoController.java even though it's not in the (19) controller list — without it, /api/systemInfo is dead and the Developer page, Swagger/H2 links, and OAuth login button all break. Stripped its /schools endpoint (that used the removed School enum).

  • Kept WiremockService/Impl/Dummy (services/wiremock package) since the explicitly-kept WiremockApplicationRunner depends on them.

  • Added a Jobs link to the Admin nav dropdown — it existed as a route in upstream scaffold but had no menu entry anywhere.

  • Left the .github/workflows/43/44 deploy targets pointing at dokku-sync's 00-sync-scaffold*.yml — renaming those would point at workflows that don't exist in that external repo; that infra will need a citelines counterpart set up separately before those workflows can run.

  • Left ScaffoldApplicationRunner.java/ScaffoldApplicationRunnerTests.java named as-is — the issue named that exact file to keep, unlike ScaffoldApplication.java which it explicitly said to rename.

pconrad and others added 2 commits August 7, 2026 21:31
Builds the initial app shell for citelines from proj-scaffold, keeping only:
Google OAuth login/logout, Admin management of Admins/Researchers (renamed
from Instructors), the background jobs subsystem (with the TestJob), and an
Admin Developer page. The home page is a placeholder.

Backend: package renamed edu.ucsb.cs.scaffold -> edu.ucsb.cs.citelines,
ScaffoldApplication -> CitelinesApplication, Instructor -> Researcher
(entity/repository/controller/role), trimmed controllers/entities/services/
jobs/repositories/DB migrations to only what the shell needs, and dropped
CourseSecurity (its Course/Concept/RosterStudent dependencies are gone).
Restored SystemInfoController, which the literal controller list omitted
but the Developer page and nav require.

Frontend: trimmed components/pages/utils/fixtures per the issue, removed
main/api and main/data, rewrote App.tsx routing, simplified AppNavbar/
Footer/BasicLayout (dropped course-menu and concept-graph-canvas specific
code), and renamed Instructors pages/routes to Researchers.

Removed docs/ down to oauth.md, and scripts/set-pat-encryption-key.sh.

Backend: 71/71 tests passing. Frontend: 118/118 tests passing, lint clean,
build clean, Storybook build clean.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
pconrad and others added 2 commits August 8, 2026 12:14
ApiController.handleForbiddenException and handleIllegalArgument (and
ForbiddenException's constructor) were never exercised by any test, since
CourseSecurity (the original thrower of ForbiddenException) was removed
and nothing threw a plain IllegalArgumentException. Added two endpoints to
the existing DummyController test helper and a new ApiControllerTests to
exercise both handlers directly.

Verified locally with the same command CI runs:
mvn -ntp -B test jacoco:report verify -> BUILD SUCCESS, all coverage
checks met (100% instructions/lines, 0 missed classes).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
npm run format reflowed two files I'd hand-edited (AboutCitelines.jsx and
its test) to match the project's Prettier style, fixing the 35-frontend-
format workflow.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@pconrad
pconrad merged commit ca95df2 into main Aug 8, 2026
20 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Build basic Spring Boot / React app

1 participant