Team Members: Cheng Yue (username: CY343), Christopher Altamirano (username: caltam600), and Jason Huang (username: belovedEmperor)
- Grid Manipulation
- Add Rows: The user shall be able to add a new row to the grid. The new row should be appended to the end of the existing grid.
- Add Columns: The user shall be able to add a new column to the grid. The new column should be appended to the end of each existing row.
- Remove Rows: The user shall be able to remove the last row from the grid.
- Remove Columns: The user shall be able to remove the last column from each row in the grid.
- Color Selection
- Color Palette: The application shall provide a dropdown menu containing a selection of colors for the user to choose from.
- User Color Selection: The user shall be able to select a color from the dropdown menu. The application must store the user's selected color.
- Cell Coloring
- Individual Cell Coloring: The user shall be able to change the color of a single cell by clicking on it. The cell's color should change to the currently selected color.
- Fill All Uncolored Cells: The user shall be able to fill all cells that do not currently have a color with the currently selected color.
- Fill All Cells: The user shall be able to change the color of all cells in the grid to the currently selected color.
- Clear All Cells: The user shall be able to reset the color of all cells to their original, default color (e.g., white).
- User Interface
- Action Menu: The application shall provide a clear and accessible menu for the user to select actions such as adding/removing rows and columns, and applying colors.
- Grid Display: The application shall display a grid of cells that is visually clear and easy to interact with.
This application consits of a single web page with buttons and a grid.
The buttons trigger JavaScript functions on click.
The grid has a listener attached so that if a cell is clicked, a selected color will be displayed.
Epic 1: Grid Structure Management
- User Story 1: "As a user, I want to add rows to the grid so that I can make my canvas taller."
- Acceptance Criteria:
- When I click the "Add Row" button, a new row appears at the bottom of the grid.
- The new row has the same number of columns as the existing rows.
- Acceptance Criteria:
- User Story 2: "As a user, I want to add columns to the grid so that I can make my canvas wider."
- Acceptance Criteria:
- When I click the "Add Column" button, a new column is added to the right side of every row.
- Acceptance Criteria:
- User Story 3: "As a user, I want to remove rows from the grid so that I can make my canvas shorter."
- Acceptance Criteria:
- Given the grid has at least one row, when I click the "Remove Row" button, the last row is removed.
- Acceptance Criteria:
- User Story 4: "As a user, I want to remove columns from the grid so that I can make my canvas narrower."
- Acceptance Criteria:
- Given the grid has at least one column, when I click the "Remove Column" button, the last column of every row is removed.
- Acceptance Criteria:
Epic 2: Grid Coloring
- User Story 5: "As a user, I want to select a color so that I can apply it to the grid cells."
- Acceptance Criteria:
- I can see a dropdown menu of color choices.
- When I choose a color from the menu, the application saves it as the currently active color.
- Acceptance Criteria:
- User Story 6: "As a user, I want to color a single cell by clicking on it so that I can draw precisely."
- Acceptance Criteria:
- Given I have selected a color, when I click on any cell, its background changes to my selected color.
- Acceptance Criteria:
- User Story 7: "As a user, I want to fill all uncolored cells with my selected color so that I can quickly color the background."
- Acceptance Criteria:
- When I click the "Fill Uncolored" button, all cells with the default color change to my selected color.
- Previously colored cells are not affected.
- Acceptance Criteria:
- User Story 8: "As a user, I want to fill all cells with my selected color so that I can flood the entire canvas with a single color."
- Acceptance Criteria:
- When I click the "Fill All" button, every cell in the grid changes to my selected color.
- Acceptance Criteria:
- User Story 9: "As a user, I want to clear all colors from the grid so that I can start a new drawing."
- Acceptance Criteria:
- When I click the "Clear All" button, the background color of every cell resets to its default state.
- Acceptance Criteria:

