MVP Milestone Individual Contribution: Emine Türk - bounswe/bounswe2026group11 GitHub Wiki

MVP Milestone Individual Contribution: Emine Türk

Emine Türk (Frontend)

Responsibilities

  • Took ownership of critical user-facing flows within the web frontend application, ensuring core paths such as profile management and authentication recovery are functional, secure, and user-friendly.
  • Designed and implemented robust routing safety nets by establishing global fallback states for unhandled paths and unauthorized access attempts.
  • Improved the general frontend user experience (UX) by iteratively refining the placement and visibility of critical actions, particularly around event participation.
  • Maintained a high standard of code quality by handling various UI edge cases, loading states, API connections, and comprehensive error feedback mechanisms across all developed pages.
  • Collaborated closely with backend constraints and frontend architecture standardizations, actively participating in pull request reviews and team alignment discussions over the MVP sprint.

Main Contributions

  • Authentication Recovery (Forgot Password): Designed and implemented the complete "Forgot Password" flow. This included building the form interface, handling client-side form validation, connecting the frontend strictly with the backend authentication service for generating email recovery tokens, and presenting clear success or error feedback to the user depending on the server response.
  • Profile Management (Profile Editing): Developed the profile editing interface, allowing users to seamlessly keep their personal details up to date. This involved fetching the active user profile, safely populating the form fields with existing data, handling asynchronous state updates upon submission, and ensuring that the global application state reflects these modifications reliably.
  • Global Fallback & Access Control Routing: Engineered the application's global error-handling UI by creating centralized NotFoundView (404) and AccessDeniedView (403) pages. Integrated these custom fallback screens into the primary React Router configuration to gracefully intercept unauthorized visits or broken links. This effectively prevents raw visual page crashes and guides users back to safe navigation paths.
  • Event Participation (Leave Event): Implemented the core interaction allowing users to actively leave an event they had previously joined. Ensured that this action cleanly communicates with the backend while appropriately managing view-model loading states to prevent duplicate network submissions.
  • UX Refactoring for Event Actions: Conducted a significant user experience refactor for the "Leave Event" functionality. The action button was safely migrated from the high-level 'My Events' overview cards down into the dedicated 'Event Detail' page. This architectural UI pivot reduces visual clutter on the cards and prevents accidental "leave" clicks by ensuring users are explicitly viewing an event's context before deciding to withdraw.
  • Foundational Architecture: Contributed to the early stages of the frontend setup by building out interface layouts and interactive stub components that helped define the MVP structural layout before the full data integration phase.

Pull Requests

  • PR #228 (Issue #223): Implemented the end-to-end forgot password flow, focusing on form validation, API integration with the auth service, and secure user feedback mechanisms.
  • PR #239 (Issue #168): Implemented the profile editing view, managing form state, dynamic rendering, and backend synchronization for user details.
  • PR #282 (Issue #189): Implemented restricted access (403) and fallback (404) state pages, seamlessly embedding them into the root router config to prevent application breakage on invalid URLs.
  • PR #378 (and related refactoring): Executed the integration of the Leave Event capability and successfully refactored the design to relocate the action into the Event Details context for structural safety and a cleaner card layout.
  • PR #108: Created initial layout components and interactive stubs used as temporary visual placeholders during the root frontend setup.

Tests & Verifications

  • Form Validation & State Tests: Verified correct handling of disabled button states, empty fields, and API-driven error messaging within the dynamically changing Forgot Password and Profile Edit forms.
  • Routing Guard Verifications: Manually and structurally enforced test paths for unauthenticated users, ensuring they are reliably caught by the AccessDeniedView when trying to access protected routes, and that any broken links accurately land on the NotFoundView interface.
  • Contextual Action Rollbacks: Ensured that the useEventDetailViewModel properly resolves optimistic and pessimistic state updates for the Leave Event action, successfully handling network errors without desyncing the user interface.

Additional Information

  • Organized and adapted the user experience flows iteratively based on usability testing and layout density (e.g., refactoring the Leave Event button).
  • Communicated effectively with the backend team for API contract expectations over the Forgot Password and User Editing endpoints.
  • Maintained responsive communication during PR reviews and feature scope adjustments over the course of the MVP sprint.