Sprint 2
Mia
I spent 25+ hours on issue #11 to create posts with an anonymous username if the frontend UI anonymous toggle button was turned on. I then spent over 8 hours trying to implement the backend feature in which turning the anonymous toggle button on would allow the user to post with an "Anonymous" username and default profile picture. I was having many is…
Mia
I spent 25+ hours on issue #11 to create posts with an anonymous username if the frontend UI anonymous toggle button was turned on. I then spent over 8 hours trying to implement the backend feature in which turning the anonymous toggle button on would allow the user to post with an "Anonymous" username and default profile picture. I was having many issues passing in post data that had an "anonymous" username.
While I was able to figure out the front and backend parts of this feature separately, I severely underestimated the effort it would take to actually connect the two. I updated the API for each post object, and I was able to gather the state the frontend button was in (on/off). I, however, was unable to figure out how to actually update the api 'anonymous' value if the given time of the sprint.
Attempts for issue #11 :
I created an event handler for the action of the user turning the anonymous toggle button on, that works properly.
In the async function 'post' in the same composer.js file, I was handling a lot of authorization issues not allowing me to update the API with new information (further explanation in issue #11 description).
Another attempt at connecting the backend to the frontend was in the src/topcs/posts.js file. I set postObj.user.username and postObj.user.displayname to "anonymous", and that correctly displayed an anonymous username when I tried posting something on the forum. I struggled to find a way to export the state of the anonymous toggle button in this file location in order to connect these statements under an if statement that would only execute under the condition that the anonymous toggle was actually on.
Essentially, I think our team harshly overscoped during the entirety of project 2. I think trying to handle the entire anonymous feature on my own was an extremely difficult task.
Jullia
- Although greatly underestimating the time taken to complete my tasks, I have completed all my tasks sprint 2. I spent around 20+ hours implementing the course-faculty notification feature and also made sure to add automated test cases.
- PRs:
- #33
- I initially estimated this task to be around 6 hours as I thought I have completed the implementation of the notification on sprint 1 and only needed to work on making the button on the user settings page work. However, after learning more on how the user settings page works, I realize that the notification system from sprint 1 was not fully functional and required significant rework. It required modifications to the database schema and user preferences handling. As well as I realize I needed an upgrade script to add the new setting for all existing users which was an unexpected task. I also spent some time testing this feature and creating test cases to cover its functionality which is added in test/notifications.js
- Tests: #37
- #33
Alice
- I was tasked with more frontend issues, and was able to complete the tasks. I spent around 15 hours doing this task. This includes pulling frontend code from other teammates working on the same user story, searching for the template file, and making the necessary changes.
- PR: CMU-313/nodebb-frontend-f24-sweethearts#10
- I was not able to implement backend code that would actually saves posts to a favorites category. My job was implementing the buttons to ensure that they had the parts needed to then allow a backend code to exist and have a function. I think I could've been tasked with more, but working on the backend proved far much more complicated than I knew I could anticipate. It would have been overreaching the allotted time
Cheyu
- I was tasked with building the backend for toggling the frontend save to favorites button, and for saving the posts to and removing from favorites. I also wrote automated tests for the backend code. I finished the part for toggling, and verified that it was working but wasn’t able to complete the second part. Since all backend code are closely related, they need to be tested together, so I wasn’t able to make the code pass the test and merge it into the main branch.
- In the first sprint, I only have the “Save to Favorites” button. In this sprint, I added a “Remove from Favorites” button so that they will swtich between each other.
- PR
Jasmine
The goal of this milestone was to automatically set 'Homework' and 'Assignment' tags for all users in NodeBB. I have successfully implemented this feature and completed my milestone goals. However, the process encountered several challenges:
- Underestimated time requirement: initial estimates (9h) didn’t include the depth of the integration needed between the client-side tagging operations and the backend processes, and understanding NodeBB’s tagging mechanics took more time than anticipated.
- Time spent understanding tag behavior: Although having spent time learning it in sprint 1, the behavior of the tagging system was more complex than expected, eventually leading to delays as code needed to be debugged and better structured to align with the expected behavior.
PR: #34