Individual Contributions - bounswe/bounswe2026group9 GitHub Wiki

D7. Individual Contributions


Can Emir Bora (Backend, Mobile, DevOps, Documentation)

Responsibilities: Backend discovery & social APIs (bookmarking, attendance, host profile/ratings), Android mobile integration (auth screens, discovery, notifications, profile, private event flows, MVP polish), frontend bug fixes, CI/CD (Android APK automation), database schema design, demo preparation. Authored all UML diagrams (class, use case [co-authored], sequence) and compiled all milestone deliverable documents (D1–D7).

Main Contributions: Backend discovery/social endpoints; Android mobile screens for discovery, auth, notifications, profile; host rating eligibility enforcement; Android APK GitHub Actions workflow; map view security fix; all deliverable documentation.

Significant Issues:

Code-Related:

  • #100: Implement Event Discovery and Search API — built the full GET /events endpoint with text search, category/temporal filters, pagination, and guest vs. auth field differentiation
  • #130: Implement host rating, host profile, and user profile update endpoints — includes rating eligibility check (must have attended an ended event by the host)
  • #218: Create Android APK automation — GitHub Actions workflow that builds debug APK on every push to main and attaches it to releases

Non-Code-Related:

  • #86: Create initial database tables — designed primary schema for events, users, categories, locations, and social features
  • #189: Create Project Plan, Communication Plan, RAM page — compiled team process documentation for D4
  • #93: Prepare initial mobile design draft and basic mock app — established mobile UX patterns used throughout development

Pull Requests:

  • #95: feat: Create SQL queries and tables for primary tables
  • #103: feat: Implement Event Discovery and Search API
  • #138: feat: Add host profile, status updates, bookmarking, and capacity
  • #167: fix: Auth page rebuild; feat: mobile event discovery page
  • #188: feat: Notifications, my profile, and private request logic
  • #212: fix(frontend): Multiple UI and UX fixes for MVP milestone
  • #215: fix(mobile): MVP polish — auth, event detail, profile, notifications, map
  • #217: fix(web): Remove Going/Request button from map view popup
  • #219: fix: Restrict host rating to users who attended an ended event
  • #221: devops: Add GitHub Actions workflow to build Android APK
  • #223: fix(mobile): Display comment replies in event detail

Additional Information: Prepared all D1–D7 milestone deliverable documents including SRS, UML diagrams (class diagram, 4 use case diagrams, 6 sequence diagrams), scenarios, RAM, and this review document. Coordinated demo data setup and presentation flow.

All Issues (assigned):

# Title
#86 Create initial database tables
#93 Prepare initial mobile design draft and basic mock app
#100 Implement Event Discovery and Search API
#102 Revoke direct DB access for anon and authenticated roles
#112 [Mobile] Implement mobile discovery list screen integration
#113 [Mobile] Implement auth screens
#118 Implement Bookmark API and Expose Bookmark State in Event Responses
#119 Implement Attendance API with Going and Interested Statuses
#121 Enforce Attendee Limit in Going Flow
#130 Implement host rating, host profile, and user profile update endpoints
#166 Hotfix deployment issue — .gitkeep and hardcoded email
#171 [Mobile] Implement in-app notifications list
#174 Fix web event detail page and authorization issue
#183 Implement My Profile Settings Screen on Mobile
#184 Implement Private Event Invite and Access Request UI on Mobile
#189 Create Project Plan, Communication Plan, RAM page
#210 [BUG] Age-restricted events not visible in discovery
#213 [BUG] Block web map view request/going button
#214 [BUG] fix(mobile): MVP polish — multiple UX and bug fixes
#216 [BUG] Fix no restriction on giving rating to host
#218 Create Android .apk automation as wanted in MVP Milestone
#145 Create All Issues Including Final Milestone
#147 Create MVP Milestone Demo Plan

Pull Requests (authored):

# Title
#95 feat: Create SQL queries and tables for primary tables
#103 feat: Implement Event Discovery and Search API
#138 feat: Add host profile, status updates, bookmarking, and capacity
#165 hotfix: Add frontend public .gitkeep for deployment fix
#167 fix: Auth page rebuild; feat: mobile event discovery page
#175 fix(frontend): Fix event detail race condition and infinite re-render
#186 hotfix: Rename /notifications to /inbox (nginx conflict)
#188 feat: Notifications, my profile, and private request logic
#196 fix: Add missing Suspense boundary to /profile/me
#211 fix(frontend): Show age-restricted events in discovery
#212 fix(frontend): Multiple UI and UX fixes for MVP milestone
#215 fix(mobile): MVP polish — auth, event detail, profile, notifications, map
#217 fix(web): Remove Going/Request button from map view popup
#219 fix: Restrict host rating to users who attended an ended event
#221 devops: Add GitHub Actions workflow to build Android APK
#223 fix(mobile): Display comment replies in event detail

Faik İhsan Südüpak (Backend, Mobile, DevOps)

Responsibilities: Entire FastAPI backend (auth, events, discovery, comments, invites, notifications, access requests, ratings), 209 backend tests and CI pipeline, backend and frontend deployment to EC2, mobile event detail and social feature screens.

Main Contributions: Full backend API from scratch; 209 integration + unit tests across 17 test files; GitHub Actions CI with ruff + pytest sharding; EC2 deployment with Docker; mobile event detail, comments, host profile, and error pages.

Significant Issues:

Code-Related:

  • #88: Set up authentication foundation — JWT access + refresh token rotation, bcrypt hashing, email verification, Google OAuth, account lockout
  • #99: Implement Event CRUD endpoints — full event lifecycle state machine, image requirement on publish, venue metadata, age restriction
  • #108: Implement private event invite and access-request endpoints — token generation, max uses, expiry, idempotent acceptance, approve/reject flow

Non-Code-Related:

  • #97: Set up CI pipeline — ruff lint + pytest sharding on every PR touching backend
  • #131: Deploy backend — Dockerized EC2 deployment with nginx at thesocialeventmapper.social
  • #133: Improve backend test suite — pyramid restructuring, autouse cleanup fixtures, CI sharding

Pull Requests:

  • #94: feat: Authentication backend with JWT, email verification & Google OAuth
  • #98: feat: Add auth tests and CI pipeline
  • #101: feat: Event CRUD, categories, image upload with tests
  • #132: feat: Add comments, invites, notifications, and access control system
  • #136: Add backend deployment workflow and EC2 setup
  • #140: Optimize backend test pyramid and CI sharding
  • #144: Integrate frontend into production deploy pipeline
  • #172: Implement mobile event detail screen and bookmark/going actions
  • #173: Implement mobile comments, host profile, and rate host
  • #187: Implement mobile error pages: 404, access denied, underage warning

Additional Information: Composer of all 209 backend tests — maintained 0 failures on main throughout the semester. Handled all production infrastructure (EC2, nginx, Docker Compose, SSL, deploy pipeline).

All Issues (assigned):

# Title
#87 Initialize FastAPI backend
#88 Set up authentication foundation for backend
#96 Write unit and integration tests for authentication endpoints
#97 Set up CI pipeline with GitHub Actions for backend
#99 Implement Event CRUD endpoints and category listing
#105 Implement event comment endpoints
#106 Implement notifications API with mark-as-read support
#107 Emit notifications on event update and cancellation
#108 Implement private event invite and access-request endpoints
#116 [Mobile] Implement mobile event detail screen integration
#117 [Mobile] Implement mobile bookmark and going actions
#131 Deploy backend to accessible URL
#133 Improve backend test suite performance and stability
#141 Handle naive datetime payloads safely in event creation/update
#142 Integrate frontend deployment into production CD pipeline
#154 Apply non-blocking backend improvements
#170 [Mobile] Implement comments and host profile UI
#185 [Mobile] Implement error pages (404, access denied, underage warning)
#145 Create All Issues Including Final Milestone
#147 Create MVP Milestone Demo Plan

Pull Requests (authored):

# Title
#94 feat: Authentication backend with JWT, email verification & Google OAuth
#98 feat: Add auth tests and CI pipeline
#101 feat: Event CRUD, categories, image upload with tests
#132 feat: Add comments, invites, notifications, and access control system
#136 Add backend deployment workflow and EC2 setup
#140 Optimize backend test pyramid and CI sharding
#143 Handle naive event datetimes safely
#144 Integrate frontend into production deploy pipeline
#155 Apply non-blocking backend improvements
#172 Implement mobile event detail screen and bookmark/going actions
#173 Implement mobile comments, host profile, and rate host
#187 Implement mobile error pages: 404, access denied, underage warning

İbrahim Fırat Yoğurtçu (Frontend)

Responsibilities: Web frontend feature screens (discovery, event detail with guest/private/age-gate states, notifications, private invite/access flow, error pages, my events dashboard), requirements readability improvements, initial web design mockups. Co-authored the use case diagram.

Main Contributions: Event discovery page with search/filters/pagination; event detail page with all access control states; private event invite & access request UI; notifications page; my events dashboard; error pages (404, access denied, underage).

Significant Issues:

Code-Related:

  • #124: Implement discovery page — map/list toggle, search, category/temporal filters, pagination, guest vs. auth card differences
  • #125: Implement event detail page — full detail, limited preview for guests, private restricted view, age gate, image carousel, bookmark/going buttons, comments
  • #180: Implement Private Event Invite and Access Request UI — Request Access button, pending state persistence, host invite panel, approve/reject management

Non-Code-Related:

  • #65: Highlight key requirement parts for better readability — improved SRS document navigation for team and stakeholders
  • #92: Prepare initial web design draft and basic mock site — established visual direction used throughout frontend development
  • #194: Add 18+ age restriction toggle to event creation — defined the UX for age-restricted event creation and enforcement

Pull Requests:

  • #104: feat: Add web design mockup pages for all screens
  • #163: feat(frontend): Implement event discovery page
  • #169: feat: Implement event detail page, shared interaction state, nested comments
  • #182: feat: Implement notifications page and navbar integration
  • #195: feat: Private event invite/access flow, error pages, age restriction

Additional Information: Filed 10 detailed bug reports (#197–#206) during pre-demo testing covering map view, responsive layout, comment UX, and age restriction edge cases — all were resolved before the demo.

All Issues (assigned):

# Title
#65 Highlight key requirement parts for better readability
#92 Prepare initial web design draft and basic mock site
#124 Implement discovery page integration with search, filters, and pagination
#125 Implement event detail page integration with guest/private states
#128 Implement bookmark and going actions on web
#129 Implement comments and notifications UI on web
#176 Implement Notifications Page on Web
#179 Implement My Events Dashboard on Web
#180 Implement Private Event Invite and Access Request UI on Web
#181 Implement Error Pages (404, Access Denied, Underage Warning) on Web
#193 Add end date validation to event creation form
#194 Add 18+ age restriction toggle to event creation and enforce visibility

Pull Requests (authored):

# Title
#21 fix: Fix the bug issue template syntax error
#104 feat: Add web design mockup pages for all screens
#163 feat(frontend): Implement event discovery page
#169 feat: Implement event detail page, shared interaction state, nested comments
#182 feat: Implement notifications page and navbar integration
#195 feat: Private event invite/access flow, error pages, age restriction

Muhittin Köybaşı (Frontend)

Responsibilities: Frontend project initialization (Prettier, ESLint, design tokens), web API client and session management, full auth flow (login/register/logout), event creation and image upload flow, host profile page, profile settings page, root README, Co-authored the use case diagram, demo preparation.

Main Contributions: Bootstrapped the entire Next.js frontend project; implemented web API client, session store, and auth flow; built the 7-step event creation wizard with image upload and publish; host profile and profile settings pages; root README with full setup instructions; frontend bug fixes.

Significant Issues:

Code-Related:

  • #122: Implement web API client and session management — Retrofit-equivalent for Next.js, cookie-based auth, session store used by every feature
  • #123: Implement web auth flow — register, login, logout, Google OAuth, protected route redirects
  • #126: Implement create event draft flow — 7-step wizard with draft save, field validation, and step navigation

Non-Code-Related:

  • #89: Initialize frontend project — Next.js 16 + React 19 setup, Tailwind, TypeScript, folder structure
  • #91: Configure Prettier and ESLint — enforced code style across all frontend contributors
  • #220: Create README and Building/Running Instructions — comprehensive setup guide for all three platforms

Pull Requests:

  • #134: feat: Initialize frontend project with linting, formatting, and design tokens
  • #135: feat: Implement frontend API client and session management
  • #162: feat/frontend/web-auth-flow
  • #164: feat/frontend/event-creation-flow
  • #168: fix(frontend): Move event editor routes off events path
  • #191: feat(frontend): Add public host profile page
  • #192: feat/frontend/profile-settings-page
  • #222: docs(readme): Add root project setup guide

Additional Information: The API client and session management layer he built (#135) became the shared foundation used by every other frontend contributor. The 16 automated Vitest tests (auth/routing layer) were built on top of the session infrastructure he established. He also became the part of the demo prep and presentation.

All Issues (assigned):

# Title
#89 Initialize frontend project
#91 Configure Prettier and ESLint
#122 Implement web API client and session management
#123 Implement web auth flow using backend endpoints
#126 Implement create event draft flow on web
#127 Implement image upload and publish flow on web
#177 Implement Host Profile Page with Rating on Web
#178 Implement My Profile Settings Page on Web
#220 Create README and Building/Running Instructions
#85 Create MVP + Final Milestone Implementation Plan Page
#147 Create MVP Milestone Demo Plan

Pull Requests (authored):

# Title
#134 feat: Initialize frontend project with linting, formatting, and design tokens
#135 feat: Implement frontend API client and session management
#139 feat/frontend/init
#162 feat/frontend/web-auth-flow
#164 feat/frontend/event-creation-flow
#168 fix(frontend): Move event editor routes off events path
#191 feat(frontend): Add public host profile page
#192 feat/frontend/profile-settings-page
#222 docs(readme): Add root project setup guide

Battal Hazar (Mobile)

Responsibilities: Android API client and session storage (foundation for all mobile network calls), full event creation/edit/cancel/delete flow with image upload and publish, bug fixes for post-publish redirect and past date validation on mobile.

Main Contributions: Mobile networking foundation (Retrofit + OkHttp session); complete 7-step event creation wizard on Android including image upload, draft save, and publish; bug fixes that improved UX for event creators on mobile.

Significant Issues:

Code-Related:

  • #111: Implement API client and session storage — Retrofit setup, OkHttp interceptors, DataStore-backed JWT persistence; foundation for all mobile API calls
  • #114: Implement create-event, draft event and edit event flow — 7-step Compose form with state management, draft/publish transitions, edit pre-fill
  • #115: Implement image upload in event publish flow and edit/cancel buttons — multipart upload, publish gate (requires image), cancel/delete confirmation dialogs

Non-Code-Related:

  • #85: Create MVP + Final Milestone Implementation Plan Page — participated in team milestone planning

Pull Requests:

  • #137: feat: Mobile API client and session/auth
  • #190: feat: [Mobile] Create/edit/cancel/delete event flow with image upload and publish
  • #208: fix: Redirect to event detail page after publish
  • #209: fix: Prevent past date selection in create event form

Additional Information: The API client layer (#137) is the shared networking foundation that all other mobile features depend on. The event creation flow (#190) is the most complex mobile screen, covering 7 steps, image upload, and multiple lifecycle transitions.

All Issues (assigned):

# Title
#111 [Mobile] Implement API client and session storage
#114 [Mobile] Implement create-event, draft event and edit event flow
#115 [Mobile] Implement image upload in event publish flow and edit/cancel buttons
#85 Create MVP + Final Milestone Implementation Plan Page

Pull Requests (authored):

# Title
#137 feat: Mobile API client and session/auth
#190 feat: [Mobile] Create/edit/cancel/delete event flow with image upload and publish
#208 fix: Redirect to event detail page after publish
#209 fix: Prevent past date selection in create event form

Mustafa Koyuncu (Mobile)

Responsibilities: Android mobile project initialization, weekly meeting notes, milestone planning and issue tracking coordination.

Main Contributions: Initialized the Android project structure (Gradle, dependencies, base navigation); contributed to milestone planning and issue creation; documented meeting notes.

Significant Issues:

Code-Related:

  • #90: Initialize mobile project — Android project setup with Jetpack Compose, Gradle configuration, navigation graph, and dependency structure

Non-Code-Related:

  • #85: Create MVP + Final Milestone Implementation Plan Page — co-authored the full implementation plan for both milestones with the team
  • #147: Create MVP Milestone Demo Plan — co-ordinated demo scenario planning with team members
  • #120: Create and fill Weekly Meeting 7 page — documented team decisions and progress

Pull Requests:

Additional Information: Established the Android project scaffold that all mobile contributors built upon.

All Issues (assigned):

# Title
#85 Create MVP + Final Milestone Implementation Plan Page
#90 Initialize mobile project
#120 Create and fill Weekly Meeting 7 page
#147 Create MVP Milestone Demo Plan

Pull Requests (authored):