-
Notifications
You must be signed in to change notification settings - Fork 0
Sprint 3
Context
Sprint 2 delivered a containerized application with basic model training and prediction capabilities, but lacks authentication, complete model management, and several critical UI components. Sprint 3 completes the project by implementing authentication, fixing structural issues, and preparing the final deliverable.
| Role | Member | Allocation |
|---|---|---|
| Lead Dev / CI | Lev @lm21363 | 30 |
| Full-stack Dev | Denisa @dv11079 | 15 |
| Full-stack Dev | Fares @fe18597 | 8 |
| Full-stack Dev | Huraira @ha06705 | 37 |
| Full-stack Dev | Kazi @kr09619 | 14 |
| Back-end & ML | Sameer @sk20179 | 27 |
Sprint window: 16 June → 4 July 2025 (3 weeks)
Sprint introduction: Friday, 20 June 2025
Deliver a production-ready application that:
- Fixes critical structural issues: Model synchronization, complete input forms, and multi-model selection
- Implements full authentication: JWT-based signup/login with role-based access control (admin vs user)
- Meets all project requirements: Complete feature set as specified in Project Requirements document
- Passes quality gates: E2E test coverage, browser compatibility, and CI/CD pipeline
- Delivers presentation materials: Presentation slides for final submission
Week 1 Focus: Critical fixes and codebase stabilization
Weeks 2-3 Focus: Authentication implementation and presentation preparation
Problem: Models exist as pickle files in model service but aren't visible in admin console due to backend-model service disconnect.
Problem: Missing fare (0-500$) and title (Master, Miss, Mr, Mrs, Rare) inputs in survival calculator.
Problem: No model selection UI; professor requires ability to run multiple models in single prediction call.
| ID | Task | Owner | Est h | Acceptance Criteria |
|---|---|---|---|---|
| A1 | fix/model-metadata-persistence |
Huraira | 6 | Model training saves features used and model ID to database; backend correctly displays all models with their actual features. |
| A2 | fix/backend-model-service-sync |
Huraira | 6 | Backend queries model service /models endpoint; admin console shows all trained models including defaults (rf, svm, lr, knn). |
| ID | Task | Owner | Est h | Acceptance Criteria |
|---|---|---|---|---|
| B1 | feat/backend-accept-fare-title |
Kazi | 4 | Backend prediction endpoint accepts fare and title; allows missing fields for features not used by selected models. |
| B2 | feat/fare-input-component |
Sameer | 4 | Add fare input (0-500$) to calculator form with validation. |
| B3 | feat/title-input-component |
Sameer | 6 | Add title dropdown (Master, Miss, Mr, Mrs, Rare) to calculator. |
| ID | Task | Owner | Est h | Acceptance Criteria |
|---|---|---|---|---|
| C1 | fix/anonymous-model-filtering |
Huraira | 3 | Backend /models endpoint returns only RF/SVM for anonymous users; all models for authenticated users. |
| C2 | feat/multi-model-prediction-backend |
Huraira | 8 | Backend accepts array of model IDs; returns prediction results for each selected model. |
| C3 | feat/model-selection-ui |
Huraira | 6 | Model selection checkboxes in calculator; enforces anonymous user restrictions in UI. |
| C4 | feat/multi-model-results-display |
Huraira | 4 | Frontend displays prediction results for each selected model in organized layout. |
| ID | Task | Owner | Est h | Acceptance Criteria |
|---|---|---|---|---|
| D1 | refactor/frontend-component-cleanup |
Denisa | 6 | Consolidate duplicate components; improve TypeScript types; mobile responsiveness fixes. |
| D2 | refactor/backend-error-handling |
Fares | 4 | Standardize error responses; improve validation messages; add request correlation IDs. |
| D3 | feat/per-user-prediction-history |
Denisa | 5 | Prediction history filtered by logged-in user; anonymous users see no history. |
| D4 | feat/calculator-prefill-randomize |
Denisa | 4 | Add "Randomize" button to prefill form with example values; set sensible defaults. |
| D5 | test/model-service-integration |
Kazi | 6 | Comprehensive integration tests for model training/inference endpoints. |
| D6 | feat/model-data-preprocessing |
Sameer | 6 | Ensure model service preprocessing matches original notebook exactly. |
| D7 | feat/field-relevance-highlighting |
Sameer | 5 | Calculator highlights which fields are used by selected models. |
| ID | Task | Owner | Est h | Acceptance Criteria |
|---|---|---|---|---|
| E1 | feat/jwt-refresh-tokens |
Lev | 6 | Implement refresh token endpoint; auto-refresh in frontend AuthContext. |
| E2 | feat/httponly-cookie-auth |
Lev | 6 | Store JWT in HttpOnly cookies; update all auth flows to use secure cookies. |
| E3 | feat/configurable-admin-user |
Lev | 4 | Backend creates admin user on startup from environment variables. |
| E4 | fix/admin-route-protection |
Huraira | 4 | Verify admin console and model management properly restricted to admin users. |
| ID | Task | Owner | Est h | Acceptance Criteria |
|---|---|---|---|---|
| F1 | test/e2e-authentication-flow |
Lev | 8 | Playwright tests covering signup → login → predict → admin workflows. |
| F2 | test/cross-browser-compatibility |
Kazi | 4 | Verify functionality on Chrome ≥119, Firefox ≥122, Safari ≥16.1. |
| F3 | test/manual-deployment-verify |
Lev | 4 | Document manual testing on Ubuntu 24.04 VM; create deployment checklist. |
| ID | Task | Owner | Est h | Acceptance Criteria |
|---|---|---|---|---|
| G1 | docs/presentation-slides |
Alex | 8 | 10-15 slides covering architecture, features, individual contributions; professional design. |
| G2 | docs/final-documentation-update |
Sameer | 6 | Complete README files; deployment instructions; architecture diagrams; feature documentation. |
| G3 | docs/individual-contribution-slides |
ALL | 2×6 | Each team member creates personal contribution slide for presentation. |
| G4 | docs/submission-preparation |
Fares | 4 | Prepare ZIP archive with all required components; verify submission checklist. |
Total planned effort = 125 h (within capacity 126 h).
- Landing page with navigation
- Basic survival calculator (partial)
- Admin model training and deletion
- Prediction history for logged users
- User registration with email/password (pending merge)
- User login with authentication (pending merge)
- Role-based access control (pending merge)
- Complete passenger definition: Add fare (0-500$) and title inputs
- Model selection: Anonymous (RF/SVM only) vs Logged users (any combination)
- Continuous prediction updates: Real-time updates on input change
- Optional fields: Allow missing inputs for features not used by selected models
- Docker containerization
- FastAPI backend
- React frontend with TypeScript
- GitLab CI/CD pipeline
- Docker Compose orchestration
- E2E test configuration (Playwright)
- E2E Tests: Complete test coverage implementation
- Browser Compatibility: Chrome ≥119, Firefox ≥122, Safari ≥16.1
- Mobile Optimization: Complete responsive design
Primary Owners: Huraira, Kazi
Support: Fares, Denisa, Sameer, Lev
Must Complete:
- Model synchronization with proper feature tracking
- Complete calculator form (fare + title inputs)
- Multi-model selection with role-based filtering
- Backend accepting optional fields
Secondary Tasks:
- Per-user history filtering
- Form prefill/randomize functionality
- Field relevance highlighting
Primary Owners: Lev, Kazi, Huraira
Support: Others on testing and documentation
Must Complete:
- Merge existing authentication implementation
- JWT refresh tokens
- HttpOnly cookie implementation
- Configurable admin user creation
All Team Members
Must Complete:
- E2E test suite completion
- Browser compatibility verification
- Presentation slides
- Final documentation and deployment verification
| Area | Completion Criteria |
|---|---|
| Functionality | All Project Requirements implemented; calculator accepts all inputs with optional fields; multi-model prediction working |
| Authentication | Complete signup/login flow; admin routes protected; JWT in HttpOnly cookies; refresh tokens working |
| Quality | E2E tests covering main user journeys; cross-browser compatibility verified |
| Deployment | Single-command deployment (docker compose up --build -d) on clean Ubuntu 24.04 |
| Documentation | Complete README files; presentation slides ready |
| Presentation | 10-15 slides; individual contribution slides |
| Risk | Impact | Mitigation |
|---|---|---|
| Week 1 critical fixes not completed | High | Daily standups; pair programming; focus on must-have features only |
| Authentication integration issues | Medium | Early merge of existing PR; incremental improvements |
| E2E test implementation delays | Medium | Focus on core user journeys; manual testing as backup |
| Browser compatibility issues | Low | Test early in Week 3; document known issues if any |
- Daily Standups: Mon/Wed/Fri 16:00 CEST (15 min)
- Sprint Introduction: Wed 18 June 16:00 CEST (Sprint 3 kickoff)
- Mid-sprint Review: Fri 27 June 16:00 CEST (Authentication checkpoint)
- Final presentation: Fri 4 July 16:00 CEST (Showcase all features)
- Project Retrospective: Sun 6 July 15:00 CEST (Project closure)
Merge Policy: ≥1 peer review + green CI + linked issue + conventional commits
- All 3 critical epics (A, B, C) completed by June 22
- Authentication system fully functional by June 29
- E2E test coverage of main user flows
- Zero-config deployment working on fresh Ubuntu 24.04
- Presentation slides completed (10-15 slides)
- All team members have individual contribution slides
- Final ZIP submission includes all required components
- Cross-browser compatibility verified
- Mobile responsiveness working
- All Project Requirements checklist items completed
- Documentation updated and accurate
Technical Deliverables:
- Complete Titanic Survivor Prediction Application
- Docker Compose deployment configuration
- Source code with Git repositories
- Comprehensive documentation
Presentation Deliverables:
- Presentation slides (10-15 slides)
- Individual contribution slides (6 slides)
- Architecture overview and technical highlights
Submission Package:
- ZIP archive with all source code
- README with build/run instructions
- PDF of team presentation
- All Git repositories as required
Final sprint prepared by team/random_iceberg · Sprint 3 begins 16 June 2025