Skip to content

Lab Report 5

burakogut5 edited this page Mar 15, 2026 · 20 revisions

Lab 5 Report

Stub App Completion

The stub application has been successfully completed as a collective and individual effort. The app is a static web application built with HTML, JavaScript, and CSS, served via an nginx Docker container. Each team member implemented a personal button that fetches data from a public API and displays the result on a new tab. The following buttons were implemented:

  • Button 1 (Amin): Turkey Weather Portal — displays current weather data
  • Button 2 (Övgü Su): [her butonunun açıklaması]
  • Button 3 (Sami): Blog Post Preview - fetches and displays specific article data in a custom layout.
  • Button 4 (Beratcan): Random Joke Generator — fetches and displays a random joke
  • Button 5 (İbrahim): Random User Profile — displays name, country, and photo
  • Button 6 (Burak): Random Dog Photo — displays a random dog image via Dog CEO API
  • Button 7 (Bora): Monkey Information - fetches monkey and primate species data from the iNaturalist API.

The final version was merged into the feature/stub-app branch via individual Pull Requests.

Conventions

To ensure long-term maintainability and high-velocity collaboration, our team adheres to modern industry standards for version control:

  • Commit Naming (Conventional Commits): We follow the Conventional Commits 1.0.0 specification. Messages must use the imperative mood and be prefixed with a type:

    • feat: A new feature for the user.
    • fix: A bug fix for the codebase.
    • docs: Documentation-only changes.
    • refactor: Code changes that neither fix bugs nor add features.
    • chore: Maintenance tasks (build scripts, package manager updates).
    • Example: feat: implement async API call for mentorship button
  • Branching Strategy (GitHub Flow): We utilize a streamlined branching model to maintain a deployable main branch:

    • main: The "Source of Truth." Contains production-ready code.
    • dev: Integration branch for combining tested features.
    • Short-lived Feature Branches: Named using kebab-case with a descriptive prefix (e.g., feature/user-auth, bugfix/api-timeout).
    • Atomic Development: Branches are kept small and focused on a single logical task to minimize merge conflicts.
  • Pull Request & Merge Policy:

    • Mandatory Peer Review: No code is merged into dev or main without at least one approval from a teammate.
    • CI/CD Readiness: Every PR must pass local Docker build checks and linting before being marked as "Ready for Review."
    • Integration Strategy: We utilize a hybrid approach based on the task:
      • Squash and Merge: For small features to keep the main history clean and linear by condensing "work-in-progress" commits into one.
      • Merge Commit: For complex, multi-person features where preserving the granular history is necessary for debugging.

Team Structure and Roles

We have chosen Option A: Specialized Sub-Teams to maximize efficiency by matching project requirements with member expertise.

Member Primary Role
Beratcan Doğan DevOps (Backend Focus)
Mehmet Bora Sarıoğlu Backend
İbrahim Kayan Backend
Muhammet Sami Çakmak Frontend
Burak Öğüt Frontend
Övgü Su Afşar Frontend
Amin Abu-Hilga DevOps (Frontend Focus)

Implementation Plan

Individual Contributions

Following the lab directives, the table below outlines the specific tasks completed by each team member during the Git Workflow, Stub Application, and Team Planning session.

Name Task Linked Issue
Burak Öğüt Implemented Button 6 ("Random Dog Photo API") using Dog CEO public API — opens a new tab with a random dog photo. Updated config.js, handlers.js. Opened PR #66 to merge into feature/stub-app. #66
Amin Abu-Hilga Implemented Button 1 (Turkey Weather Portal), reviewed PR#70, PR#65 PR#67
Övgü Su Afşar [Implemented personal button for the stub-app, organized role choosing for development, help write lab report] #69
Halis Tunay Aslan [Insert Task] [#Issue]
Muhammet Sami Çakmak Implemented Button 3 for the stub-app, Updated config.js, handlers.js, contributed writing lab report. #71
Beratcan Doğan implemented the 'Random Joke Generator' button which fetches and dynamically displays data from a public API on a new page, and Dockerized the stub application. Additionally, I managed the team's integration process by handling pull requests, resolving merge conflicts, and successfully merging the changes. #65
İbrahim Kayan Implemented Button 5 using the Random User public API — opens a new tab displaying a user profile with their name, country, and photo. Updated config.js and handlers.js and added Dockerfile. Opened PR to merge into feature/stub-app. #68
Mehmet Bora Sarıoğlu Implemented personal button for the stub-app, organized role choosing for development, help write lab report #70,#63
Team Members

Lab Reports


Weekly Meetings


Customer Meetings


Stakeholder Meetings


Project Requirements


🎦 Scenarios and Mock-ups

Use Case Diagrams

Class Diagram

Sequence Diagrams

Test Plan and Coverage


Project Standards


Final Milestone and MVP Plan

MVP Report


Final Milestone Report

Per-Member Prompt Logs


Future Work

Clone this wiki locally