-
Notifications
You must be signed in to change notification settings - Fork 1
Final Milestone Deliverables
Group Number: 11
- Customer Meeting (17.02.2026)
- Weekly Meeting 1 (17.02.2026)
- Weekly Meeting 2 (25.02.2026)
- Weekly Meeting 3 (04.03.2026)
- Stakeholder Meeting (10.03.2026)
- Weekly Meeting 4 (11.03.2026)
- Database Design Meeting (18.03.2026)
- Weekly Meeting 6 (25.03.2026)
- Weekly Meeting 7 (01.04.2026)
- Weekly Meeting 8 (15.04.2026)
- Weekly Meeting 9 (06.05.2026)
- Final SRS: Requirements
- Final Design: Final Use Case Diagram, Class Diagram, Sequence Diagrams
- Deployed Web App: socialeventmapper.com
- Mobile Release: GitHub Release
- Project Status Summary:
- Deliverable Status:
- Final Release Notes:
- Process Improvements:
- Final Milestone Demo Reflections:
- What Could Have Been Done Differently:
| Team Member | Contributions (Summary) | Major PRs/Issues |
|---|---|---|
| Utku Yiğit Demir (Backend) | Implemented backend discovery eligibility filters, multi-select category filter, invitation detail endpoint, rating count exposure, backend localization, and fixed frontend dark mode regressions. | PR #652, PR #644, PR #615, PR #613, PR #610, PR #588, PR #580, Issue #631, Issue #581, Issue #501, Issue #498, Issue #483 |
| Cansu Er (Mobile) | Implemented Turkish/English localization across all mobile screens, route-type events on the map, Photon location search, event discussion section, multi-select category filter, event photo editing, and map area selector. | PR #658, PR #647, PR #640, PR #612, PR #572, PR #567, PR #563, Issue #641, Issue #614, Issue #509, Issue #488, Issue #485, Issue #466, Issue #458, Issue #445, Issue #433 |
| Buğra Keser (Mobile) | Implemented event map clustering and overlays, mobile dark mode, in-app notification center, host event editing and reconfirmation UI, invitation flow alignment, and added missing UI/unit tests. | PR #657, PR #649, PR #630, PR #628, PR #611, PR #604, PR #594, PR #573, PR #568, PR #552, PR #549, PR #544, PR #539, PR #400, Issue #592, Issue #591, Issue #553, Issue #515, Issue #491, Issue #477, Issue #461, Issue #459, Issue #457, Issue #433, Issue #418 |
| Oğuz Özer (Frontend) | Led frontend feature delivery across all screens: map/discover view, dark mode, notification inbox, invitation management, tickets, event editing and reconfirmation, discussion panel, audience filters, Photon migration, and profile badges. | PR #655, PR #646, PR #635, PR #634, PR #624, PR #598, PR #596, PR #593, PR #590, PR #589, PR #587, PR #585, PR #577, PR #566, PR #565, PR #564, PR #562, PR #561, PR #559, PR #536, Issue #654, Issue #645, Issue #582, Issue #505, Issue #499, Issue #490, Issue #479, Issue #476, Issue #470, Issue #468, Issue #464, Issue #462, Issue #456, Issue #455, Issue #454, Issue #453, Issue #452, Issue #451, Issue #450, Issue #448, Issue #436, Issue #434, Issue #432, Issue #423, Issue #417 |
| Sevde Pekköse (Mobile) | Implemented mobile ticket wallet and QR check-in, private event creation, host/participant invitation flows, join request image attachments, public profile with badges, audience filters, event reporting, and Maestro E2E tests. | PR #656, PR #632, PR #627, PR #623, PR #619, PR #609, PR #586, PR #579, PR #578, PR #574, PR #560, PR #550, PR #548, PR #532, PR #408, PR #373, Issue #620, Issue #506, Issue #503, Issue #500, Issue #497, Issue #480, Issue #474, Issue #473, Issue #472, Issue #471, Issue #469, Issue #465, Issue #463, Issue #437, Issue #433, Issue #426, Issue #416, Issue #403 |
| Emine Türk (Frontend) | Implemented multi-select category filter for the web frontend. | PR #629 |
| Kaan Ünsel (Backend/DevOps/Frontend) | Implemented the backend notification system, ticketing and QR check-in, admin panel, versioned event reconfirmation, invitation backend, image attachments, event reporting, discussion system, and DevOps integrations (New Relic, W3C/OWASP, Swagger). | PR #642, PR #637, PR #636, PR #633, PR #622, PR #621, PR #606, PR #600, PR #599, PR #584, PR #583, PR #575, PR #571, PR #557, PR #556, PR #555, PR #551, PR #535, PR #534, PR #531, PR #530, PR #529, PR #528, PR #523, PR #517, PR #516, PR #513, PR #512, PR #511, Issue #602, Issue #570, Issue #546, Issue #527, Issue #526, Issue #525, Issue #524, Issue #514, Issue #487, Issue #482, Issue #481, Issue #478, Issue #477, Issue #475, Issue #449, Issue #447, Issue #444, Issue #443, Issue #442, Issue #441, Issue #429, Issue #421 |
| Mehmet Akif Yıldırım (Backend/Frontend) | Implemented badge/achievement system, public profile APIs and frontend page, notification triggers, approximate location for protected events, audience attribute filtering, change-password endpoint, and Turkish/English web localization. | PR #659, PR #653, PR #651, PR #648, PR #643, PR #638, PR #608, PR #607, PR #605, PR #601, PR #597, PR #576, PR #554, PR #545, PR #542, PR #541, PR #538, PR #533, PR #510, Issue #616, Issue #595, Issue #547, Issue #540, Issue #519, Issue #504, Issue #496, Issue #495, Issue #489, Issue #467, Issue #460, Issue #435, Issue #431, Issue #413 |
- Completed: [List Requirement IDs]
- In Progress: [List Requirement IDs]
- Not Started: [List Requirement IDs]
- [Link to your live API documentation]
Scenario 1: [Name of Scenario]
-
Endpoint:
[METHOD] /api/path - Scenario Description: [Description]
- The Request:
curl -X POST "https://api.example.com/path" \
-H "Authorization: Bearer token" \
-H "Content-Type: application/json" \
-d '{
"field": "value"
}'- The Response:
{
"field": "value"
}Scenario 2: [Name of Scenario]
-
Endpoint:
[METHOD] /api/path - Scenario Description: [Description]
- The Request:
curl -X POST "https://api.example.com/path" \
-H "Authorization: Bearer token" \
-H "Content-Type: application/json" \
-d '{
"field": "value"
}'- The Response:
{
"field": "value"
}Scenario 3: [Name of Scenario]
-
Endpoint:
[METHOD] /api/path - Scenario Description: [Description]
- The Request:
curl -X POST "https://api.example.com/path" \
-H "Authorization: Bearer token" \
-H "Content-Type: application/json" \
-d '{
"field": "value"
}'- The Response:
{
"field": "value"
}- Link to Frontend Code: [Link]
-
Screenshots:
- [Link] & [Description]
- [Link] & [Description]
Standard:
- Evidence:
- Reasoning:
- Backend API: Backend Coverage HTML Report | Backend JUnit XML | Backend Verbose Logs
- Web App: Frontend Coverage HTML Report | Frontend JUnit XML | Frontend Verbose Logs
- Mobile App: Mobile Coverage HTML Report | Mobile JUnit XML | Mobile Verbose Logs
- Integration Tests: Backend Integration Tests Source
- End-to-end (E2E) Tests: Mobile Maestro E2E Scenarios
- UI/UX Tests: Frontend Component Tests & Mobile Component Tests
The final testing phase was not merely a verification of code completion, but a critical validation of the system's reliability and user-facing integrity. The transition from MVP to the Final Milestone focused on covering complex integration paths and real-world user behaviors.
-
Coverage: The expanded test suite ensures that every critical feature added during this final milestone is now fully covered, moving beyond basic logic into complex, multi-system flows:
- Secure Ticketing & Entry Management: The entire lifecycle of digital ticketing—from ticket generation and QR token signing to secure host-side validation—is now fully covered. These tests ensure that only authorized participants can enter events, fulfilling a core security pillar of our final release.
- Social Engagement & Moderation: Critical social interactions, specifically the Event Discussion (Q&A) and Rating System, are fully validated. This ensures that community interactions and feedback loops perform reliably across all surfaces, maintaining high data integrity for user-generated content.
- Sophisticated Event Privacy: We have achieved comprehensive coverage for Join Request approval workflows and Event Invitations. These tests fully validate the complex permission logic required for private and protected events, ensuring that sensitive event data remains secure and accessible only to approved users.
- Transactional Integrity & Notifications: New integration tests fully cover the Notification Broker and the underlying Unit of Work transactions. This guarantees that whenever a critical event occurs (e.g., a participation approval), the system reliably updates the database and triggers the corresponding push/in-app notification as a single, atomic operation.
-
Bug Detection: Automated testing directly caught several "silent" failures that manual testing would likely have missed:
1. The Unit of Work Race Condition: During backend integration testing, we discovered a race condition where multiple concurrent "join requests" could bypass capacity limits. The tests revealed that database transactions were not sufficiently isolated. We resolved this by implementing row-level locking (
FOR UPDATE), ensuring that even under heavy load, the event capacity is never exceeded.2. QR Token Synchronization: Maestro E2E tests identified a critical edge case where the ticket QR code would fail to refresh if the mobile app was kept in the background for more than 5 minutes. This would have caused major issues during live event check-ins. By catching this through E2E flows, we implemented a robust foreground sync logic before the final release.
-
Readiness: The current test suite confirms system stability through three distinct layers:
- Resilience: The 100% pass rate of 681 mobile tests, 601 backend tests, and 189 frontend tests provides absolute confidence that the core platform is stable and regression-free.
- End-to-End Integrity: Our 8 Maestro E2E scenarios serve as a "digital user," proving that the frontend, backend, and database work in perfect harmony across the most complex journeys.
- Quality Benchmark: The combination of high coverage in business-critical areas and zero failures in the current suites signifies that the Social Event Mapper has reached the level of maturity required for a successful Official Release.
[link to wiki page containing notes]
[link to wiki page containing reflections]
| Team Member | Subgroup | Individual Contribution Page |
|---|---|---|
| Buğra Keser | Mobile | |
| Sevde Pekköse | Mobile | |
| Oğuz Özer | Frontend | |
| Mehmet Akif Yıldırım | Backend Final Milestone Individual Contribution: Mehmet Akif Yıldırım | |
| Cansu Er | Mobile | Final Milestone Individual Contribution: Cansu Er |
| Emine Türk | Frontend | |
| Utku Yiğit Demir | Backend | |
| Mehmet Kaan Ünsel | Backend & DevOps |
-
Release Tag:
final-milestone - Live Deployment: [URL]
- README Instructions: [Link to README.md]
- Docker Setup: [Link to docker-compose.yml]
- Mobile APK: [Link to release asset]
👥 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 (16.04.2026)
- Lab 9 Report (30.04.2026)
- Lab 10 Report (07.05.2026)
- Customer Meeting (17.02.2026)
- Weekly Meeting 1 (17.02.2026)
- Weekly Meeting 2 (25.02.2026)
- Weekly Meeting 3 (04.03.2026)
- Stakeholder Meeting (10.03.2026)
- Weekly Meeting 4 (11.03.2026)
- Database Design Meeting (18.03.2026)
- Weekly Meeting 6 (25.03.2026)
- Weekly Meeting 7 (01.04.2026)
- Weekly Meeting 8 (15.04.2026)
- Weekly Meeting 9 (06.05.2026)
- Scenario 1 - Discovering and Joining an Event
- Scenario 2 - Private Event Organization
- Scenario 3 - Public Event Organization
- Use Case Diagram (Final)
- Scenario 1 Use Case Diagram
- Scenario 2 Use Case Diagram
- Scenario 3 Use Case Diagram
- All Sequence Diagrams
- Sequence Diagram - Oğuz Özer
- Sequence Diagram - Emine Türk
- Sequence Diagram - Cansu Er
- Sequence Diagram - Sevde Pekköse
- Sequence Diagram - Buğra Keser
- Sequence Diagram - Mehmet Kaan Ünsel
- Sequence Diagram - Utku Yiğit Demir
- Sequence Diagram - Mehmet Akif Yıldırım