ucsb-cs156 / proj-happycows

https://ucsb-cs156.github.io/proj-happycows/
1 stars 0 forks source link

EPIC: Add announcements to commons play page. #101

Closed github-actions[bot] closed 8 months ago

github-actions[bot] commented 8 months ago

Note: Please read through all the instructions on this epic - we do not expect you to complete all of it at once, and you should definitely split it into separate issues and PRs. Feel free to tackle as much as you can, in order as specified below.

Have you updated the title?

As a...

admin

I can...

add an announcement at the top of the commons

So that...

I can communicate to the players

Discussion

The announcements box at the top of the commons play page is intended for the administrator of the game to post announcements for players. However, that feature hasn't been implemented yet.

This Epic (collection of stories) introduces that feature to the game. You should break this epic into multiple issues before working on it.

Copy the user stories/acceptance criteria into a separate issue before starting to work on it, and make PRs for each part separately. Benefits to this staged approach:

The issues below are broken up into:

Issue B1: Backend, Add Entity / Repository for announcements

Developer Story:

Acceptance Criteria:

Fields:

Issue B2: Backend Controller for CRUD operations for announcements

Developer Story:

Acceptance Criteria:

Issue F1: fixtures/components for announcements

Developer Story:

Acceptance Criteria:

Issue F2: Frontend Create. Read operations for announcements (and optionally Edit, Delete)

User story:

Acceptance Criteria:

Note: Additional issues if not dones as part of Issue F2 (defining the user stories and acceptance criteria is left as an exercise to the student):

Issue F3: Frontend Make Announcements appear on Play Page

User stories:

Note that you may want to implement a different component for announcements for the play page, perhaps based on the <Card> react component. See the way the commons cards are implemented on the HomePage as an example.

It's important that the announcements are clear, but also don't clutter up the play page too much.

If needed, you could make a component that shows, by default, only the first line of the text, and then has a place to click to see the full announcement, and then click to restore the compacted view. React offers a variety of ways to accomplish this; you may use your creativity. Don't get too fancy though; remember that this is intended to be a "minimum viable product" for announcements. Future functionality might include keeping track, for each individual user, which announcements they have seen or not seen, and differentiating new announcements from ones that have already been seen, using modals to alert the user about new announcements, but that's all for the future. Keep it simple in your first implementation, and then if there's time, you can propose additional issues to get fancier.

Acceptance Criteria:

Acceptance Criteria

Implementation Todos

Frontend:

Backend:

Testing: