IITM Online BS · Software Engineering Project · May 2026 Term
Chinmoy Das (22f2000481) is back from sick leave and resumes Product Manager +
Tester duties. Roles revert to the Milestone 1/2 base mapping; the Sprint 1 reassignment
(Muktavali as PM/Tester stand-in, Abhijay as primary Code Reviewer) no longer applies.
Per process rule, the PM and Scrum Master finalize the schedule only after discussing with
the whole team — this is the starting proposal, not a final assignment.
Sprint 2 Deliverables (official list)
Changes made based on user feedback.
Updated documentation of APIs in a Swagger-compatible YAML file.
Backend code of the implemented APIs — the YAML must have all the error
handling, user-story mapping, and a description of each API listed, same bar as Sprint 1,
applied to whatever is new or changed.
Proper test cases to test the updated API.
Submit pytest code for the updated API.
Sprint 2 is explicitly framed (Milestone 3 report, Section 13) as feedback-driven refinement
of the existing 6 epics, not new epics. Scope is narrow and well-defined — see below.
What “User Feedback” Means This Sprint
From
Ask
Society Secretary
Manual complaint reassignment via a dedicated API endpoint (today, reassignment requires changing the complaint category as a workaround).
Treasurer
A treasury ledger module so the financial forecast computes its opening balance from real historical transactions instead of a placeholder constant.
Resident
Server-side pagination for bills and complaints lists (currently return complete, unpaginated result sets).
Security Guard
A simplified mobile-friendly gate interface (frontend) — the current Swagger-based interface is backend-testing-oriented.
Deadline stated in the Milestone 3 report for these items: 12 August 2026.
Frontend ↔ backend integration was already wired in PRs #16–21 (merged 1 Aug) and PWA support
in PR #23 (merged 3 Aug) — ahead of the Milestone 3 report text, which still lists it as a
Sprint 2 priority. Treat that as already done; Sprint 2 frontend work is the admin UI + mobile
gate interface + pagination UI, not re-wiring what's already live.
Carried forward from Sprint 1 — unfinished work, not just new features
Two kinds of things are still open from Sprint 1: feature items the M3 report itself
deferred, and process/evidence gaps that were never actually done despite being claimed.
Both need to land in Sprint 2, not just the 4 user-feedback items above.
Real independent testing of the Sprint 1 modules (Auth, Finance,
Security, Complaints, Community, Operations, AI, Onboarding/Meta/Vendor). Abhijay's
Sprint 1 "test suite" (api_test_code/*.py on the Testing
branch) is byte-for-byte identical to Aditya's own backend/tests/*.py —
confirmed via diff, 0 lines different across all 12 files. Nobody has independently
verified these 8 modules yet — the single biggest carry-over item.
Real pytest terminal screenshots for the original 199-test Sprint 1
suite — never delivered in either the WhatsApp zip or the actual submitted Milestone 3
package (both explicitly admit "not included"). Cheap to backfill now.
A genuine expected-vs-actual mismatch with a before/after fix. Both
Sprint 1 submissions substituted negative-path tests or environment setup notes for
this. If independent testing turns up a real bug, write it up properly this time.
File any bug found as a GitHub Issue — this process has never
actually been exercised (zero bug-report issues exist in the repo to date).
Complaint routing upgrade (Story 6.7: rule-based category→vendor
lookup to a real ML/LLM classifier) — item 5 in the M3 report's own Sprint 2 Plan.
Treat as a stretch item: don't let it crowd out the 3 committed user-feedback
endpoints. If it doesn't fit, explicitly re-defer to Sprint 3 rather than silently
dropping it again.
Tester (secondary, with Chinmoy) + Code Reviewer (secondary)
Lessons from Sprint 1 — non-negotiable this time
The Sprint 1 testing submission had four specific problems that must not repeat, given the
narrow scope this sprint makes them easy to avoid:
Tests must be new code written against the 3 changed/added endpoints
(manual reassignment, treasury ledger forecast, pagination) — not a copy of the existing
199 tests under a new folder name. This is directly checkable: the new test files should
have no matching content in backend/tests/*.py on main.
Actual screenshot image files (pytest terminal grabs) must be attached —
not a markdown document that lists screenshot filenames which don't exist in the branch.
Submit via feature branch + Merge Request, linked to a GitHub Issue, with
a reviewer tagged — not a raw branch pushed via GitHub's web upload UI with no PR opened.
If a real bug is found in the new endpoints, file it as a GitHub Issue and
write the expected-vs-actual showcase from that real bug — don't substitute
environment/setup notes or re-labeled negative-path tests for a genuine mismatch.
Tasks per Person
Chinmoy Das · 22f2000481
Product ManagerTester (primary)
Coordinate Sprint 2 end-to-end; confirm the 3-item backend scope + 3-item frontend scope
with the team before work starts.
Own the test case tables for the updated APIs (full format: API being tested, Inputs,
Expected Output, Actual Output, Result), cross-checked against Abhijay's.
Independently test the 3 new/changed endpoints against the demo users; don't rely solely
on Aditya's own basic pytest for sign-off.
Oversee Abhijay's backfilled independent testing of the 8 Sprint 1 modules
(carry-over item 1) — specifically verify it's genuinely new test code, not a repeat
of the copy-paste problem from Sprint 1.
Collect a second round of user feedback once the fixes are live (demo + outside users)
for the Milestone 4 feedback loop.
Compile the Sprint 2 submission: updated openapi.yaml, updated backend code,
new test cases + pytest code, user feedback summary, plus the backfilled Sprint 1
evidence (screenshots, independent test results).
Muktavali Rao · 23f1001172
Scrum MasterCode Reviewer (primary)
Run standups with Aditya and Ramakrishnan; keep the sprint board updated.
Primary code reviewer on all Sprint 2 MRs — verify the new/changed endpoints, review test
coverage, confirm the YAML was updated to match.
Keep scrum minutes for the milestone document.
Aditya Kumar · 23f3004176
Backend DeveloperScrum Master (secondary)
Update Swagger YAML for the 3 changed/added endpoints first (schemas,
status codes, error responses, x-user-stories mapping) — Swagger-first, not
auto-generated-from-code-after-the-fact like Sprint 1's version.
Implement: manual complaint reassignment endpoint (dedicated PATCH/POST, not a
category-change workaround).
Implement: treasury ledger module feeding the forecast's opening balance from real
historical transactions.
Implement: server-side pagination for /bills and /complaints
list endpoints.
Write basic pytest for each of these 3 endpoints immediately after coding them (this
worked well in Sprint 1 — keep doing it).
Verify docker-compose.yml against a live Docker daemon (Known Limitations
item from the M3 report) and fix anything that surfaces.
Stretch, only if the above finishes early (carry-over item 5): complaint
routing upgrade, Story 6.7, rule-based category→vendor lookup to a real ML/LLM
classifier. Do not let this displace the 3 committed endpoints above.
S Ramakrishnan · 22f3000400
Frontend DeveloperBackend Developer (secondary)
Build the 2 lean admin UI pages for society/flat/user onboarding (currently
Swagger/Postman-only).
Build the simplified mobile-friendly gate interface for Security Guard (visitor
verification, walk-in registration, courier tracking).
Wire the frontend to the new pagination and manual-reassignment endpoints once Aditya
ships them.
Write genuinely independent tests for the 8 existing Sprint 1 modules — read the
existing backend/tests/*.py first so the new tests are provably different,
not a copy under a new filename.
Capture real pytest terminal screenshots (actual image files) for the original
199-test suite.
If independent testing turns up a real bug anywhere in Sprint 1's surface, file it as a
GitHub Issue and write a proper expected-vs-actual showcase with the before/after fix.
Priority 2 — the 3 new Sprint 2 endpoints:
Write new pytest tests for the 3 changed/added endpoints (happy path +
validation/error cases) — see the non-negotiables above.
Cross-test Aditya's 3 new endpoints independently of his own basic tests (find gaps his
tests don't cover, not duplicate them).
Update the test case matrix with the new cases (Case ID / Endpoint / Scenario / Inputs /
Expected / Actual / Result).
Capture real pytest terminal screenshots for these endpoints.
File any real bug found as a GitHub Issue; write the expected-vs-actual showcase from an
actual finding if one turns up.
Process, both priorities:
Submit via feature branch + MR, linked to an Issue, reviewer tagged (Muktavali, since
these test Aditya's modules).
Secondary code review on Ramakrishnan's frontend MRs.
Kanban / Jira Task Cards (copy-paste ready)
One line = one card. In Jira: Backlog → + Create issue (or Bulk create), paste a
block below, then set the Assignee once for the whole block. All cards start in
To Do.
Chinmoy Das — assignee: Chinmoy · 6 cards
Confirm Sprint 2 scope with the team, including carried-forward items 1-5
Own test case tables for the 3 updated/added endpoints (full format)
Independently test the 3 new endpoints against demo users
Oversee Abhijay's backfilled Sprint 1 testing - verify it's genuinely new, not copied
Collect second round of user feedback once fixes are live
Compile Sprint 2 submission: YAML + backend code + tests + feedback summary + backfilled Sprint 1 evidence
Muktavali Rao — assignee: Muktavali · 3 cards
Run standups, keep sprint board updated
Primary code review on all Sprint 2 MRs + verify test coverage
Keep scrum minutes for the milestone document
Aditya Kumar — assignee: Aditya · 7 cards
Swagger-first YAML: manual complaint reassignment endpoint
Implement manual complaint reassignment endpoint
Swagger-first YAML + implement treasury ledger module (forecast opening balance)
Swagger-first YAML + implement pagination for /bills and /complaints
Basic pytest for all 3 new/changed endpoints
Verify docker-compose.yml against a live Docker daemon
[Stretch] Complaint routing upgrade: rule-based -> ML/LLM classifier (Story 6.7)
S Ramakrishnan — assignee: Ramakrishnan · 3 cards
Build 2 lean admin UI pages (society/flat/user onboarding)
Build simplified mobile-friendly gate interface for Security Guard
Wire frontend to new pagination + manual-reassignment endpoints
Abhijay Sharma — assignee: Abhijay · 10 cards
[P1] Write genuinely independent tests for the 8 existing Sprint 1 modules (not a copy of backend/tests/*.py)
[P1] Capture real pytest terminal screenshots for the original 199-test suite
[P1] File any real Sprint-1 bug found as a GitHub Issue + write a proper expected-vs-actual showcase
[P2] Write new pytest tests for the 3 changed/added endpoints (not a copy of existing suite)
[P2] Cross-test Aditya's 3 new endpoints independently
[P2] Update test case matrix with new cases (Case ID / Endpoint / Scenario / Inputs / Expected / Actual / Result)
[P2] Capture real pytest terminal screenshots for the 3 new endpoints
[P2] File any real bug found as a GitHub Issue + write expected-vs-actual showcase if found
Submit via feature branch + MR, linked to an Issue, reviewer tagged (Muktavali)
Secondary code review on Ramakrishnan's frontend MRs
Deadline & Scope Note
Target completion per the Milestone 3 report: 12 August 2026. Scope is
deliberately narrow (3 backend changes, 2 frontend pieces) — resist pulling in the
“Part 2 — Recommended” wishlist items (mobile OTP login, amenities booking, classifieds,
audit logs, exports); those are flagged as new epics beyond the original 6, out of scope
for this sprint.