Elif Sema Balcıoğlu Time Tracking - bounswe/2021SpringGroup6 GitHub Wiki
CmpE 352 Efforts
Date: 25.03.2021
Task: Research Git
Details: I started by watching the Git For Ages 4 And Up video. Then researched new resources on Git for the next studies.
Duration: 1.5 Hours
Type of Work: Research and Learning
Date: 26.03.2021
Task: Research Git-2
Details: After the video, I had some questions in mind and started to read Atlassian Git Tutorials which are very detailed. The bare concept was not clear so I searched for posts to make it clear.
Duration: 1 Hour
Type of Work: Research and Learning
Date: 27.03.2021
Task: Research Interesting GitHub Repositories
Details: I started by searching repositories with detailed Wiki's and manuals. When exploring repositories, I realized that to me the most important part of a project is its CONTRIBUTING page because it makes it very easy to understand the project and how to think about improving it.
Duration: 1 Hour
Type of Work: Research and Learning
Date: 26.03.2021
Task: Discovering Issue Label Ideas
Details: Before Group Meeting 1, I researched labeling schemes that are recommended and considered as best practices.
Resources I Used:
- https://blog.adam-marsden.co.uk/better-github-labels-f1360b43e0a7
- https://seantrane.com/posts/logical-colorful-github-labels-18230/
Duration: 20 minutes
Type of Work: Research
Date: 28.03.2021
Task: Editing Wiki Sidebar
Details: I opened an issue for this task and edited the sidebar.
Duration: 15 minutes
Type of Work: Documentation
Date: 27.03.2021
Task: Opening Slack Workspace
Details: My task for this week was to create the communication channels. Opened Slack Workspace for the group as a form of communication. Made sure all the members could connect and communicate.
Duration: 10 minutes
Type of Work: Enhancement
Total Time Spent On Week 1: 4 hours and 15 minutes of personal effort and 40 minutes for the group meeting.
Date: 30.03.2021
Task: Create Contributing Page
Details: I created a Contributing Wiki page for instructions on how to contribute.
Duration: 1 hour
Type of Work: Enhancement
Date: 04.04.2021
Task: Research for Similar Systems
Details: I visited similar software systems to compare the features.
Duration: 1 hour
Type of Work: Research
Date: 05.04.2021
Task: Meeting for System Requirements
Details: With Deniz Arda Budak, we wrote system requirements formally which were decided on the group meeting.
Duration: 1 hour
Type of Work: Requirements
Date: 11.04.2021
Task: Meeting for System Requirements
Details: With Deniz Arda Budak, we updated the system requirements based on the information we learned from the customer on the PS hour on 06.04.2021.
Duration: 1 hour
Type of Work: Requirements
Date: 13.04.2021
Task: Group Meeting
Details: We met as the group and decided on general scenario themes. Notes on this meeting can be found here. My task is to create scenarios and mock-ups with Deniz Arda Budak and get answers to the unanswered questions on Questions About Requirements page.
Duration: 40 minutes
Type of Work: Requirements
Date: 13.04.2021
Task: Sending Customer Questions
Details: I sent an e-mail to the customer with the questions that were not answered on the Questions About Requirements page.
Duration: 15 minutes
Type of Work: Requirements
Date: 15.04.2021
Task: Meeting for Scenario
Details: With Deniz Arda Budak, we wrote two scenarios related to finding and attending an already created event.
Duration: 1 hour
Type of Work: Requirements
Date: 16.04.2021
Task: Meeting for Mock-ups
Details: With Deniz Arda Budak, we prepared the mock-ups on a Zoom meeting for the scenarios we wrote the day before.
- Search an Event Website Mock-up
- Search an Event Mobile Mock-up
- Send Request to Attend an Event Website Mock-up
Duration: 2 hours
Type of Work: Requirements
Date: 17.04.2021
Task: Meeting with TA
Details: We met with our TA as the customer and went through our requirements and mock-ups. He added some comments and I took note of them for my parts to correct after the meeting.
Duration: 1.5 hours
Type of Work: Requirements
Date: 18.04.2021
Task: Meeting for Mock-ups
Details: With Deniz Arda Budak, we made some changes to our mock-ups based on the information we learned from the customer meeting on 17.04.2021.
Some changes are adding a map search feature, removing unnecessary parts from requirements, and adding more clear descriptions to requirements. We also prepared the mobile version of one of the scenarios.
Duration: 2.5 hours
Type of Work: Requirements
Date: 20.04.2021
Task: Group Meeting
Details: Use Case and Class Diagrams are designed and created on group meetings. Since they are related to the general structure of the project, we decided that discussing and creating them together was a better idea. At this meeting general structure of the class diagram was created.
Duration: 2 hours
Type of Work: UML Design
Date: 22.04.2021
Task: Research on UML Documents
Details: I researched for the general idea of the documents and tried to learn how to create them.
Duration: 0.5 hours
Type of Work: Research
Date: 22.04.2021
Task: Group Meeting
Details: On this meeting we finished the final version of the class diagram before the customer meeting and started creating the use case diagram.
Duration: 2 hours
Type of Work: UML Design
Date: 24.04.2021
Task: Group Meeting
Details: On this meeting we finished the final version of the use case diagram before the customer meeting and distributed the sequence diagrams.
Duration: 2 hours
Type of Work: UML Design
Date: 28.04.2021
Task: Create Search Sequence Diagram
Details: I created the sequence diagram based on the class diagram and use case diagram.
Duration: 1 hour
Type of Work: UML Design
Date: 29.04.2021
Task: Create Search Sequence Diagram
Details: I updated the sequence diagram with database symbol and uploaded to wiki page.
Duration: 45 minutes
Type of Work: UML Design
Date: 30.04.2021
Task: Start Working On RAM
Details: I created the RAM template and created the issue.
Duration: 45 minutes
Type of Work: Milestone Document Preparation
Date: 1.05.2021
Task: Update RAM
Details: I went through old issues and found out the tasks everyone handled and added them to the RAM.
Duration: 1.30 hours
Type of Work: Milestone Document Preparation
Date: 4.05.2021
Task: Update RAM
Details: Added future plans tasks to the RAM diagram. Assigned reviewers and approvers for each task.
Duration: 2 hours
Type of Work: Milestone Document Preparation
Date: 7.05.2021
Task: Combine Milestone Document
Details: Added the deliverables from Wiki pages and pdfs to the final documentation. Related issue
Duration: 1.5 hours
Type of Work: Milestone Document Preparation
Date: 8.05.2021
Task: Update RAM
Details: Finalized the RAM.
Duration: 1 hour
Type of Work: Milestone Document Preparation
Date: 9.05.2021
Task: Update RAM
Details: Added remaining documents such as project plan, created table of contents and arranged the layout of the document. Then the pdf version is sent to the communicator for submission.
Duration: 2.5 hours
Type of Work: Milestone Document Preparation
Spring Break
Date: 22.05.2021
Task: Study Flask
Details: Started watching youtube videos to learn Flask.
Duration: 2 hours
Type of Work: Study
Date: 22.05.2021
Task: Study Flask
Details: Started watching youtube videos to learn Flask. And coded that project.
Duration: 2 hours
Type of Work: Study
Date: 23.05.2021
Task: Study Flask
Details: Continued watching youtube videos and implementing.
Duration: 1 hours
Type of Work: Study
Date: 25.05.2021
Task: Study REST Api
Details: Studied and learned the fundamentals of rest apis.
Duration: 1 hours
Type of Work: Study
Date: 27.05.2021
Task: Experiment with Experimental APIs
Details: Used Postman and Python Requests to see how to use external APIs
Duration: 1 hours
Type of Work: Study
Date: 29.05.2021
Task: Create Similar Endpoint to the one Assigned to me
Details: I tried to create a create event form and related functionality on a local app. I used this as a way to learn but also make my job easier on the practice-app since I created a similar app.
Duration: 1 hours
Type of Work: Study
Date: 30.05.2021
Task: Initialize Folder Structure
Details: Created the folder structure, to have a modular project Flask blueprints are used. Related Issue
Duration: 1 hours
Type of Work: Study
Date: 1.06.2021
Task: Start Implementing API functionality
Details: Event model for database is created.
Duration: 30 minutes
Type of Work: Implementation
Date: 3.06.2021
Task: Initial Version of the API with front end for create event is created.
Details: Added the initial functionality. Used the similar application I created and added more features.[Related Issue] (https://github.com/bounswe/2021SpringGroup6/issues/56)
Duration: 3 hours
Type of Work: Implementation
Date: 3.06.2021
Task: Study Unit Testing
Details: Studied unit testing using examples from the lectures and searching internet.
Duration: 1 hour
Type of Work: Study
Date: 4.06.2021
Task: Create Documentation Template
Details: After trying a few alternatives, I found that the flasgger was easiest to use for generating documentation. I created the documentation folder structure. Related Issue
Duration: 1.5 hours
Type of Work: Documentation
Date: 5.06.2021
Task: Create Pull Request
Details: After finishing my part on the project, I created a (pull request)[https://github.com/bounswe/2021SpringGroup6/pull/66] and asked for review.
Duration: 3 hours
Type of Work: Implementation
Date: 5.06.2021
Task: Watch Docker PS Session
Details: I tried to attend all sessions but since I was on the road I was not able to for a session. I watched the recordings for this Docker sessions.
Duration: 2 hours
Type of Work: Study
Date: 6.06.2021
Task: Handle Unit Test
Details: Unittest is the topic that confuses me the most so I read some tutorials. Created the initial version of the unit test for my part.
Duration: 2 hours
Type of Work: Implementation
Date: 6.06.2021
Task: Create Sport
Details: After discussing with my teammates, we decided that adding a Sport table to the database would be useful and I created it. Related Issue
Duration: 30 minutes
Type of Work: Implementation
Date: 7.06.2021
Task: Unit Tests
Details: After discussing with the assistant, I learned the correct way to write the unit tests. Unit tests should not include requests to endpoints or database connections. So our endpoints need to be divided into functions where the logic is separated from the requests and database. After learning, I started to write correct unit tests.
Duration: 1 hour
Type of Work: Testing
Date: 7.06.2021
Task: Sports GET
Details: Since I did not implement a GET request, I decided to create one fore sports. Sports are already stored on the database, and I created an enpoint "api/v1.0/sports?keyword=" where given a keyword, returns the id-sport name pairs which contain the keyword in their names. Related Pull Request
Duration: 1 hour
Type of Work: Implementation
Date: 8.06.2021
Task: Sports Unit Test, Documentation
Details: For the above endpoint, unit tests where different keywords are tested are created. A Swagger documentation file is also created. Related Pull Request
Duration: 1 hour
Type of Work: Implementation
Date: 8.06.2021
Task: More Study On Docker
Details: PS material was useful but I think I needed more detaişl, therefore I went through Docker Curriculum to learn better.
Duration: 2 hours
Type of Work: Study
Date: 8.06.2021
Task: Event POST Unit Test, Documentation
Details: My unit tests were wrong and after diving my endpoint into functions I created unit tests for them. I created two functions to check the date format and sport id. Related Pull Request
Duration: 1 hour
Type of Work: Implementation
Date: 8.06.2021
Task: Start Individual M2 Report
Details: I started writing the personal report. I started by writing the new tools and technologies I learned. Then I started writing about the external APIs I used. Related Issue
Duration: 2 hours
Type of Work: Documentation
Date: 9.06.2021
Task: Learn Docker Volumes
Details: We wanted to use Docker volumes to make our application persistent, I learned the way volumes are represented. I think it was a bit complicated to find the correct paths.
Duration: 1 Hour
Type of Work: Study
Date: 9.06.2021
Task: Contribute to M2 Group Report
Details: I contributed to the group report. I added Bootstrap and Google Docs to tools used and improved basic functionality. I also wrote the documentation and code explanations for my API functionality. Related Issue
Duration: 2 hours
Type of Work: Documentation
Date: 9.06.2021
Task: Deploy To Docker
Details: With Berk, we deployed our application to AWS. He researched how to deploy and created an AWS account before the meeting, after making changes to make database volume which I searched before, we deployed our application.
Duration: 2 hours
Type of Work: Deployment
Date: 10.06.2021
Task: Wiki Documentation
Details: I created the Wiki page for API documentation and wrote the documentation for my endpoints. It can be found here.
Duration: 1 hour
Type of Work: Documentation
Date: 10.06.2021
Task: Group Report Submission
Details: It was the submission date for the group report. We met as a group and made changes to our report and made its final changes. Before the meeting I made sure that my documentation was correct.
Duration: 1 hour
Type of Work: Documentation
Date: 12.06.2021
Task: Individual M2 Report
Details: I added the code reviews I made for this project and API documentation parts to my individual report. I also wrote the code explanations for all code I wrote.
Duration: 2 hours
Type of Work: Documentation
Date: 13.06.2021
Task: Individual M2 Report
Details: I added the pull requests, screenshots and made final changes on my report.
Duration: 2 hours
Type of Work: Documentation
Date: 16.10.2021
Task: Study Django
Details: Since with Berk, we decided to use Django as back-end framework, I looked at some tutorials and refresh my memory of last semester.
Duration: 2 hours
Type of Work: Studying
Date: 18.10.2021
Task: Update of Wiki Page
Details: I updated the home page and made some changes on the Wiki pages to separate work from CmpE352.
Duration: 20 minutes
Type of Work: Documentation
Date: 20.10.2021
Task: Back-end meeting with Berk
Details: We talked about project structure and gave tasks to each other.
Duration: 2 hours
Type of Work: Meeting
Date: 23.10.2021
Task: Review Berk's Pull Request
Details: I reviewed Berk's pull request and merged it since it was as we discussed on the meeting.
Duration: 20 minutes
Type of Work: Code Review
Date: 23.10.2021
Task: Create A API Plan Documentation Page
Details: To take notes of the API endpoints plans we make on our meetings, I created a Wiki page and added the endpoints we discussed so far. It can be found here
Duration: 1 hour
Type of Work: Documentation
At the end of week 2, we started implementation, from this point I will document the time tracking with a focus on contributions.
- 23.10.2021 I reviewed Berk's pull request here.
- 24.10.2021 I researched a data validation library, at the end I decided using serializers was the way to go. Resources can be found on related issue #143
-
24.10.2021 For the Validation For Sport Email Surname Skill_level #162 pull request with related issues #143 #147 #150 #153 I made the following commits:
- Validation for email: used serializers.EmailField for email validation.
- Validation for Surname: I wrote a RegexValidator for the surname field with only English characters and dot.
- Validation For Sport-Skill Level: I created a sport-skill level serializer.
-
28.10.2021 I opened the pull request Validation For Sport Email Surname Skill_level #162 and Berk's review.
-
30.10.2021 I reviewed Berk's pull request on Validators for name, password, birth Date and gender, also db models #181. My comments can be found here and here.
-
30.10.2021 I resolved the review of Berk on pull request Validation For Sport Email Surname Skill_level #162 with the commit Change surname field name. Then Berk merged the pull request.
-
1.11.2021 I reviewed Berk's pull request on register. One of them was related to return message and the other one was related to the use of Schema.org
-
1.11.2021 I updated my sequence diagram on searching and filtering events. Details on the issue #189
-
2.11.2021 I reviewed Berk's pull request on register. One review I had was about using validated data not the incoming data. Berk fixed if afterwards.
-
2.11.2021 I started working on the login endpoint #173. Related commits:
- Add gitignore: I added the gitignore file to make sure unwanted files are not pushed to GitHub.
- Change psycopg2 version : Since the version Berk provided did not work on my environment, we decided to change the version.
- Add urls to application: I added the login url.
- Update generic regex validators: I added RegexValidator for passwords and texts with only English characters, numbers and dot.
- Create guest class: I implemented the Guest class with login function as stated in the class diagram.
- Create login validator: I created the validator for the request body of the login using serializers.
- Create login endpoint: I implemented the login endpoint with error handling.
- Create login unit tests: I created 7 unit tests for the login functionality.
-
6.11.2021 I reviewed Berk's pull request on register. One review I had was about returning an object instead of string.
-
6.11.2021 I added the success test for the login endpoint Add Success Test. On Make login input required and Add password to user validation, I fixed some validation issues and resolved Berk's review. Then the pull request #201 was merged.
-
7.11.2021 I started working on the follow-unfollow related endpoints #168 #169 . Related commits:
- Create follow function on User class: I created the follow function at User model, which adds the following relationship to the database.
- Create Follow Endpoint: I implemented the follow endpoint with error handling.
- Create Unfollow User Function: I created the unfollow function at User model, which removes the following relationship from the database.
- Create Unfollow Endpoint: I implemented the unfollow endpoint with error handling.
-
8.11.2021 I started working on token authentication #208. Then I opened the pull request Token Authentication and wanted Berk's review. Related commits:
- Add Token Authentication To Login: I added the token authentication to login endpoint.
- Add Already Logged In Test: I added the unit test for already logged in users.
-
8.11.2021 On Berk's pull request on help tester function, I requested for the function to return the user also in my review since it would be easier to use in the tests.
-
8.11.2021 Since Berk created a helper function for the test, I updated login tests accordingly #214. Then I opened the pull request Add create_mock_user To Fix Test and wanted Berk's review.
-
9.11.2021 I implemented the logout functionality #167. Then I opened the pull request Create Logout Endpoint and wanted Berk's review. Related commits:
- Add Token Authentication Exception Handler: I added a custom error handler to customize the invalid token error message.
- Add Logout Enpoint: I implemented the logout functionality.
- Add Logout Test: I created 3 unit tests for logout.
-
10.11.2021 I resolved the reviews of Berk on pull request Create Logout Endpoint. Related commits: Delete Unnecessary Import, Delete Unnecessary Comment Change Response Status From 200 To 401
-
11.11.2021 I reviewed Berk's pull request on get user endpoint. One review I had was about whether to allow unauthorized users to view other users, after discussing with the team, we decided that the should and Berk changed the code accordingly. Another review was about using Schema.org properties correctly and after discussing with Berk we decided on a convention.
-
12.11.2021 I added more commits to follow branch for get following and follower functionalities #170 #171 . Related commits:
- Add Get_following function: I created the get_following function at User model, which returns a collection of the following activities of a user. For this enpoint Jsonld with Activity Streams is used.
- Add get_following View: I implemented the get_following endpoint which uses the above function.
- Add Get_follower Function: I created the get_follower function at User model, which returns a collection of the following activities of a user where user is the object. For this enpoint Jsonld with Activity Streams is used.
- Add get_follower View: I implemented the get_follower endpoint which uses the above function.
-
14.11.2021 I started implementing password recovery functionality #166. After resolving Berk's reviews, the pull request was merged. Related commits:
- Add Email Settings: I created a application Gmail email, and on the .env file I added its credentials. Then I imported those in Django settings file.
- Add Generate Random Password Function: I created a function to generate new passwords for the users who forget their password.
- Add Forgot Password To Guest: I added the forgot password function to Guest class as in class diagram.
- Add Forgot Password Endpoint: I implemented the recover endpoint which uses the above function.
- Add Recover Test Cases: I added 4 unit tests for the recovery functionality.
-
14.11.2021 I worked on automating the testing. I read on GitHub actions, watched videos and created a workflow that will be triggered whenever a pull request is made to development branch. This way, development branch remains tested and ready to deploy at all times. Related commit: Create django.yml.
-
15.11.2021 I added follow tests. There are in total 10 unit tests. Related commit Add Follow Test. I also resolved the reviews of Berk which were mainly missing print statements. Then this request was merged.
-
25.11.2021 I reviewed Berk's pull request, did not catch any errors, I merged it. But I opened an issue for further consideration but it did not get implemented. I also reviewed another pull request, wrote a comment. The final request I reviewed was about deleting a user. I wrote a comment to make sure other users cannot delete other accounts.
-
27.11.2021 I opened the issues for Berk's tasks. The first one is about getting an event. For this enpoint, I searched the Schema.org website for the correct schema and created additional properties. The issue can be found here: #260. For the second endpoint, filtering an event I created the following issue: #261.
-
28.11.2021 I implemented the databases for the events. Related pull request Backend event database #262. Related commits:
- Create Base For Event Class After deciding that we were going to use SportsEvent Schema for the Events, I created the Event class with the corresponding properties.
- Create Participant, Spectator Models I created the database models for event participation and spectation.
- Create Event Validators I searched for the corresponding serializer for the event fields and created the validator.
- I then fixed the code based on Berk's reviews. Related commits: Add Time Validation, Fix Naming
-
29.11.2021 I implemented create event endpoint. Related issue #257 related pull request Backend create event #263. Related commits:
- Implement Reverse Geocoding Helper I implemented a helper to convert the coordinates given on the create event endpoint to country, city and district as stored on the database. Nominatim API is used.
- Fix Time Event Validation, Update Event Model with Country, Update Validation Error Message are for the bugs on the previous commit.
- Implement Create Event Function I implemented the static create event function on the Event class. Reverse geocoding is used on this function.
- Implement Create Event Endpoint Endpoint related to above function is implemented.
- Add Create Event Test Unittest for the create event is created. In total 6 tests are implemented.
-
30.11.2021 I added method decorator after Berk's review here.
-
30.11.2021 I started working on event participation. Related pull request Backend Event Participation #277. Related commits:
- Add Add Interest Function and Add Add Spectator Function are the base functions on Event class to send participation request and spectator request. Add Add Interest Endpoint and Add Add Spectator Endpoint are their corresponding endpoint implementations.
- Add Accept Participant Endpoint Then I implemented the accept participant endpoint which enables event creators to select interested users as participants. Create Accept Participant Validator is the request validator for the endpoint. Its related function on event class can be found on commit Add Add Participant Function.
-
01.12.2021 I reviewed Berk's pull request, did not catch any errors, I merged it. I reviewed Berk's another pull request, did not catch any errors, I merged it.
-
06.12.2021 I continued working on event participation. Related pull request Backend Event Participation #277. Related commits:
- Add Message to Participation Request After checking the requirements, I realized users should be able to send messages with participation requests. It is implemented.
- I implemented the get functions for the events participants, interesteds and spectators. Related commits: Add Get Spectators Function, Add Get Interesteds Function and Add Get Participants Function
- I implemented the get endpoints for the events participants, interesteds and spectators. Related commits: Add Get Spectators Endpoint, Add Get Interesteds Endpoint and Add Get Participants Endpoint
- Add More Error Messages To Attend Spectator View I added more error messages to make sure the API user can understand the reason for failure. I wrote more specific messages for users with different participation status.
- I wrote the endpoints and functions for the delete functionality where user can delete its interest, spectator status and participating status. Related commits: Add Delete Spectator Function, Add Delete Spectator Endpoint, Add Delete Interest Function, Add Delete Interest Endpoint, Add Delete Participant Function, Add Delete Participant Endpoint.
- Add Participation Test I then implemented unit tests for the related functionalities. There are in total 12 unit tests.
-
07.12.2021 I reviewed Berk's pull request, wrote some new comments.
-
07.12.2021 I fixed the reviews on related pull request Backend Event Participation #277 with commits Fix Early Return and Add Blank To Message Field then participation was merged.
-
08.12.2021 I reviewed Berk's pull request after his fix, wrote a comment.
-
08.12.2021 I reviewed Berk's pull request, wrote a small comment.
-
09.12.2021 I reviewed Berk's pull request, did not catch any errors, I merged it.
-
11.12.2021 I realized I did not check skill levels for users before adding them as participants. I updated the functions to check that the skill level is between the requires skill level. I also added unit test for it. Related issue Skill Levels Should Be Checked on Participation Requests #298, related pull request Backend Fix Skill Level Check #299, related commits:
-
11.12.2021 I reviewed Berk's pull request, did not catch any errors, I merged it. I reviewed Berk's pull request, wrote a comment to change the status code.
-
11.12.2021 I implemented the user part of the participation where GET endpoints for users spectating, participating and interested events. Related issues Create an Endpoint to get Events that the user joins as a Spectator #274, Create an Endpoint to get Events for which the User is accepted #273, Create an endpoint to get Events for which participation request has been sent for the User #272, related pull request Backend User Participation #300, related commits:
-
11.12.2021 Musa from the front-end team realized that the create event endpoint returns server error on some coordinates and opened an issue. After examining the issue, I realized it was related to the Nominatim API. It does not return all addresses with the same format. It returns different labels for different addresses. For example on an example I tried, "Trabzon" was on the "state" field but on the example Musa tried "Istanbul" is in the "province" field and there isn't a "state" field. To fix this, I used the admin levels of the addresses. "city" is taken as the biggest level after country without region. "district" is taken as the next present level. And I do not look at hardcoded labels. Related issue A bug about /events POST - Create Event endpoint #302, related pull request Fix Reverse Geocoding #303, related commits:
-
12.12.2021 I reviewed Berk's pull request, did not catch any errors, I merged it. I reviewed Berk's another pull request, did not catch any errors, I merged it.
-
12.12.2021 Ekrem from front-end team requested that we return more event information on get events that user is participating, interested or spectating. After learning the wanted information, I added the related information to get endpoints. I also updated the tests to match new information. Related issue Endpoint for interest, acceptance, spectating information about a user may be modified #304, related pull request Add More Fields To Get User Events #305, related commits:
-
12.12.2021 I started working on the badges. I created a file for the badges we selected from the Wikidata and implemented the Get system badges endpoint. Related issues Create an Endpoint to get Badges in the system #286, Add predefined badges into the System #287, Create a DB model For Badges #289, related commits:
-
13.12.2021 I continued to work on the badges. I implemented the functionality related to assigning badges. I started by separating the database and implementing the endpoints. Related issues Modify Get Event Endpoint to get Badges related to it #288, Create a DB model for user badge relation #290, Create an Endpoint to give badges to other users. #291, related pull request Backend Badge Basics #326, related commits:
- Seperate Badge Models
- Add Badge Validation
- Add Get Event Badges
- Add Get Event Badges Endpoint
- Add Add Event Badge Function
- Add Add Event Badges Endpoint
- Add Badge Test
- Add Get User Badges Function
- Add Get User Badges Endpoint
- Add Give Badges To Other User Function
- Add Give Badge To Other Users Endpoint
- Add Badge Test
-
14.12.2021 Deployment of the front-end was a task of the front-end team. However, since they were not able to do it and I finished my tasks earlier, I looked at deploying the front-end to the AWS. After some research, I was able to deploy it to the server. Berk also helped me on the task. I used this resource.
-
14.12.2021 While looking through through the code I realized non-organizer users can also edit the eventas. I opened a new issue for this issue.
-
19.12.2021 Berk solved the issue #338. I wrote a small comment to change the return code. And merged the code.
-
25.12.2021 We did not add location to user on previous milestones. Berk opened and issue #357 and I fixed it. I updated the related databases and validations. Related pull request Retrieve Location Information From the User #394. Related commits:
-
25.12.2021 According to requirement 1.3.2.3.2 Who can post or see the posts on this page can be adjusted by the event creator. I started by adding two fields to the events. canEveryoneSeePosts and canEveryonePostPosts, these fields indicate who has the permissions to post and see event discussions. When true, everyone has access when false, only event creators, participants and spectators can see or post event discussions. Related issue Create an Endpoint to not allow for some users to comment or create a discussion post #348, related pull request Discussion Related Endpoints #399, related commits:
-
26.12.2021 Users should be able to post discussion posts related to the events. I started by creating a database for the discussion posts. Discussion posts have the image and text parts. Then I implemented the POST endpoint to create posts. I wrote unit test for the endpoint and API documentation. Related issue Create an Endpoint to Create a Discussion Post for an Event #345, related pull request Discussion Related Endpoints #399, related commits:
-
26.12.2021 Users should be able to delete discussion posts related to the events. I implemented a new endpoint to enable users to delete discussion posts. The users that can delete a post are event creators and user who created the post. Related issue Create an Endpoint to Delete a Discussion Post for an Event #346, related pull request Discussion Related Endpoints #399, related commits:
-
26.12.2021 Users should be able to post comments to event discussion posts created by other users and also be able to delete them. I implemented new enpoints that enables users to comment on posts and delete. I created a new database for this purpose and each comment is connected to a discussion post. Related issue Create an Endpoint to Add Comments to the Discussions #347, related pull request Discussion Related Endpoints #399, related commits:
-
26.12.2021 The functionality of getting discussion posts and comments of an event. For the posts on events I chose the schema SocialMediaPosting. And for the comments Comment schema is used. The “comment” property of the SocialMediaPosting combines the discussions to comments. I therefore created an GET endpoint for users to get event posts and comments. Related issue Create an Endpoint to Add Comments to the Discussions #347, related pull request Discussion Related Endpoints #399, related commits:
-
30.12.2021 When we first talked about the equipments. We decided to find an external API and use it to have equipment types on our system. However, I was not able to find such API. I checked the Wikidata and found the instances of the sports equipment but most of the instances did not have labels. Therefore we decided not to have predefined equipments. I then implemented the database for equipments. Related issue Create a DB model For Equipments and add predefined equipment types into the system #383, related pull request Equipment #411, related commits:
-
30.12.2021 : Using the above database models, I implemented endpoints for users to create, get and delete equipment. Each equipment must be related to a sport type. Related pull request Equipment #411, related commits:
-
30.12.2021 : For the equipments I implemented the discussion functionality. It is highly similar to event dicsussion. Related issues Create an Endpoint to Add discussion to the equitment #386, Create an Endpoint to delete equipment posts #387. Related pull request Equipment #411, related commits:
- Add Create Equipment Post Function
- Add Create Equipment Post Endpoint
- Add Equipment Validation
- Add Test Equipment Discussion
- Add Delete Equipment Post Endpoint
- Add Create Equipment Comment Function
- Add Create Equipment Comment Endpoint
- Add Delete Equipment Comment Endpoint
- Add Get Equipment Posts Function
- Add Get Equipment Posts Endpoint
-
30.12.2021 : For the search, creator, location, sport, and the name of the equipment can be used. For these filters I implemented the necessary validation. I wrote the class function and the endpoint. Related issues Create a Search Endpoint for equipment posts #388 . Related pull request Equipment #411, related commits:
-
1.1.2022 : According to requirement 1.4.1.2, users should be able to request new badges from the system. I implemented a new endpoint where registered users can send badge requests to the system. Related issues Create a DB Model and An Endpoint For New Badge Requests #344. Related pull request New badge request #418, related commits:
-
1.1.2022 : Users should not be able to add themselves as participants or send requests after the event start date. Since I wrote the participation related codes on the previous milestone, I just added the necessary checks to make sure other users cannot change participation status after the event start date. Related issues Add Date Check for Participation Request #341. Related pull request Check Participation Date #419, related commits:
-
1.1.2022 : I wrote the functionality of adding a badge to an event on the previous milestone but the event creators did not have the chance to delete those badges. I implemented an new DELETE endpoint for event creators to delete badges that will be given after the event. Related issues Create an Endpoint to delete a badge for particular Event #342. Related pull request Delete event badge #423, related commits:
-
2.1.2022 : To have sport-specific functionality, we decided to implement sport specific badges. We added a sport field to the badges model additional to wikidata and name. This was events related to a specific sport can have more personalized badges. This also affects other endpoints that return badges so I fixed them also. I corrected the database model and wrote an endpoint to return badges specific to a sport. Related issues Add Sport Specific Badges #422. Related pull request Sport Specific Badges #425, related commits:
-
3.1.2022 : While checking whether user has allowed the badge_visibility and returning the information based on that information, the check line was not working correctly and was giving error when no token is given. Berk opened an issue for the bug and I fixed it. Related issues Bug in get user badges endpoint. #454. Related pull request Bug in get user badges endpoint #455, related commits: