-
Notifications
You must be signed in to change notification settings - Fork 0
Prompts Ogut
Tool used: Claude Code (Anthropic) — used as the primary AI pair programmer throughout all three milestones (MVP, Customer, Final).
Usage pattern: Claude Code was used conversationally inside the terminal/IDE. Prompts were given in natural language (Turkish and English), ranging from high-level task descriptions to pasted error messages. The assistant read the codebase, suggested edits, and explained reasoning before making changes.
Prompt: "ben mobile tarafında görevliyim ve projenin mobile tarafında birçok sayfanın tsx dosyaları oluşturuldu ve static şekilde yazıldı ancak backend tarafı ile entegrasyon işi tamamen hallolmadı daha eksiklerimiz var. şu anda yazılmış olan mobil sayfalarının tamamının backend ile birlikte çalışıyor olması gerekiyor."
What it did: Claude Code audited all existing static screens and connected them to the backend API using Axios with a JWT interceptor. Implemented role-based navigation (mentor/mentee), authentication flow (login/register), and the mentorship request lifecycle.
Prompt: "yaptığın değişikliklerin ardından telefondan bir mentee bir mentor oluşturdum ve mentee olarak diğer mentore explore sayfasından send request göndermeye çalıştım fakat mentorun hesabına girdiğimde bu requesti göremiyorum"
What it did: Identified missing screen registration in _layout.tsx and incorrect API call — fixed the Mentee Requests tab to properly fetch pending requests for the authenticated mentor.
Prompt: "güncelleme yapmaya çalıştım mentor hesabımda ancak başarısız dedi ve 403 verdi"
What it did: Diagnosed that PATCH /users/me was a generic endpoint requiring role-specific paths. Switched to PATCH /users/me/mentor and PATCH /users/me/mentee depending on JWT role stored in SecureStore.
Prompt: "Option 'baseUrl' is deprecated and will stop functioning in TypeScript 7.0. Specify compilerOption '"ignoreDeprecations": "6.0"' to silence this error."
What it did: Removed deprecated baseUrl and ignoreDeprecations from tsconfig.json, converted all path aliases (@/) to relative imports across 7 files to make the CI pipeline pass.
Prompt: "dersin asistanı mail atmış ve GitHub Actions: You are now required to implement a mobile APK build. ayrıca mainde build almamız istenecek ancak şu anda projenin en güncel hali dev'de bulunuyor ve maine merge edilmedi. bu sebeple test edebilmek amacıyla dev'de de build alabilsek mantıklı olabilir"
What it did: Created .github/workflows/mobile-build-apk.yml to trigger an Expo APK build on push to main and dev, uploading the artifact to GitHub Actions. Also added usesCleartextTraffic: true to app.json to fix Android HTTP restriction.
Prompt: "ERROR Mentorları çekerken hata oluştu: [TypeError: data.map is not a function (it is undefined)]"
What it did: Identified that the backend had added pagination — the response changed from a plain array to { content: [...], totalPages: ... }. Fixed explore.tsx with res.data.content ?? res.data pattern.
Prompt (pasted error): SecureStore throwing invalid key error on avatar cache
What it did: Identified that expo-secure-store does not allow colon (:) characters in keys. Changed ${role}AvatarUri:${userId} to ${role}AvatarUri_${userId}.
Prompt: "notification ve bu son değişikliği tek committe yapalım ona göre yaz"
What it did: Implemented the notifications screen with unread badge on the home tab, mark-as-read, pull-to-refresh, and real-time notification count. Connected to the production backend.
Prompt: "sunucumuz var artık internette ve webdeki uygulama ile mobildeki uygulamanın entegre olması için sunucuya bağlamamız gerekiyor. bağlanma işlemini yapalım"
What it did: Updated api/client.ts baseURL to http://167.71.44.71:8080/api. Also identified that Android requires usesCleartextTraffic: true for non-HTTPS URLs.
Prompt: "bir mentorun availibilitysini değiştirdiği yerde şu anda sadece belli iki saat aralığı seçilebiliyor ama aslında aynı gün içerisinde birden fazla saat aralığını müsait seçebilir. ayrıca use of standards kapsamında iCalendar RFC 5545 ile uyumlu olması gerekiyor, bunu da dikkate alalım"
What it did: Refactored the availability editor to support multiple time slots per day with add/remove controls, aligned the data format with iCalendar RFC 5545 concepts, and sent requests in BulkAvailabilityRequest format.
Prompt: "bu add slot butonu gün yuvarlağı ve açıp kapama butonu ile aynı satırda olsun sadece ortalansın ben onu istedim şu anda bir alt satırda duruyo"
Prompt: "off günlerdeki not available yazısı da aynı satırda ortalanmış şekilde olsun şu anda hafif üstte duruyor ve güzel görünmüyor"
What it did: Adjusted Flexbox layout in the availability editor component to align the "Add Slot" button and "Not Available" label inline with the day toggle.
Prompt: "mentee mentorün müsaitiğini görebiliyo mu peki"
What it did: Added a section to the connection profile screen that fetches and displays the mentor's current availability slots in a readable format.
Prompt: "selam bir adet git pull origin dev yaptım, layout, profile ve explore sayfalarını son durumda commitledikten sonra ancak şu anda 32 tane dosya staged e düştü ve profile.tsx dosyası da hata veriyor sanırım"
What it did: Resolved conflicts between Burak's changes and teammates' changes in profile.tsx, explore.tsx, and _layout.tsx. Staged only mobile-relevant files to avoid polluting the commit.
Prompt: "hazırda review etmem gereken 2 tane pr var önce onlarla mı ilgilenmeliiym" "https://github.com/bounswe/bounswe2026group7/pull/307 https://github.com/bounswe/bounswe2026group7/pull/306"
What it did: Claude Code reviewed both PRs (availability editor and auth recovery parity), checked for conflicts with current dev branch, and confirmed they were safe to merge.
Prompt (pasted log): "ERROR [apiClient] GET /users/38/following?size=100 → 403"
What it did: Diagnosed a token/userId mismatch in SecureStore — the stored userId was 38 but the JWT sub was a different value after a session change. Fixed token refresh ordering in the auth flow.
Prompt: "sayfayı yenileyince posta atılan like kayboluyor"
What it did: Identified that viewerHasLiked was not being seeded from the backend response on reload — fixed the feed screen to initialize like state from the API response field.
Prompt (through work session): Implementing real-time STOMP subscription for feed — connect to
/topic/feed.{userId}, handle new post events, show "new posts" pill without full reload.
What it did: Created mobile-app/services/stompClient.ts and mobile-app/hooks/useFeedSubscription.ts. Managed WebSocket lifecycle (connect on mount, disconnect on unmount), seeded initial viewerHasLiked and viewerHasBookmarked from API.
Prompt (through work session): Implement repost (with quote-share attribution), bookmarks with dedicated screen, and comment likes with optimistic update + rollback.
What it did: Added viewerHasReposted, viewerHasBookmarked, commentLikeState to feed state. Implemented optimistic updates with rollback on API error. Created mobile-app/app/bookmarks.tsx as a dedicated paginated screen.
Prompt: "mobil ci 'da patlayan problemi çözdük mü"
What it did: After a large git pull origin dev (126 files changed), the silent flag suppression in api/client.ts was overwritten. Restored else if (!error?.config?.silent) in the Axios response interceptor error handler.
Prompt: Pulled dev branch mid-feature — teammates had added ban system, admin console, reporting system (126 files changed). Conflicts in
api/client.ts,profile.tsx,feed.tsx.
What it did: Resolved conflicts manually: integrated ban-notice BANNED_UNTIL handling from teammates' version of api/client.ts while preserving the silent error suppression logic.
Prompt (through work session): When login returns 403 with
BANNED_UNTILbody, clear tokens and redirect to/blockedscreen showing reason and expiry date.
What it did: Added BANNED_UNTIL detection in api/client.ts interceptor. Created utils/banNotice.ts to store/retrieve ban state. Created /blocked screen rendering ban reason and expiry.
Prompt: "hala mentor explanation görünmüyor mentee find best matches dediğinde neden olabilir"
What it did: Investigated MatchingService.java — the OpenAI LLM call was inside a @Transactional(readOnly = true) scope which caused connection timeout. Moved the explanation generation outside the transaction boundary. Submitted as PR #585.
Prompt: "mobil ci 'da patlayan problemi çözdük mü" (referring to
react/no-unescaped-entitieslint error inmy-blog.tsx)
What it did: Located the apostrophe in my-blog.tsx:214, replaced ' with ' to pass the ESLint react/no-unescaped-entities rule.
| Category | How Claude Code Was Used |
|---|---|
| Bug triage | Paste error log → Claude identifies root cause and edits the file |
| Feature implementation | Describe feature in natural language → Claude reads relevant files, proposes approach, implements |
| Merge conflicts | Paste conflict markers or describe situation → Claude resolves while preserving both sides' intent |
| PR review | Paste PR URL → Claude reads the diff, flags issues or confirms it's safe to merge |
| CI debugging | Paste CI failure output → Claude locates offending line, applies minimal fix |
| Code review | "şu anda yaptığımız bu commit ile bir şeyleri bozmuş olma olasılığımız var mıdır" → Claude audits the diff for regressions |
- All code suggestions were verified by running the app on a physical device before committing.
- Backend-side changes suggested by Claude (e.g.,
MatchingService.java) were reviewed and submitted as separate PRs. - Claude Code did not have direct write access to the repository — all commits and pushes were performed manually by Burak Ögüt.
- Prompts were given in Turkish or English depending on context; Claude responded in the same language.
Team Members
- Lab 1 Report (12/02/2026)
- Lab 2 Report (19/02/2026)
- Lab 3 Report (26/02/2026)
- Lab 4 Report (05/03/2026)
- Lab 5 Report (12/03/2026)
- Lab 6 Report (26/03/2026)
- Lab 7 Report (02/04/2026)
- Lab 8 Report (18/04/2026)
- Lab 9 Report (30/04/2026)
- Lab 10 Report (07/05/2026)
- Weekly Meeting Notes Template
- Lab Meeting 1 (12.02.2026)
- Weekly Meeting 1 (16.02.2026)
- Weekly Meeting 2 (24.02.2026)
- Weekly Meeting 3 (04.03.2026)
- Weekly Meeting 4 (11.03.2026)
- Weekly Meeting 5 (23.03.2026)
- Weekly Meeting 6 (29.03.2026)
- Weekly Meeting 7 (11.04.2026)
- Weekly Meeting 8 (28.04.2026)
- Weekly Meeting 9 (10.05.2026)
- Use Case Diagram 1 (New Mentor User for Mobile Scenario)
- Use Case Diagram 2 (Mentor-Mentee Matching Scenario)
- Use Case Diagram 3 (New Mentee User Scenario)
- Final Use Case Diagram
- MVP Use Case Diagram
- All Sequence Diagrams
- Sequence Diagram: Mentee Matching
- Sequence Diagram: Mentor Matching
- Sequence Diagram: Mentorship Management
- Sequence Diagram: Registration
- Sequence Diagram: Cancelling Mentorship Relationship and Auto Ban
- Sequence Diagram: Login-Logout
- Sequence Diagram: Reporting-User
- Sequence Diagram: Mentor Profile Management
- MVP Sequence Diagrams
- Test Plan & Coverage (MVP)
- Acceptance Testing Strategy
- Acceptance Tests
- Test Data Strategy
- Web Frontend Test Report
- Amin Abu-Hilga
- Övgü Su Afşar
- Muhammet Sami Çakmak
- Beratcan Doğan
- İbrahim Kayan
- Burak Ögüt
- Mehmet Bora Sarıoğlu
- Future Work (reference, not a deliverable)