# **Caner** Note: I try to classify requirements that are related with me and I try to explain in description parts what we add to fulfill specific requirements. In the code explanation parts, I try to explain mostly the logics behind backend of those services & systems. But, I did not just make implementation of backend part, I also implement base part of frontend application too. So I will shortly explain what is happening on backend side and how we use them in web frontend component. ## Memory Creation Improvements (Backend & Web App Related) ### Requirements fulfilled | No | Requirement | State | | -------- | -------- | -------- | | F-2.2 | The system shall require title, text, semantic tags, location and date for each new memory. | Done | | F-2.4 | The system shall allow users to add semantic tags to their memories. | Done | | F-2.12 | The system shall allow users to draw shapes on the map for location. | Done | | F-2.13 | The system shall allow users to label semantic tags. | Done | | F-2.14 | The system shall allow users to label location names | Done | **Description:** The create memory functionality already has title, content text, location and date info. Also, it has tags too. But in new version of creation of memory, we converted text base tags into semantic tags that come from "Wikidata". Also, for location information it was only available to select a point of location. Now users can draw circle, polgon, line and also point selection is still available. With those changes, we need some more improvements for tags and locations. Users now have a chance to enter label for their selected semantic tag & locations. **Issues:** [Semantic Tag Limit](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/287) [Removing tags does not work](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/216) [Handle required parameters sent null in create story request](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/192) [Semantic Tags](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/169) [Make location names editable](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/152) [Fix Location geometry field](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/117) [Migration file for new `StoryImage` model](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/110) [Do research and try to implement area location](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/100) [Update story creation logic on Frontend](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/63) [Change image storage type in story content](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/28) **Pull requests:** [Update semantic tag limit #287](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/291) [Update Text align for story creation date #242](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/263) [Feature/216 removing tags bug](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/220) [Add non blankable fields in story creation #192](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/193) [Feature/169 semantic tags](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/180) [Feature/100 location rework with google](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/128) [Feature/28 image store type](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/33) [Story photo store type changed as URL #28](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/30) #### Explanation of the code In the previous code, we already have "Story", "Location" models that serves to store memories. While creating a story we already use "CreateStoryView" API View. To validate and create memories we implemented "StorySerializer" and "LocationSerializer" already. To implement drawable shapes I changed postgres db to postgis to allow geolocation. Also, I changed the location model to store every drawable shapes. With "StoryImageSerializer" we store images that are added inside memories in our folder directly and in database we only keep their urls to reach them. For, semantic tag part I implemented an endpoint to reach Wikidata search called "WikidataSearchView". It allows us to send a search and reshape the returned response for our use purpose. We added 50 search result limit for search results. Also, users can add labels to their tags because some tags can be not explanatory because of the wikidata limitations. ## Memory Edit Improvements (Backend & Web App Related) ### Requirements fulfilled | No | Requirement | State | | -------- | -------- | -------- | | F-2.9 | The system shall allow users to edit their memories’ all content. | Done | | F-2.17 | The system shall allow users to edit their memories’ title. | Done | | F-2.18 | The system shall allow users to edit their memories’ time. | Done | | F-2.19 | The system shall allow users to edit their memories’ tag. | Done | | F-2.20 | The system shall allow users to edit their memories’ tag label. | Done | | F-2.21 | The system shall allow users to edit their memories’ location. | Done | **Description:** The edit memory functionality only available for memory's content text. Now users can edit all their memory details. Also, when users clicks "Edit" button the opened page has all fields already filled with their old version of memory. Users can edit time resolution and time values, label and values of their tags and locations, title of memory. With these changes users now simply fix their mistakes. **Issues:** [Time Edit Runtime Error](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/328) [Edit Story Issues](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/283) [Edit Story button name change](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/215) [Edit Story bug](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/214) [Add feature to edit memory content](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/111) **Pull requests:** [Bug/328 time edit runtime error](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/330) [Bug/283 edit story fill](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/290) [Fix location issue while editing a story #214](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/222) [Update edit Story button name #215](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/219) [Feature/111 edit story](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/211) [Add location name edit #152](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/155) **Screenshots:** ![image](https://hackmd.io/_uploads/rk6_amf_6.png) #### Explanation of the code In the previous code, we allow users to edit their memory contents only. With new implementations users can edit all parts of a memory now. For this purpose, I changed the existing "UpdateStoryView" API View. Inside of the API View I use "StoryUpdateSerializer" serializer to validate updated fields and update all fields easily. Especially updating memories with more than 1 location may be an issue without this serializer. It helps us to handle all locations easily. ## Activity Stream Implementation (Backend & Web App Related) ### Requirements fulfilled | No | Requirement | State | | -------- | -------- | -------- | | F-3.2 | The system shall recommend following other members based on their activity. | Done | | F-3.3 | The system shall display activities of the followed users | Done | | F-3.4 | Activities shall be sorted by the type such as, like unlike, follow, comment. | Done | | F-3.5 | The system shall redirect user to the memory detail page when the user clicks on the activity box. | Done | **Description:** In memory application there were no activity related implementation. With these implementations users basically see who follows/unfollows them easily. Also, users can see new stories from their followings. Besides these users can see like/unlike for their written memories. Lastly the users can see who commented on their created memory, liked memory or commented memory. So, basically it is now more social application with "Activity Stream". **Issues:** [Activity Stream page - default message for no activity](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/252) [Add comment activity to system](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/138) [Activity Stream system](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/131) [Activity stream system on Backend](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/66) **Pull requests:** [Add new comment activity #138](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/139) [Feature/131 activity stream base](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/132) #### Explanation of the code The activity stream part is a new part. For this purpose I created a model named "Activity". It has 7 different type of activities. For following users, when they create a new memory the users will be notified. If a user likes/unlikes or comments on a memory that user created the author of the memory will be notified. Also, if a user comments or likes a memory then it means that user is now related with that story and if another user comment on that memory the commentor/liker will also notified. I also added "ActivitySerializer" to keep related usernames & memory titles easily. **Screenshots:** ![image](https://hackmd.io/_uploads/HksSTQMua.png) ## Recommendation System Implementation (Backend & Web App Related) ### Requirements fulfilled | No | Requirement | State | | -------- | -------- | -------- | | F-3.1 | The system shall recommend memories to members based on their activity. | Done | **Description:** In the previous version of the Memory application the only way to see new memories is to go main page feed. But with "Recommendation System" users will see new stories that could be relevant with themselves. Basically the system recommend some memories according to user's liked stories. If there is not enough memory recommendation to show users will see most liked memories in the system. **Issues:** ["Loading..." for Recommendation page](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/349) [Recommendation Update Bug](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/324) [Story Recommendation Filling Issue](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/302) [Recommendation Frontend Imp](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/256) [Recommendation Backup Data](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/243) [Recommendation v2](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/238) [Recommendation v1](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/181) [Recommendation System Ideas](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/67) **Pull requests:** [Update recommendation function #324](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/325) [Bug/302 recommendation filling issue](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/304) [Add not enough recommendation back up data #242](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/265) [Feature/256 recommendation frontend](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/259) [Feature/238 recommendation v2](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/258) [Feature/181 recommendation v1](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/189) #### Explanation of the code There were no code about recommendation in previous version of the app. I added a simple model named "StoryRecommendation" to store user's recommended memories and other related fields with recommendation. Besides, there is a simple API View to update them called "UpdateRecommendationsByUserView" and retrieve them called "GetRecommendationsView" when needed. Also, there is a serializer called "StoryRecommendationSerializer" that handles the memory details while retrieving the recommendations. When the "UpdateRecommendationsByUserView" called it runs a function called "update_recommendations". When that function is called it gets the specific user's liked memories. Then the function compares the liked memories' semantic tags with wikidata sub/superclass query. If there is a match with sub/superclass wikidata Q code with other memories it should create a match and add tag relation. After that the function makes the checks for location & time information with the same logic of search functionality. After that, if there is a relation with a memory, it add the location relation and time relation for that. Lastly, the function extracts 5 keywords via "extract_keywords_enhanced" function for liked memory and comparing memory. The function compares them and according to count that is same keywords the "update_recommendations" function adds content relation too. Lastly, the function calculates a point for relations. For tag relation it adds 2 points, location it adds 1 point, time it adds 0.5 points and lastly for each content relation it adds 0.5 points too. Also, the "GetRecommendationsByUserView" API View handles the shown count of the recommendations. Because, the recommendations shown with ordering "shown_count" ascending and points descending. The system shows first 5 recommendation stories. If there is not enough recommendation memory it fills missing ones with most liked memories. **Screenshots:** ![image](https://hackmd.io/_uploads/BylQTQf_p.png) ## Profile Page Improvements (Backend & Web App Related) ### Requirements fulfilled | No | Requirement | State | | -------- | -------- | -------- | | F-4.1 | The system shall allow users to add a profile photo to their profile. | Done | | F-4.3 | The system shall allow users to edit their profile photo. | Done | | F-4.4 | The system shall allow users to remove their profile photo. | Done | | F-4.7 | The system shall display users' created memories. | Done | **Description:** In the previous version of Memory application profile page has a less attractive design. Also, UX of the profile page was not good enough for user's to use easily. For this purpose, we added new buttons for profile photo and follow related buttons. Also, I changed the profile photo storage type and file size for it. **Issues:** [Upload file size issue](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/313) [User profile frontend arrangements](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/272) [Revise the photo buttons design](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/267) [Profile Page Memory Creation Date Issue](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/242) [Fix other follower counter on other profile's page](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/203) [User profile navigation issue](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/107) [AttributeError at /user/userFollowers/&lt;int&gt;](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/77) [Change profile photo response and requests](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/56) **Pull requests:** [Imp/313 upload file size](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/318) [Update profile details part #272](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/273) [Imp/267 revise the profile buttons](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/268) [Bug/230 user profile stories bug](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/234) [Resolve follower count #203](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/212) [Hotfix/77 attribute error](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/82) [Feature/56 profile photo improvement](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/57) [Fix user followers request #50](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/54) [Fix logout & user stories on profile page #50](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/53) #### Explanation of the code In profile page we already have edit biography and other things. But, I implemented new profile photo store logic. We keep profile photos in our project folder and keep the url of the photo inside our database and reach photo with it. ## Search Functionality Improvements (Backend & Web App Related) ### Requirements fulfilled | No | Requirement | State | | -------- | -------- | -------- | | F-6.11 | The search function shall filter memories by semantic tags. | Done | | F-6.12 | The search function shall filter memories by semantic tag label. | Done | | F-6.13 | The system shall allow users to see search results as a list by creation date sorted | Done | | F-6.14 | The system shall allow users to see search results as a timeline by memory date sorted | Done | **Description:** In the previous version of the search functionality, most of the parts already implemented. But with the change of tag and location logics in memory's, we implemented those changes to search functionality too. Also, there were no sort logic in search results now it is also added too. Besides, in search page there is a new button which allows users to see search results as a timeline. **Issues:** [Search by Tag Label](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/288) [Click issue to drawable location](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/257) [Search Story API Changes](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/241) [Search Results as Normal Memory Flow](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/239) [Merge Story search functions!](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/224) [Search tag issue](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/223) [Search functionality issues](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/133) [Timeline search result title issue](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/130) [Fix search page location marker issue](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/129) **Pull requests:** [Add tag label search #287](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/292) [Feature/257 click issue location](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/262) [Feature/241 search story changes](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/249) [Add Search semantic tag feature on search #223](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/235) [Feature/224 merge story search](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/225) [Fix search issues #133](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/134) #### Explanation of the code We already have all search logics in previous version of the code. But now we needed to make some changes to fulfill new semantic tag logic. For this purpose I changed "SearchStoryView" so that it will handle wikidata id and tag's labels. The search functionality basicly adds queries with each other and at the end the query search the memories. For Geo Location I create buffer areas and looks for intersections with memory's locations. But for circle part I made an implementation to create buffer because it has a radius logic and circle buffers search memories seperately and retrieve intersection story ids. ## Search Results by Timeline Implementation (Backend & Web App Related) ### Requirements fulfilled | No | Requirement | State | | -------- | -------- | -------- | | F-6.14 | The system shall allow users to see search results as a timeline by memory date sorted | Done | | F-6.15 | The system shall allow users to see search results as a timeline by sorting ascending and descending | Done | | F-6.16 | the system shall redirect user to the timeline when the user clicks on the marker on the map. | Done | | F-6.17 | The system shall redirect user to the memory detail page when the user clicks on the memory boxes on the timeline | Done | | F-6.18 | On the timeline page, the system shall display a photo if there is any on the memory box | Done | | F-6.19 | The system shall allow users to scroll horizontally on the timeline | Done | | F-6.20 | The system shall display the searched location name on the timeline page | Done | **Description:** As mentioned in previous part, we added new functionality for search results. It basically allows users to see their search results as a timeline that can be scrolled horizontally and sorted by memory's date information. Also, in this version of search results users can see a photo from the memory as a preview. With the implementation of timeline search result users can now click on locations that are inside memory's. It means, users can click on memory's location drawable shapes or points and with this action users automatically made search by clicked location directly. **Issues:** [Fix Timeline Ordering wording](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/373) [Improve timeline response formatting](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/297) [Line for Timeline](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/286) [Timeline Details](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/284) [Timeline Resize for Scales](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/244) [Timeline Swipe Feature](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/226) [Timeline search name bug](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/217) [Timeline Design Imps](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/153) [Timeline story click not working](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/97) [Make necessary changes on Frontend Components for Timeline Feature](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/49) [Create needed component on frontend for Timeline Feature](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/46) [Create needed backend requests for Timeline Feature](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/45) **Pull requests:** [Imp/284 timeline details](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/293) [Update css files for resize of timeline #244](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/250) [Feature/226 timeline swap](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/227) [Fix timeline name #217](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/221) [Feature/153 timeline design](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/218) [Update Timeline.js](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/98) [Update views.py for timeline search](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/70) **Bugfix Issues** **Bugfix Pull requests** #### Explanation of the code To implement timeline search results, on backend I add a function inside "SearchStoryView" that is called "extract_timestamp". It handles the different type of memory time information. It converts all time information into a same format so that, the system can sort all memories according to memory times. Also, for timeline search purpose I added "SearchStoryByLocationView" that allows clicking on the location drawing shapes to make a search with location directly inside memory. ## Improvements for Mobile Application Integration (Backend) ### Requirements fulfilled | No | Requirement | State | | -------- | -------- | -------- | | NF-17 | The system shall be available as a Mobile application. | Done | **Description:** The previous version of application only consists of web and backend sides. Now we add mobile part of the application. With this addition we need to make some changes on backend api requests and responses to fit "Flutter" app on mobile. Backend team worked with mobile team coordinately for this purpose. **Issues:** [Profile picture endpoint error message](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/370) [Add post request to SearchStory](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/306) [Update Activity stream response](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/303) [Feed page endpoint for mobile](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/191) [Comment model field inconsistency](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/161) [Add success and msg fields in all responses](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/50) [Resolve backend & mobile JWT logic](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/27) **Pull requests:** [Imp/306 add post request to searchstory](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/307) [Imp/303 update activity stream response](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/305) [Add new request for all stories with own stories #191](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/194) [Update comment author response #161](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/164) [Add comment author name #161](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/162) [Fix request response issues #50](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/52) [Update request responses #50](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/51) #### Explanation of the code In previous version we did not have mobile part. Now we add mobile app. For this purpose, we firstly check authentication logic which handled by JWT. Also, I added "msg" and "success" fields to all API responses. With those changes mobile part directly get the message of the responses. Besides, I made some changes in response types for mobile part for more consistent response logic. ## Unit Test Integration (Backend) In the previous version of the backend app, there were some unit tests. But with new changes on backend we need to make some changes to fully control more backend actions. In this purpose we implement unit test for models & api views seperately. ### Requirements fulfilled | No | Requirement | State | | -------- | -------- | -------- | | NF-18 | The system shall has unit tests on backend application. | Done | **Description:** **Issues:** [Implement Django View Tests](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/342) [Implement Django Model Tests](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/341) **Pull requests:** [Imp/342 django view tests](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/344) [Imp/341 django model tests](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/343) #### Explanation of the code In the previous version of the code, there were some unit tests on backend. But they were outdated with the new changes. For this purpose, I create 2 different files called "test_models.py" and "test_apis.py". They consist of model tests and api tests. In model tests, I implemented assertion of new values. In api tests, I implemented to send reverse requests to implemented API views. Also, for this purpose I made some changes in "urls.py" to make available the use of "reverse" functionality. ## General Fixes (Backend & Web Application) **Description:** Besides all requirements related works, I did some little fixes that are not directly related with some requirements but for improvements on backend & web application. **Issues:** [Fix login and register page](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/232) [User profile showing story count bug](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/230) [Fix author profile pic in memory detail](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/201) [Web page rendering 2 times](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/186) **Pull requests:** [Fix login register sizes & header sizes #232](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/233) [Fix story author photo #201](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/231) [Resolve 2 times rendering](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/188) ## Challenges There were some challenges I faced with in both Backend and Frontend. For backend part, the most challenging part is to optimizing recommendation logic. Also, if there is not enough (5 memories) to recommend the system should add most liked stories. But adding 2 different models was a challenge for me. Another backend challenge was to implement geolocation. We converted db from postgres to postgis. And for this purpose I needed to update all location related Backend calls. It was challenging especially for geolocation search. For frontend part, the edit function with filled values and the shape drawing for geolocation was very challenging for me. Because, there is a lot of integrations that should be done for geolocation. Then I solved it with Google Maps API. Also, for edit with filled values was the another hard part. Because, I needed to handle all possible scenarios with different datetime values and parsing them was also a challenge too. ## All Issues Related with Me | Issue | Created by me | Assigned to me | | -------------------------------------------------------------------------------------------------------------------------------------------- | ------------- | -------------- | | [Fix Timeline Ordering wording](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/373) | ✅ | ✅ | | [Profile picture endpoint error message](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/370) | | ✅ | | ["Loading..." for Recommendation page](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/349) | | ✅ | | [Implement Django View Tests](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/342) | ✅ | ✅ | | [Implement Django Model Tests](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/341) | ✅ | ✅ | | [Time Edit Runtime Error](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/328) | | ✅ | | [Recommendation Update Bug](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/324) | ✅ | ✅ | | [Upload file size issue](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/313) | | ✅ | | [Add post request to SearchStory](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/306) | ✅ | ✅ | | [Update Activity stream response](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/303) | ✅ | ✅ | | [Story Recommendation Filling Issue](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/302) | ✅ | ✅ | | [Plan cross-team meetings](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/301) | | ✅ | | [Implement dark mode](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/299) | | ✅ | | [Create design diagrams](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/298) | | ✅ | | [Improve timeline response formatting](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/297) | ✅ | ✅ | | [Search by Tag Label](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/288) | ✅ | ✅ | | [Semantic Tag Limit](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/287) | ✅ | ✅ | | [Line for Timeline](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/286) | ✅ | ✅ | | [Implement frontend pop-up warnings](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/285) | ✅ | | | [Timeline Details](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/284) | ✅ | ✅ | | [Edit Story Issues](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/283) | ✅ | ✅ | | [Fix following stories font](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/282) | ✅ | | | [User profile frontend arrangements](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/272) | ✅ | ✅ | | [Revise the photo buttons design](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/267) | | ✅ | | [Activity Stream Center Bug](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/260) | ✅ | | | [Click issue to drawable location](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/257) | ✅ | ✅ | | [Recommendation Frontend Imp](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/256) | ✅ | ✅ | | [Activity Stream page - default message for no activity](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/252) | | ✅ | | [Timeline Resize for Scales](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/244) | ✅ | ✅ | | [Recommendation Backup Data](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/243) | ✅ | ✅ | | [Profile Page Memory Creation Date Issue](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/242) | ✅ | ✅ | | [Search Story API Changes](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/241) | ✅ | ✅ | | [Fix frontend fonts](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/240) | ✅ | | | [Search Results as Normal Memory Flow](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/239) | ✅ | ✅ | | [Recommendation v2](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/238) | ✅ | ✅ | | [Activity System Bug](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/237) | ✅ | | | [Fix login and register page ](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/232) | ✅ | ✅ | | [User profile showing story count bug](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/230) | ✅ | ✅ | | [Timeline Swipe Feature](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/226) | ✅ | ✅ | | [Merge Story search functions!](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/224) | ✅ | ✅ | | [Search tag issue](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/223) | ✅ | ✅ | | [Timeline search name bug](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/217) | ✅ | ✅ | | [Removing tags does not work](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/216) | ✅ | ✅ | | [Edit Story bug](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/214) | ✅ | ✅ | | [Edit Story button name change](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/215) | ✅ | ✅ | | [Fix other follower counter on other profile's page](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/203) | | ✅ | | [Fix author profile pic in memory detail](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/201) | | ✅ | | [Check docker versions on VM](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/195) | ✅ | | | [Handle required parameters sent null in create story request](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/192) | | ✅ | | [Feed page endpoint for mobile](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/191) | | ✅ | | [Web page rendering 2 times](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/186) | | ✅ | | [Recommendation v1](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/181) | ✅ | ✅ | | [Write milestone 2 report](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/173) | | ✅ | | [Semantic Tags](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/169) | ✅ | ✅ | | [Fix login page scaling](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/163) | ✅ | | | [Comment model field inconsistency](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/161) | | ✅ | | [Backend Logging Improvements](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/156) | | ✅ | | [Location Marker Label Design](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/154) | | ✅ | | [Timeline Design Imps](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/153) | ✅ | ✅ | | [Make location names editable](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/152) | ✅ | ✅ | | [Add comment activity to system](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/138) | ✅ | ✅ | | [Search functionality issues](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/133) | ✅ | ✅ | | [Activity Stream system](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/131) | ✅ | ✅ | | [Timeline search result title issue](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/130) | ✅ | ✅ | | [Fix search page location marker issue](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/129) | ✅ | ✅ | | [Handle map centering](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/119) | ✅ | ✅ | | [Fix Location geometry field](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/117) | ✅ | ✅ | | [Add feature to edit memory content](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/111) | | ✅ | | [Migration file for new `StoryImage` model](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/110) | | ✅ | | [Remove duplicate dictionary key](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/109) | | ✅ | | [User profile navigation issue ](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/107) | ✅ | ✅ | | [Do research and try to implement area location](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/100) | ✅ | ✅ | | [Timeline story click not working](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/97) | ✅ | ✅ | | [Prepare pre-release for milestone 1](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/92) | | ✅ | | [Add UML diagrams](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/84) | | ✅ | | [Cache photo system in frontend](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/83) | ✅ | | | [Follow user button & counter issue](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/81) | ✅ | | | [AttributeError at /user/userFollowers/<int>](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/77) | | ✅ | | [Create additional design documents and plans](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/71) | | ✅ | | [Improve frontend design](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/68) | ✅ | ✅ | | [Recommendation System Ideas](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/67) | ✅ | ✅ | | [Activity stream system on Backend](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/66) | ✅ | ✅ | | [Write milestone 1 report](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/64) | | ✅ | | [Update story creation logic on Frontend](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/63) | ✅ | ✅ | | [Change delete story request](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/62) | ✅ | ✅ | | [Add delete story api View](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/60) | ✅ | ✅ | | [Determine branch use for trivial changes](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/59) | | ✅ | | [Change profile photo response and requests](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/56) | ✅ | ✅ | | [Add success and msg fields in all responses](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/50) | | ✅ | | [Make necessary changes on Frontend Components for Timeline Feature](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/49) | ✅ | ✅ | | [Decide on and write down commit / branching conventions](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/48) | | ✅ | | [Create needed component on frontend for Timeline Feature](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/46) | ✅ | ✅ | | [Create needed backend requests for Timeline Feature](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/45) | ✅ | ✅ | | [Get on the same page](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/44) | | ✅ | | [Improve User Page Story Preview](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/41) | ✅ | ✅ | | [Adjust Milestone 1 Deliverables](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/40) | ✅ | | | [Improve Main Page Story Preview](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/39) | ✅ | ✅ | | [Create Scenarios for Milestone 1](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/38) | ✅ | ✅ | | [Django Swagger UI](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/37) | | ✅ | | [Change image storage type in story content](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/28) | | ✅ | | [Resolve backend & mobile JWT logic](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/27) | ✅ | ✅ | | [Update preview icon and description for web](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/25) | | ✅ | | [Construct git workflow with new `dev` branch](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/24) | | ✅ | | [API Documentation for Mobile Development](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/14) | ✅ | ✅ | | [Fork Old Project Codes to the Repository](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/10) | ✅ | | | [Discord Webhook to follow Commits](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/issues/4) | ✅ | ✅ | ## All Pull Requests Related with Me | Pull Request | Created by me | Reviewed by me | |------------|-------------|--------------| | [Fix wording #373](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/374) | ✅ | | | [Feature/349 loading for recommendation](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/353) | | ✅ | | [Dev->Main #321 #322 #324 #326 #332 #335 #328 #299 #331 #342 #341 #346 #340 #348 #349 #340 #354 #356 #358 #360 #362 #364 #366 #368 #370](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/351) | | ✅ | | [Imp/342 django view tests](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/344) | ✅ | | | [Imp/341 django model tests](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/343) | ✅ | | | [Bug/328 time edit runtime error](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/330) | ✅ | | | [Update recommendation function #324](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/325) | ✅ | | | [Bug/Fix misaligned headers #316](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/320) | | ✅ | | [Imp/313 upload file size](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/318) | ✅ | | | [Bug/316 Fix Logout Button](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/317) | | ✅ | | [Feature/299 implement dark mode](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/314) | | ✅ | | [Feature/297 improve timeline response formatting](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/310) | | ✅ | | [Dev->Main #240 #274 #277 #283 #287 #288 #284 #163 #302 #303 #306 #281 #282 #297 #316 #313](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/309) | | ✅ | | [Imp/306 add post request to searchstory](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/307) | ✅ | | | [Imp/303 update activity stream response](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/305) | ✅ | | | [Bug/302 recommendation filling issue](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/304) | ✅ | | | [Merge final report to dev branch](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/296) | | ✅ | | [Update ActivityStream.js #281](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/294) | | ✅ | | [Imp/284 timeline details](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/293) | ✅ | | | [Add tag label search #287](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/292) | ✅ | | | [Update semantic tag limit #287](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/291) | ✅ | | | [Bug/283 edit story fill](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/290) | ✅ | | | [Bug/163 fix login page scaling](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/280) | | ✅ | | [Update hover design #277](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/278) | | ✅ | | [Change background #274](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/276) | | ✅ | | [Imp/240 frontend fonts](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/275) | | ✅ | | [Update profile details part #272](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/273) | ✅ | | | [Dev->Main #153 #215 #216 #217 #214 #143 #224 #226 #228 #143 #201 #232 #230 #223 #247 #244 #241 #237 #238 #256 #252 #257 #260 #242 #243 #113 #80 #251 #269 #267 #272](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/271) | | ✅ | | [Imp/267 revise the profile buttons](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/268) | ✅ | | | [Feature/113 add actions for enter key](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/266) | | ✅ | | [Add not enough recommendation back up data #242](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/265) | ✅ | | | [Update Activity Stream #260](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/264) | | ✅ | | [Update Text align for story creation date #242](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/263) | ✅ | | | [Feature/257 click issue location](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/262) | ✅ | | | [Add info message if there is no activity #252](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/261) | | ✅ | | [Feature/256 recommendation frontend](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/259) | ✅ | | | [Feature/238 recommendation v2](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/258) | ✅ | | | [Feature/251 minor refinements](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/255) | | ✅ | | [Add unit test v2 for login #80](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/254) | | ✅ | | [Update css files for resize of timeline #244](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/250) | ✅ | | | [Feature/241 search story changes](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/249) | ✅ | | | [Feature/247 update story error message](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/248) | | ✅ | | [Feature/237 activity stream bug](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/246) | | ✅ | | [Add Search semantic tag feature on search #223](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/235) | ✅ | | | [Bug/230 user profile stories bug](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/234) | ✅ | | | [Fix login register sizes & header sizes #232](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/233) | ✅ | | | [Fix story author photo #201](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/231) | ✅ | | | [Use "paths" config for pull_request workflow #228](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/229) | | ✅ | | [Feature/226 timeline swap](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/227) | ✅ | | | [Feature/224 merge story search](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/225) | ✅ | | | [Fix location issue while editing a story #214](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/222) | ✅ | | | [Fix timeline name #217](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/221) | ✅ | | | [Feature/216 removing tags bug](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/220) | ✅ | | | [Update edit Story button name #215](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/219) | ✅ | | | [Feature/153 timeline design](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/218) | ✅ | | | [Improve navbar #143](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/213) | | ✅ | | [Resolve follower count #203](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/212) | ✅ | | | [Feature/111 edit story](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/211) | ✅ | | | [Feature/143 navbar improvements](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/210) | | ✅ | | [Feature/183 login register popups](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/207) | | ✅ | | [Dev->Main #169 #184 #186 #178 #181 #170 #191 #192 #195 #168 #171 #172 #176 #151](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/206) | | ✅ | | [Feature/150 design homepage](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/205) | | ✅ | | [Redesign Activity Stream #177](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/204) | | ✅ | | [Feature/Improve profile page design #151](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/200) | | ✅ | | [Feature/172 redesign search frontend](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/199) | | ✅ | | [Feature/171 redesign memory viewing screen](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/198) | | ✅ | | [Feature/168 reduce docker image sizes](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/197) | | ✅ | | [Feature/195 docker compose pipeline](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/196) | | ✅ | | [Add new request for all stories with own stories #191](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/194) | ✅ | | | [Add non blankable fields in story creation #192](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/193) | ✅ | | | [Reports->Main Milestone-2](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/190) | | ✅ | | [Feature/181 recommendation v1](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/189) | ✅ | | | [Resolve 2 times rendering](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/188) | ✅ | | | [Visual changes on header #176](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/187) | | ✅ | | [Feature/184 make local-frontend](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/185) | | ✅ | | [feature/170 Redesign memory creation screen](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/182) | | ✅ | | [Feature/169 semantic tags](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/180) | ✅ | | | [Feature/178 CI Django test pipeline](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/179) | | ✅ | | [Feature/166 add missing migration file](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/167) | | ✅ | | [Dev->Main #101 #105 #81 #109 #100 #124 #120 #131 #133 #123 #124 #136 #138 #135 #103 #108 #122 #145 #147 #152 #157 #161 #158 #166](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/165) | | ✅ | | [Update comment author response #161](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/164) | ✅ | | | [Add comment author name #161](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/162) | ✅ | | | [Feature/158 add new targets into Makefile](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/160) | | ✅ | | [Feature/157 django debug mode](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/159) | | ✅ | | [Add location name edit #152](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/155) | ✅ | | | [Feature/103 update author info in license file](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/142) | | ✅ | | [Feature/122 Clear Django STATICFILES_DIRS list](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/141) | | ✅ | | [Feature/135 Makefile env-files target](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/140) | | ✅ | | [Add new comment activity #138](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/139) | ✅ | | | [Feature/136 extend photo image gitignore](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/137) | | ✅ | | [Fix search issues #133](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/134) | ✅ | | | [Feature/131 activity stream base](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/132) | ✅ | | | [Feature/100 location rework with google](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/128) | ✅ | | | [Feature/120 makefile](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/127) | | ✅ | | [Feature/124 django log level](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/126) | | ✅ | | [Feature/123 add env sample files](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/125) | | ✅ | | [Remove duplicate keys](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/118) | ✅ | | | [Update header.css for background gif #105](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/106) | | ✅ | | [Feature/101 remove profile photo button](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/104) | | ✅ | | [Dev -> Main #45 #46 #85 #97](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/102) | ✅ | | | [Update Timeline.js](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/98) | ✅ | | | [Update storyDetails for like issue](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/95) | ✅ | | | [Merge milestone 1 report](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/94) | | ✅ | | [Feature/46 timeline frontend](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/91) | | ✅ | | [Hotfix/77 attribute error](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/82) | ✅ | | | [Feature/75 frontend refinements](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/76) | | ✅ | | [Update views.py for timeline search](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/70) | ✅ | | | [Dev -> Main #36 #37 #50 #56](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/65) | ✅ | | | [Add delete story api View](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/61) | ✅ | | | [Feature/56 profile photo improvement](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/57) | ✅ | | | [Feature/36 overall code refinement](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/55) | | ✅ | | [Fix user followers request #50](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/54) | ✅ | | | [Fix logout & user stories on profile page #50](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/53) | ✅ | | | [Fix request response issues #50](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/52) | ✅ | | | [Update request responses #50](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/51) | ✅ | | | [Add swagger settings & configs](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/43) | ✅ | | | [Sync dev with main #28 #33 #34](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/35) | | ✅ | | [Dev->Main #28](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/34) | ✅ | | | [Feature/28 image store type](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/33) | ✅ | | | [Story photo store type changed as URL #28](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/30) | ✅ | | | [Update preview icon and description #25](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/26) | | ✅ | | [All necessary files pushed to new repository #10](https://github.com/SWE574-Fall2023-Group1/SWE574-Fall2023-G1/pull/19) | ✅ | |