Feature/backend - Aaron Fraze - #177
Open
fraze-dev wants to merge 9 commits into
Open
Conversation
adding task assignments
format readme
Sets up Maven project (Spring Boot 3.3.4, Java 17) with the com.edtech.noticeboard package layout from the README plan: config, controller, model, repository, and service packages with skeleton classes for each team member's owned area, plus MongoDB/mail wiring via application.properties env vars. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Wires CurriculumController/CurriculumService to TrainingPlanRepository with full create/read/update/delete, 404 handling for missing ids, and basic validation on title. Opens SecurityConfig to permitAll() so this is testable ahead of Mark's real auth. Verified end-to-end against the live Atlas cluster (create/list/get/update/delete all round-tripped). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…ackend
GlobalExceptionHandler normalizes 400/404 responses to {"message": "..."}
across all controllers, replacing Spring's default noisy error body.
API_CONTRACT.md replaces an earlier single-Notice draft that didn't match
what's implemented. It now documents the real multi-resource backend
(User/Cohort/TrainingPlan/ProgressLog), the working Curriculum API,
implementation status per resource, env vars, CORS, auth status, and
open items — so Alena/Danielle/Mark can build against what's actually
there instead of a stale draft.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Adds a daily @scheduled job (8am) that emails a digest of any ProgressLog entries with status=BLOCKED, using JavaMailSender (already configured via spring-boot-starter-mail). Only depends on ProgressLog.status, which should survive whatever field shape Aaron and Danielle land on, so this doesn't need to wait on that sync. Recipient address is configurable via NOTIFICATION_RECIPIENT_EMAIL. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Five Mockito-based tests covering: listing, 404 on read-by-id, id stripping on create, field updates on PUT, and 404 on delete. No real MongoDB dependency, runs fast via mvn test. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Postman collection covers the Curriculum API happy path (create -> list -> get -> update -> delete, chained via a captured id, self-cleaning) plus error cases (400 on blank title, 404 on missing id) with pm.test() assertions on each request. API_CONTRACT.md section 10 documents both this and the existing JUnit tests as the two testing layers. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR adds the backend submission for Group1_MAAD_Mark_Alena_Aaron_Danielle's NoticeBoardTracker project (an EdTech trainee-onboarding/progress tracker), under
workshops/fullstack-aws/projects/submission/Group1_MAAD_Mark_Alena_Aaron_Danielle/.Team: Aaron (fraze-dev) — Backend + MongoDB CRUD; Alena (futurecoder123456) — React frontend; Danielle (danielle-jack) — USP + UX; Mark (MarkPaulRosenthal) — Deployment + CI/CD.
This PR specifically covers the backend work:
com.edtech.noticeboard) with a multi-resource domain model (User/Cohort/TrainingPlan/ProgressLog)TrainingPlan), verified end-to-end against a live MongoDB Atlas cluster{"message": "..."}error responses via a global exception handlerNotificationServiceemailing a digest of blocked trainees dailyAPI_CONTRACT.mddocumenting the implemented backend for the rest of the team to build againstTest plan
mvn testpasses (context loads + 5 CurriculumService unit tests)