Skip to content

Iteration 2

Latest

Choose a tag to compare

@Jalen-Stephens Jalen-Stephens released this 04 Dec 22:08
4316d7c

Highlights

  • Added the Pulse web client (served from Spring Boot under / and /compose.html) for signup/login, upload, feed, and delete flows.
  • Introduced an ML-backed analysis pipeline with logistic regression scoring; /api/analyze/{analysisId} now returns confidenceScore, c2paUsed, and modelVersion (model data in src/main/resources/model.json).
  • Deployed to Heroku: https://meta-detect-service-f2e645d5db2c.herokuapp.com (Pulse + API on the same origin with Supabase JWT auth).
  • Strengthened testing and quality gates across unit, integration, live e2e, coverage, PMD, and Checkstyle.

Frontend (Pulse)

  • New auth page (index.html, app.js) handles signup/login, saves the Supabase JWT, and routes to Pulse Studio.
  • New composer/feed experience (compose.html, compose.js, compose.css, styles.css) for uploading images, adding captions/labels, polling analysis, viewing signed URLs, and deleting posts.
  • Same-origin config (config.js) keeps local and Heroku environments in sync; optional standalone static hosting still supported.

Backend & Model

  • Logistic regression model loader + feature extractor pipeline (LogisticRegressionService, ModelLoader, FeatureExtractor) with v1 weights/bias in src/main/resources/model.json.
  • Analysis results persist confidence on AnalysisReport and surface polling metadata (c2paUsed, modelVersion); manifests stored and retrievable via /api/analyze/{analysisId}/manifest.
  • Auth + ownership checks enforced on all /api/images/** and /api/analyze/** routes.

Deployment

  • Heroku production at https://meta-detect-service-f2e645d5db2c.herokuapp.com; Pulse client is served from the same origin.
  • Local dev remains mvn spring-boot:run on http://localhost:8080.

Testing & Quality

  • Unit/integration/API suite via mvn clean test; coverage target ≥ 80% branch (target/site/jacoco/index.html, screenshot reports/MetaDetect80.png).
  • Logistic regression-specific tests in src/test/java/dev/coms4156/project/metadetect/service/LogisticRegressionServiceTest.java; analyze service behavior in AnalyzeServiceTest.
  • Live end-to-end client+service test (ClientServiceLiveE2eTest) hits real Supabase/DB/storage when LIVE_E2E=true.
  • Static analysis: mvn checkstyle:checkstyle and mvn pmd:pmd (reports under target/site/); before/after evidence in reports/PMD with issues.png and reports/PMD without issues.png.
  • CI workflow (.github/workflows/ci-reports.yml) runs compile, tests, JaCoCo, PMD, Checkstyle, and uploads artifacts/screenshots; passing evidence in reports/CIPassingReport.png and reports/CIReportDowload.png.