Ekrem Yusuf Ekmekci Time Tracking (352) - bounswe/2021SpringGroup6 GitHub Wiki

Week 1

  • Task 1: Learn git
    Type: Research and Learning
    Details: I watched a youtube video about git.
    Duration: 1,5 hours

  • Task 2: Explore Github
    Type: Research
    Details: I searched for best github repositories and starred the ones that I liked. Some of them are listed here
    Duration: 1,5 hours

  • Task 3: Meet with teammates and share tasks
    Type: Meeting
    Details: We met via Zoom.
    Duration: 40 minutes.

  • Task 4: Create Personal Wiki Page
    Type: Research and Learning
    Details: I copy-pasted other's pages. This is mine
    Duration: 10 minutes

  • Task 5: Assign tasks to teammates on Github
    Type: Organization
    Details: I should have assigned their tasks to my teammates but I did not. Then, they assinged the tasks to themselves.
    Duration: None

Week 2

  • Task 1: Meet with teammates to discuss project requirements
    Type: Meeting
    Details: We met via zoom. We share additional tasks during the meeting.
    Duration: 2 hours

  • Task 2: Search for related software systems
    Type: Search
    Details: I looked at app stores and did a search on google.
    Duration: 1 hour

Week 3

  • Task 1: Discuss about and edit the requirements page
    Type: Requirements
    Details: I discussed about the section assigned to us. Then edited some parts accordingly.
    Duration: 30 minutes

Week 4

  • Task 1: Create mockup scenarios and pages accordingly
    Type: Requirements
    Details: I met with my teammate Atakan and discussed about mockups. Then we share the tasks and started them.

    Duration: 5 hours

  • Task 2: Meet TA for mockups
    Type: Requirements
    Details: We met with TA and showed our work, listen critique, and took notes about it.
    Duration: 1,5 hours

  • Task 3: Update mockup and requirements pages
    Type: Requirements
    Details: I updated my mockup page according to what TA said about it. Also updated requirements so that we have a 'field page' feature.

    Duration: 20 minutes

Week 5

  • Task 1: Meet with teammates to discuss about Class Diagram
    Type: Requirements
    Details: We met via zoom, could not finish the task. Agreed on another meeting.

    Duration: 2 hours

  • Task 2: Study on class diagram so that you can contribute effectively.
    Type: Requirements
    Details: I read course slides and made some search. After that, I understand the issue more clearly.
    Duration: 1 hour

  • Task 3: Meet with teammates to finalize Class Diagram
    Type: Requirements
    Details: We met via zoom. We shared next step's tasks and agreed on next meeting.

    Duration: 2 hours

  • Task 4: Meet with teammates to create Use Case Diagram
    Type: Requirements
    Details: We met via zoom. Barely finished the use case and assigned related tasks to each other.

    Duration: 2 hours

Week 6

  • Task 1: Meet with T.A. to agree on Diagrams
    Type: Requirements
    Details: We met via google meets. Discussed about use cases primarily. We get feedback and planned changes accordingly.
    Duration: 1 hour

  • Task 2: Meet with teammates to make last changes over diagrams
    Type: Requirements
    Details: We met via zoom. Made changes over diagrams. We assigned last tasks to each other. This was the last meeting for diagrams.

    Duration: 2 hours

  • Task 3: Study on diagrams so that make effective last touches
    Type: Requirements
    Details: I watched lucidchart's tutorials, read extra material also.
    Duration: 1,5 hours

  • Task 4: Finalize Use Case Diagram and Create Sequence Diagram for Creating an Event
    Type: Requirements
    Details: I did the tasks via lucidchart platform. Uploaded them to github.

    Duration: 2,5 hours

Week 7

  • Task 1: Meet with teammates in order to share tasks
    Type: Meeting
    Details: We discussed on Milestone and shared tasks. We decided to fill a google docs file with our related parts. We would simply copy and paste the work done so far.

    Duration: 80 minutes

  • Task 2: Prepare summary of work done and contribute project report
    Type: Documenatation
    Details: I wrote what I had done so far. I also review project plan that was prapared. Then I added some parts related to from the current time to the end of the semester.

    Duration: 80 minutes

  • Task 1: Meet with teammates to finalize the documents
    Type: Meeting
    Details: We met and finalized the work. Converted doc into pdf, added project plan, and reviewed all of them

    Duration: 1,5 hour

Week 8

Spring Break

Week 9

  • Task 1: Research on Frameworks, APIs etc. Issue Here
    Type: Preperation
    Details: We were expected to decide on which API endpoints we implement. Before that, we are expected to understand REST API architecture. So, I researhed REST API and collected some videos about it. I also had guess that we will use the most simple framework that we can use. So, I studied on flask and read the following contents:

    Duration: 3 hours

Week 10

  • Task 1: Study on Flask, APIs, and Database Systems
    Type: Preperation
    Details: We decided to use Flask. So, I should study on it. I also thougth that we will need to interact with databases. So, I decided to study on it also. Also I should finish my study on REST API. Here are the resources I used:

    Duration: 3 hours

  • Task 2: Review Meeting 9, Issue Here
    Type: Meeting
    Details: I could not attend meeting 9. So, I should review the meeting notes and provide some feedback to my teammates. I did it and it turns out that some of my friends did not understand REST API architecture. So, I gave my feedback on the initial structure and we decided to meet again. Then we discussed and converted the structure into a more RESTful one. I also suggested a list of endpoints. Here is my feedback.

    Duration: 1 hour

  • Task 3: Attend meeting to decide on new API structure
    Type: Meeting
    Details: As mentioned in task 2, we decided to meet again and discuss about API structure. I used my previous experience and my feedback file in that meeting. I convinced my friends about the proper usege of REST API. We also decided to use relational database for that project. Meeting notes can be found here

    Duration: 80 minutes

Week 11

  • Task 1: Watch Git PS recordings
    Type: Preperation
    Details: I watched git ps recordings before I used git and pull requests.
    Duration: 2 hours

  • Task 2: Implement events page and events get endpoint Issue Here and here
    Type: Implementation
    Details: We planned to meet on June 5th. Before that, we should study and started implementing the parts assigned earlier. I used Elif Sema's prototype. She implemented db model and initiates the app. So, I built my part on it.

    • I started building server part assuming all database aperations are done in API. We used Jinja templates and passed the parameters coming from API call. Server part also handles form posts from frontend. It does it by converting form parameters into query parameters for an API call. It then takes the returned object and renders it via jinja
    • We met between 10:00-11:00. We talked about what we have done and planned helping program in case of any struggles.
    • API that I built handles GET requests. It takes optional query parameters and executes sql query accordingly. Then it returns the objects fetched from database.
    • I had difficulties implementing appropriate sql query with sqlalchemy. It takes a long time. I also had struggle to convert fetched rows into json objects. These glitches made me spent a lot more time than expected.
    • Corresponding pull request can be found here.

    Duration: 10 hours

Week 12

  • Task 1: Fix code after code review
    Type: Implementation
    Details: I got review for my code, which is about events in general. Then I fixed some part of it. Related code and pull request can be found here.
    Duration: 2 hours

  • Task 2: Research on unit tests and flasgger. Then implement doc and test files
    Type: Documentation
    Details: I watched this video on youtube, read swagger documentations, and flasgger documentations.
    Duration: 2,5 hours

  • Task 3: Built API that handles post requests for declaring interest into an event Issue Here
    Type: Implementation
    Details: I learnt that I shoul build an API that handles post requests. So, I decided to built an API that serves for users when they want to declare interest into an event.

    • I decided not to add a frontend page. API is used only by directly requesting it.
    • I used my previous knowledge on APIs and built this part easily
    • Code and pull request can be found here.

    Duration: 1,5 hours

  • Task 4: Fix your code and write documentation and test files Issues are here 1, here 2.
    Type: Implementation
    Details: I used what I had just learnt in this part

    • I first reviewed my code and changed some parts
    • I split my code into functions so that I can test some part of it explicitly
    • I accidentally built an entire API documentation with swagger online editor. Then I changed it so that it fits flasgger.
    • I built my tests with the help of video that I just watched. Thinking about cases and writing them was a bit boring.
    • Code and pull request can be found here.

    Duration: 4 hours

  • Task 5: Meet with assistant to review the work done
    Type: Meeting
    Details: We met with our teaching assistant and took feedback. We learnt new things and understand what we are expected to do more deeply. After that, we assigned ourselves new API endpoints and started building them.
    Duration: 2 hours

  • Task 6: Meet with assistant to review the work done
    Type: Meeting
    Details: We met with our teaching assistant to get final review and feedback about our project. We were proud of our work and it was a nice meeting.
    Duration: 1 hour

  • Task 7: Watch Docker PS recordings
    Type: Preperation
    Details: Before dockerization and deployment, we should gain knowledge about them. So, we should watch them.
    Duration: 2 hours

  • Task 8: Contribute group report
    Type: Documentation
    Details: After deployment, we started writing our document. In the meeting that I could not attend, people shared the tasks but not started when I looked at the link (here). I did not read the meeting notes and started writing the parts that are assigned to others. This, next day, returned me as less work assigned. The following part does not represent my initial work. It represents my work as a whole, a two days period.

    • Added summary of the project. It is deployed neary as it was.
    • Added code and documentation of my API. Can be found in the document.
    • Described the functionality of the project. Elif Sema added list of pages, other work belongs to me.
    • Wrote first half of the part relatad to challenges we faced. Musa wrote the second half.
    • Wrote evaluations of tools part with Berk and Elif Sema. He initiated and built the srtucture, I improved it and Elif Sema finalized it.
    • Added personal effort part. More than one page. Wow
    • Added info about the code to the second document. It was used for specifying our efforts.
    • Related issues can be found here, and here.

    Duration: 4 hours

  • Task 9: Group report submission
    Type: Documentation
    Details: We met and prepared the final product for our documentation. Reviewed document and converted it to pdf, zipped code and submitted it.

    • You can find our document here.
    • There is also another document that represents other content. It was also submitted to moodle. You can find it here.

    Duration: 1 hour

  • Task 10: Personal Report
    Type: Documentation
    Details: We are expected to document our personal efforts. So I wrote the following:

    • Executive Summary: I summarized our project briefly.
    • Code documentation: I used the part that I prepared for group report. I also added some part for server because it was not requested in group report.
    • Code reviews: I commented on each code review I gave and took. It was a nice I think.
    • Issue: I wrote all issues regarding me. By doing that, I also have the opportunity see my work in an organized format.
    • The report can be found via moodle. I did not upload it through internet. You can find related issue here.

    Duration: 6 hours