Skip to content

Individual Contributions

akifemrebicen edited this page Apr 11, 2026 · 19 revisions

Individual Contributions — MVP Milestone


Akif Emre Biçen (Frontend)

Responsibilities:

  • Implementing core frontend pages including the login page, registration page, and interactive map view
  • Integrating Leaflet + OpenStreetMap for map functionality with story markers, popups, geolocation, and geocoding
  • Setting up the frontend unit test infrastructure (Jest, jsdom)
  • Creating and managing project issues, documentation tasks, and scenario wiki pages

Main Contributions:

  • Implemented the login page as the application entry point with mock sign-in flow and redirect to map view.
  • Built the interactive map view with Leaflet + OpenStreetMap, including story markers with popup preview cards, search, zoom, layer toggle, geolocation, and a sidebar listing recent stories.
  • Added registration page consistent with the existing design system and wired it into the login flow.
  • Enhanced story creation and detail pages with real map components for location pinning and display.

Significant Issues (Top 3 per category):

Code-Related:

  • #93: Implement interactive map view — created the issue for integrating the interactive Leaflet map component with zoom, pan, and responsive layout.
  • #91: Design and Implement the Login Page — implemented the login page UI, mock sign-in behavior, and Jest unit tests (closed by PR #154).

Non-Code-Related:

  • #150: Create Demo Data for Customer Milestone 1 Presentation — prepared seed users and stories for the MVP demo.
  • #26: Creating and implementing wiki pages for Scenario 3 (Web app - posting user).
  • #51: Sequence diagram for contributor login and seeing stats of a post.
  • #89: Create Test Plan and Coverage — created the issue for establishing the project test plan.

Pull Requests:

  • #154: Feat frontend loginpage — implemented the login page as the main entry page with mock sign-in, redirect to map.html, Jest unit test setup, and Dockerfile updates.
  • #156: Feat/frontend mapview — replaced static map mockup with interactive Leaflet + OpenStreetMap map view, added story markers with popup cards, search, geolocation, layer toggle, discovery sidebar, registration page, and enhanced story creation/detail pages with real maps.

Additional Information:

  • Set up the frontend testing infrastructure with Jest and jsdom-based unit tests.
  • Served as a reviewer for frontend pull requests.

Furkan Kaan Biçer (Backend, DevOps)

Responsibilities:

  • Designing and implementing backend services using FastAPI, including story management, media upload, and search functionalities`
  • Developing and maintaining database models, schemas, and migrations, ensuring consistency across services
  • Integrating filtering, validation, and query mechanisms (e.g., story bounds, flexible date handling) into APIs
  • Writing and maintaining unit and API tests, and integrating them into CI workflows for automated validation
  • Supporting DevOps processes by contributing to CI/CD integration, test pipelines, and Docker-based development setup

Main Contributions:

  • Implemented story upload pipeline.
  • Built story retrieval endpoints.
  • Added filtering and date handling.
  • Integrated media upload system
  • Implemented place search endpoint.

Significant Issues (Top 3 per category):

Code-Related

  • #176: Implemented viewport-based story filtering.
  • #177: Added flexible date overlap filtering.
  • #97: Integrated cloud media upload system.

Non-Code-Related

  • #81: Researched deployment and cloud stack.
  • #47: Created sequence diagram for posts.
  • #35: Designed use case diagrams.

Pull Requests:

  • #186: Flexible date overlap filtering
  • #182: Story bounds filtering
  • #170: Historical date integration
  • #168: Story upload endpoint
  • #167: Test improvements
  • #166: Get story by ID endpoint
  • #165: Media upload integration
  • #164: Place search endpoint
  • #162: Get stories endpoint
  • #86: Backend initialization
  • #60: Stub application setup

Additional Information:

  • Played a role in shaping the backend project structure during the MVP phase
  • Actively involved in running and managing the project server during MVP demonstrations

Beyza Nur Deniz (Backend)

Responsibilities

  • Helped establish the backend core data model and migration layer for users, stories, and media_files.
  • Registered newly added DB models in Alembic so migrations could discover them.
  • Implemented story detail and media response mapping so story detail responses expose public media URLs.
  • Added and adjusted tests for story detail and media upload behavior.

Main Contributions

  • Created the initial backend schema for core entities with constraints and indexes in 20260402_0001_create_core_schema.py
  • Added ORM/database model files for user, story, and media entities under backend/app/db/
  • Added media URL exposure in story detail/media mappings in story_service.py

Significant Issues (Top 3 per category)

Code-Related

  • #96: Designed the initial User table schema, including core fields, constraints, and extensibility for authentication and profile management.
  • #99: Designed the initial Story table schema, including relationships, metadata fields, and support for future story features.
  • #178: Exposed media_url in story detail responses so the frontend could directly render media files.

Non-Code-Related

  • #14: Set up and organized customer meetings to gather requirements, expectations, and project constraints.
  • #22: Helped create the scenario for a mobile user who wants to upload a post.
  • #35: Helped create the use case diagram for Scenario 2.

Pull Requests

  • [PR #155]: Initial core DB schema work for user/story/media tables and Alembic integration
  • [PR #179]: Exposed media URLs in story detail responses and added related tests
    • Story detail API test verifying that attached media metadata and public media URLs are returned - test_story_api.py
    • Unit test verifying service-level story detail mapping with media file serialization - test_story_service.py
  • [PR #183]: Reverted PR #179 - reverted the media URL exposure change
  • [PR #184]: Reintroduced the story media URL work
    • Story detail API test verifying that attached media metadata and public media URLs are returned - test_story_api.py
    • Unit test verifying service-level story detail mapping with media file serialization - test_story_service.py
  • [PR #185]: Reverted the previous revert - restored the media URL feature path
    • Media upload API test verifying that the upload response includes generated media_url - test_story_api.py

Additional Information

  • Contributed to both backend development and project documentation.
  • Helped improve project coordination through issue and meeting note templates.
  • Supported design and planning with diagrams and scenario documentation.
  • Took part in integration and stabilization work for media-related backend features.
  • Served as the team communicator, coordinating communication and organizing meetings.

İbrahim İlter (Frontend)

Responsibilities:

  • Static HTML/CSS/JS development and responsive UI implementation.
  • Designing the navigation and global theme/accessibility foundation.

Main Contributions:

  • Foundation: Set up the project’s routing, base layout, and responsive breakpoints (#101).
  • Search & Review: Implemented and reviewed the Search module (#190), including client-side caching and API integration.

Significant Issues (Top 3 per category):

Code-Related:

  • Issue #190: Add search page with backend API integration
  • Issue #114: Implement Story Detail Page & API Integration
  • Issue #105: Implement Story Creation UI & API Integration

Non-Code-Related:

  • Issue #101: Initialize Project Routing, Base Theme, and Core Layou

Pull Requests:

  • PR #190: Add search page with backend API integration

Additional Information:

  • Throughout the development cycle, I served as a reviewer for the frontend codebase.
  • I took on the role of Timer.

Muhammed Efe Özavcı (Backend)

Responsibilities:

  • Extending the Story database model with location and historical date-range fields required for map functionality.
  • Defining the Pydantic v2 request/response schemas (the API contract) for the user authentication and story flows.
  • Building the reusable test factory modules for stories and media files.
  • Keeping test factories compatible with DB schema migrations made by teammates.

Main Contributions:

  • Added place_name, latitude, longitude, date_start, date_end, and date_precision fields to the Story ORM model and Alembic migration, enabling all map-based story functionality (PR #157).
  • Designed and implemented Pydantic v2 schemas for user registration/login and story create/update/response flows, including flexible date input validation that normalizes integer years into full DATE objects (PR #158).
  • Created story_factory.py and media_file_factory.py under tests/factories/, along with comprehensive unit tests, unblocking the full integration and API test suite (PR #173).
  • Fixed story factory date types after a teammate's migration changed the DB columns from INTEGER to DATE, preventing future integration tests from failing at commit time (PR #187).

Significant Issues (Top 3 per category):

Code-Related:

  • Issue #120: Implement Location and Coordinate Binding on Story Creation — implemented the DB model extension adding geographic fields and date range columns to the stories table with a check constraint.
  • Issue #106: Create Mock Story Factory with Fixed Coordinates for Backend Tests — built the make_story_payload, make_story_update_payload, and make_story_entity factory functions with deterministic Istanbul coordinates and full unit test coverage.
  • Issue #107: Create Mock Media File Factory for In-Memory Backend Tests — built the make_upload_file and make_media_file_entity factory functions using an in-memory minimal PNG, requiring no real filesystem or cloud storage.

Non-Code-Related:

  • Issue #150: Create Demo Data for Customer Milestone 1 Presentation — prepared the complete set of seed stories and user accounts for the MVP demo, aligned with the Demo Data Strategy defined in the wiki.
  • Issue #46: Creating Sequence Diagram for Basic User Commenting — contributed to the early design and documentation phase of the project.
  • Issue #43: Finalize the Class Diagram and Sequential Diagram — helped finalize the core UML artifacts used to guide implementation.

Pull Requests:

  • PR #157: Added location and date range fields to the Story DB model and Alembic migration
  • PR #158: Added Pydantic v2 request/response schemas for users and stories
  • PR #173: Added story and media file test factories with unit tests
  • PR #187: Fixed story factory to match the DATE column type introduced by migration 0003

Additional Information:


Muhammed Mustafa Öztürkmen (Backend, DevOps)

Responsibilities:

  • Setting up and maintaining the backend infrastructure (FastAPI, PostgreSQL, Alembic, MinIO)
  • Implementing the authentication system (registration, login, JWT)
  • Configuring CI/CD pipelines (GitHub Actions) and deployment (Render)
  • Writing backend unit, integration, and API tests

Main Contributions:

  • Initialized the FastAPI backend project structure (PR #86)
  • Set up PostgreSQL database environment with SQLAlchemy async engine, Alembic migrations, and pydantic-settings config (PR #139)
  • Integrated S3-compatible cloud media storage using MinIO locally and Supabase in production (PR #143)
  • Implemented user registration endpoint with password strength validation, email/username uniqueness checks, and bcrypt hashing (PR #159)
  • Implemented JWT-based login, token verification middleware, and GET /auth/me protected route (PR #160)
  • Built the complete backend test suite covering unit, integration, and API layers and wired real pytest steps into CI (PR #161)
  • Created CI/CD pipeline with ci.yml and deploy.yml GitHub Actions workflows (PR #138)

Significant Issues (Top 3 per category):

Code-Related:

  • #122: Set up the PostgreSQL database environment — SQLAlchemy async engine, Alembic, session management, and Docker Compose integration.
  • #118: Configured the CI pipeline (GitHub Actions) with health check, unit, integration, and API test jobs running sequentially.
  • #124: Configured cloud media storage for image, video, and audio uploads using MinIO locally and Supabase Storage in production.

Non-Code-Related:

  • #89: Created the Test Plan and Coverage wiki page.
  • #197: Created the MVP milestone report (D6) covering project status, deliverables, requirements, testing, and team process.
  • #85: Created the pull request template for the repository.

Pull Requests:

  • PR #86: Initialized FastAPI backend folder structure
  • PR #139: Set up PostgreSQL database environment (SQLAlchemy, Alembic, docker-compose)
  • PR #141: Added /health endpoint with DB and storage connectivity checks
  • PR #143: Added S3-compatible media storage (MinIO / Supabase)
  • PR #138: Created CI/CD pipeline (ci.yml, deploy.yml)
  • PR #153: Added deployment log fetching from Render to GitHub Actions
  • PR #159: Implemented user registration endpoint with password validation and bcrypt hashing
  • PR #160: Implemented JWT login, token verification, and GET /auth/me protected route
  • PR #161: Built full backend test suite (unit, integration, API) and wired real tests into CI

Additional Information:

  • Also took notes in the milestone review meeting (Milestone Review Meeting 05-04-2026) and produced the MVP Demo Review report.
  • Contributed to early project documentation including requirements, use case diagrams, and scenario wiki pages.

Enes Hamza Üstün (Frontend)

Responsibilities:

  • Frontend Developer focusing on core UI architecture, profile, and map pages.
  • Systems Design (UML diagrams and system modeling).
  • Project Management and MVP Demo Preparation.

Main Contributions:

  1. Frontend UI & API Integration: Designed and implemented the "Profile" and "Edit Profile" pages, replacing mock systems with live backend data and adding unit tests. Fixed UI overlaps on the map view and added mobile Android UI support.
  2. Core Architecture & Containerization: Built the base layout theme and containerized the frontend by adding the Dockerfile. Fixed the docker-compose.yml to successfully initialize the MinIO server for media file uploading.
  3. Diagrams & Documentation: Created and rigorously updated system design documents including fundamental class relations, sequence diagrams for post-creation, and contributor use-case diagrams.
  4. Testing & QA: Structured the scenarios and scripts for the team's MVP demo and created dedicated wiki pages and meeting coordination resources. Revised the repository's issue templates for better clarity.

Significant Issues (Top 3 per category):

Code-Related:

  • Issue #174: Implement Profile Page - Developed the frontend interface for viewing and editing user profiles, successfully binding the views to the live data retrieved from our API.
  • Issue #102: Implement media upload interface - Configured the underlying MinIO connection in Docker and the respective layout pieces to handle audio and image uploads for stories.
  • Issue #91: Design and Implement the Login Page - Engineered the initial authentication entry point with form validation and dynamic layout scaling to verify user access.

Non-Code-Related:

  • Issue #149: Define Demo Structure, User Scenarios and Write a Script - Outlined the flow, step-by-step scripts, and test scenarios required to seamlessly showcase our application during the MVP presentation.
  • Issue #194: Create a page for MVP demo test meeting - Coordinated our team's testing procedures by establishing a clear environment and schedule for our pre-demo rehearsal.
  • Issue #48: Create sequence diagram for the assigned usecase, Refine the class diagram - Produced comprehensive UML diagrams translating our requirements into structured backend relationships and audio transcription sequences.

Pull Requests:

  • PR #193: feat: Mobile Android support & Map/Story UI fixes - Resolved interface layout bugs allowing story components to render correctly on mobile Android devices and fixed overlapping interactive map controls.
  • PR #188: feat: update map and profile story loading logic - Improved the mechanism for fetching and rendering recent stories across both the interactive history map view and the user's personal profile.
  • PR #175: feat: I created profile page and edit profile page - Delivered the fully functional profile interfaces, complete with end-to-end data fetching and thorough unit tests.
  • PR #147: feat: I created base theme and core layout for frontend. Also added a docker file for dependencies - Established the frontend's foundational UI designs while providing the initial Docker setup to streamline local team dependency management.

Additional Information: Played a critical role in stabilizing the repository prior to the MVP by resolving merge conflicts, testing the end-to-end integration of media services, and refining the issue templates to improve team tracking.


Alper Vural (Frontend)

Responsibilities:

  • Frontend development — static HTML/CSS/JS pages
  • Backend API integration across the app (auth, map, story create/detail, search)
  • Mobile (Capacitor/Android) packaging

Main Contributions:

  • Wired the frontend auth flow (login/register/forgot-password) to the backend API with client-side password strength validation
  • Integrated the story API into the existing map page so stories render as markers, with bounded fetching on map pan/zoom and a popup cover image fix
  • Implemented the story creation page end-to-end (form, map picker, ISO-date submission) against the backend API
  • Built the story detail page and cleaned up placeholder buttons/mock comments
  • Added a search page with backend API integration and media fetching
  • Set up Capacitor Android so the web frontend can be packaged as an APK
  • Pointed the frontend to the deployed backend and fixed the Dockerfile to include search.html

Significant Issues (Top 3 per category):

Code-Related:

  • [Issue #114]: Implement Story Detail Page & API Integration
  • [Issue #189]: Integrate search API to map.html
  • [Issue #105]: Implement Story Creation UI & API Integration

Non-Code-Related:

  • [Issue #45]: Sequence Diagram for Basic User liking a post
  • [Issue #101]: Initialize Project Routing, Base Theme, and Core Layout
  • [Issue #30]: Re-structuring the Requirements wiki page

Pull Requests:

  • [PR #171]: Frontend auth (login/register integration + password strength)
  • [PR #172]: Remove page mocks, add forgot-password page, clean up account menu
  • [PR #180]: Wire story creation page to backend API
  • [PR #181]: Story map API integration (bounded fetch, live data, popup image fix)
  • [PR #191]: Capacitor Android setup for mobile APK builds
  • [PR #192]: Search page with API integration and media fetching
  • [PR #64]: Stub-app button (Lab 2 — Ankara weather fetch)

Additional Information: The interactive map itself (#93) was implemented by a teammate; contributions on that surface were limited to wiring live story data into it and making it mobile-friendly.

Team Members

Milestones


Lab Reports


Weekly Meetings

Other Meetings


Templates

Scenarios

Use Case Diagrams

Class Diagram

Sequence Diagrams

Requirements


Implementation

Clone this wiki locally