Bahadır Kuşcan - bounswe/bounswe2025group1 GitHub Wiki

About Me

I am Bahadır Kuşcan, a junior year computer engineering student at Bogazici University. I have experience in cyber security, web application security testing and ethical hacking. I also enjoy sailing as a fellow racer in Bogazici University Sailing Team.

Technical Skills

  • Programming Languages:

    • Java
    • Python
    • C/C++
    • Assembly
    • JavaScript
    • SQL
  • Tools & Software:

    • Kali Linux tools and Burp Suite

Work Experience

  • Penetration TesterBuSiber (Oct 2024 – Present)
  • Offensive Security InternTurkcell (Aug 2024 – Sep 2024)
  • Undergraduate AssistantCoLoRs Lab (Feb 2024 – Sep 2024)

Personal Interests

  • Sailing
  • TV Series and Movies
  • Team Sports
  • Memes

Contact


Weekly Effort Report

📅 Week 1
Task Name Issue of the Task PR of the Task
Creating Personal Wiki Page Issue #13 -
Weekly Team Meeting #1 - -
📅 Week 2
Task Name Issue of the Task PR of the Task
Weekly Team Meeting #2 Issue #19 -
Creating Elicitation Questions Wiki Page Issue #21 -
📅 Week 3
Task Name Issue of the Task PR of the Task
Reviewing Project Requirements Wiki Page Issue #31 -
Creating Scenario 6 and updating Project Requirements Issue #35 -
Creating Glossary Wiki Page and updating Project Requirements Issue #38 -
Customer Meeting Issue #41 -
Weekly Team Meeting #3 Issue #42 -
Customer Meeting Note Taking/Documentation Issue #43 -
📅 Week 4
Task Name Issue of the Task PR of the Task
Updated Scenario 6 Issue #53 -
Determined Use Cases and Created Draft Wiki Pages Issue #54 -
Weekly Team Meeting #4 Issue #51 -
📅 Week 5
Task Name Issue of the Task PR of the Task
Created Use Case Diagrams #3 and #4 Issue #60 -
Tested Push Restriction to Main with a Workflow Issue #66 PR #65
Initiated General Review of Wiki Issue #69 -
SRS Revision Issue #74 -
Class Diagram Revision Issue #77 -
📅 Week 6-9

No work done due to Academic Boycott. Attended Weekly Meetings #7 and #8 to keep up with others.

📅 Week 10
Task Name Issue of the Task PR of the Task
Reviewed Backend Setup - PR #140
Implemented Login, Register and Password Reset Features for Backend Issue #129 PR #142
Reviewed and Performed Integration Tests on Profile Features Issue #148 PR #146
📅 Week 11

Spring Break (Got my laptop stolen in Vienna)

📅 Week 12
Task Name Issue of the Task PR of the Task
Weekly Team Meeting #9 - -
📅 Week 13
Task Name Issue of the Task PR of the Task
Reviewed and Performed Integration and Unit Tests on External Weather API Call Issue #179 PR #178
Detected and Fixed Unit Test Bugs Issue #181 PR #197
Worked on Mobile Forgot Password Implementation, Failed due to Friend's Local Machine Setup Issue #186 -
Reviewed Project Dockerization Issue #136 PR #147
Reviewed my-gardens Endpoint Issue #195 PR #196
Updated Main README - PR #199
Reviewed Frontend Bug Fix - PR #200
Collaboratively Deployed the Project Issue #137 PR #192

Implemented External API

Besides writing unit tests and fixing bugs and therefore spending lots of time on the OpenWeather API call that is utilized in the project, I additionally implemented a Treffle API call which is NOT utilized in the project.

📌 Overview

The Plant Search API allows users to search for information about plants by name. It acts as a bridge between our Django application and the Trefle plant database, returning data such as common names, scientific names, and images.

This is useful in a garden task planning or forum platform where users may want to:

  • Look up plant information before scheduling a task

  • Add plant details to forum posts

  • Auto-fill care instructions based on plant type

🔍 Functionality

  • Input: A query string (q) with the name of the plant the user wants to search.

  • Processing:

    • The view reads the query.

    • Sends a GET request to the Trefle Plant API.

    • Retrieves matching plant data.

  • Output: A JSON response containing a list of plants that match the search term.

🧪 Example Use Case

A user types "tomato" into a search bar in your web app. The frontend sends a request to:

GET /api/plant-search/?q=tomato

The backend makes a request to Trefle and responds with something like:

[
  {
    "id": 12345,
    "common_name": "Tomato",
    "scientific_name": "Solanum lycopersicum",
    "image_url": "https://.../tomato.jpg"
  }
]

This can then be shown in the UI for users to select or learn from.

⚙️ Technical Notes

  • Method: GET

  • Route: /api/plant-search/

  • Parameters:

    • q (required): The search term (e.g., "lavender", "mint")
  • Returns: JSON list of plants or error if query is missing/failed

  • Relies on: Trefle API and a valid API token stored in Django settings

✅ Benefits

  • Simplifies plant data integration

  • Reduces the need to store a local plant database

  • Makes the app more interactive and educational

  • Encourages accurate plant identification for task planning

Branch

This API call was NOT utilized in the project. Implementing branch that does not have a PR can be found here.

⚠️ **GitHub.com Fallback** ⚠️