Skip to content

Hasan Baki Kucukcakiroglu's Individual Contribution Report for Milestone 2

Hasan Baki Kucukcakiroglu edited this page May 12, 2023 · 6 revisions

Introduction

This milestone was though since every group member had a lot of tasks to do. Despite all, we managed to create a cumulative work thanks to our method at which we divided whole job into individual small chunks of jobs. I'm working as a front end developer for 2 years, so the layout of the user interface is created by me. I also helped my friends to create user interfaces of their pages. I had never used Java Spring when we started this project so I want the team to choose JavaScript as the backend technology. However, Java Spring was final decision. I started to study on it and created a smoothly working backend.

Issues Related to the Practice Application

External API

I used Wikidata API as the external API. It doesn't require authentication and there is no call limit on it. They were the main factors that make me choose this external API. There are two APIs that I used:

  • I use first API to take options of dropdown menu in my UI. I send an input text to it, and it returns related entities with their id and description.

    https://www.wikidata.org/w/api.php?action=wbsearchentities&format=json&search={searchText}&language=en&uselang=en&type=item

  • I use second API to take all the data of the entity selected by user(via a dropdown). I send entity id to it, and it return all the data related to entity.

    https://www.wikidata.org/w/api.php??action=wbgetentities&ids={id}&format=json

If you would like to learn more about the API, you can visit this link.

API Functions

I have created 6 API functions, including GET, POST and DELETE requests. These functions are as follows:

  1. searchEntityByText - GET(/api/wiki/search/:searchText) : Takes a string as a param and returns all related entities.
  2. getEntityById - GET(/api/wiki/entity/:id) : Takes a string id as a param and returns the entity with that id.
  3. createBookmark - POST(/api/wiki/) : Takes a JSON object with keys label and code in body and creates a bookmark.
  4. getAllBookmarks - GET(/api/wiki/bookmarks/all) : Returns all bookmarks.
  5. deleteAllBookmarks - DELETE(/api/wiki/bookmarks/all) : Deletes all bookmarks.
  6. deleteBookmarksByCode - DELETE(/api/wiki/bookmarks/:code) : Takes a string code as a param and deletes bookmarks with that id.

Sample Calls

Screenshot 2023-05-12 at 21 01 29 Screenshot 2023-05-12 at 21 02 24 Screenshot 2023-05-12 at 21 02 06 Screenshot 2023-05-12 at 21 03 28 Screenshot 2023-05-12 at 21 04 47 Screenshot 2023-05-12 at 21 05 24

Challenges

I can definitely share my personal perspective on this. When it came to our project, I noticed that a majority of our group members faced considerable difficulties in getting involved. Bahadır, Egemen, and I had to take on the responsibility of teaching our friends how to write their parts of the project. It was quite apparent how challenging it could be for someone who had no prior knowledge of either front-end or back-end development. This aspect added an extra layer of complexity to our group dynamics and organization.

bounswe2023group8

🏠 Home

🗄️ Project
Milestones
👤 Individual Contribution Reports
Milestone 1
Milestone 2
Final Milestone
🖇️ Lab Reports
📑 Templates
👥 Team Members
CmpE 352
Old Project Files
📅 Meetings
🔬 Researches
👤 Individual Contribution Reports
Clone this wiki locally