diff --git a/.DS_Store b/.DS_Store
index 2eec86e..4730ede 100644
Binary files a/.DS_Store and b/.DS_Store differ
diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 0000000..13566b8
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,8 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Editor-based HTTP Client requests
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
diff --git a/.idea/cats-vs-mice.iml b/.idea/cats-vs-mice.iml
new file mode 100644
index 0000000..d6ebd48
--- /dev/null
+++ b/.idea/cats-vs-mice.iml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000..31e1ebc
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 0000000..568bc14
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..35eb1dd
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/README.md b/README.md
index c991e3b..eeb1915 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,189 @@
-# Cats vs. Mice
+# ๐ฑ Cats vs. Mice ๐ญ
+
+## ๐ค Student Information
Name : Adelia Putri
Student ID : 20210782
-Email : adelia@kaist.ac.kr
\ No newline at end of file
+Email : adelia@kaist.ac.kr
+Git Repository: [Cats vs. Mice Repository](https://github.com/adeliptr/Cats-vs-Mice)
+Demo Video: [Cats vs. Mice Demo Video](https://youtu.be/wxM7zTX4wvc)
+
+## ๐ Table of Content
+- [๐ฑ Cats vs. Mice ๐ญ](#-cats-vs-mice-)
+ - [๐ค Student Information](#-student-information)
+ - [๐ Table of Content](#-table-of-content)
+ - [๐ฎ Game Description](#-game-description)
+ - [๐ผ๏ธ Game Interface](#๏ธ-game-interface)
+ - [๐น๏ธ Game Mechanics](#๏ธ-game-mechanics)
+ - [๐ธ Currency](#-currency)
+ - [๐พ Characters](#-characters)
+ - [1. Cats ๐](#1-cats-)
+ - [2. Mice ๐](#2-mice-)
+ - [๐ Interactions List](#-interactions-list)
+ - [๐๏ธ Code Organization](#๏ธ-code-organization)
+ - [๐ป Tech Stack](#-tech-stack)
+ - [๐งฉ How Components Interact](#-how-components-interact)
+ - [๐ก Design Patterns Used](#-design-patterns-used)
+ - [๐ญ Factory Method Pattern](#-factory-method-pattern)
+ - [โ๏ธ Strategy Pattern](#๏ธ-strategy-pattern)
+ - [โญ๏ธ Special Features](#๏ธ-special-features)
+ - [โ ๏ธ Limitation](#๏ธ-limitation)
+ - [๐ Acknowledgement](#-acknowledgement)
+
+
+## ๐ฎ Game Description
+**Cats vs. Mice** is a tower defense-style strategy game inspired by [*Plants vs. Zombies*](https://en.wikipedia.org/wiki/Plants_vs._Zombies), redesigned with a cute kitchen theme. Players place cats on a tiled kitchen floor to stop waves of invading mice who are after the **Cheese Feast**, a table full of cheesy dishes at the leftmost side of the screen.
+
+> ๐ฏ **Objective**:
+> The playerโs goal is to protect the **Cheese Feast** by defending against waves of incoming mice
+> To do this, the player can place different types of **[cats](#1-cats-)** with special abilities to attack the **[mice](#2-mice-)**
+
+> ๐ **Winning Condition**:
+> Successfully stops all the mice from reaching the **Cheese Feast**
+> The progress can be seen on the progress bar at the top right of the screen
+
+> โ **Losing Condition**:
+> A mouse reaches the **Cheese Feast**
+
+
+
+
+
+### ๐ผ๏ธ Game Interface
+- **Background**: A 5x9 tiled kitchen floor with a checkered pattern
+- **Cat Panel**: A row of clickable cat icons showing the price of each cat
+- **Cheese Feast**: A table full of cheese dishes on the left side of the screen
+- **Mice Entrance**: Mice appear from a hole on the floor on the right side of the screen
+- **Defense Line**: Each row has a *robot vacuum* at the far left that activates once a mouse approaches it, sweeping away all mice in that row
+- **Cheese** (currency): Drops from `๐งโ๐ณ Chef Cat` periodically
+- **Progress Bar**: Showing the progress of the game, if the progress bar is full, the player wins the game
+
+## ๐น๏ธ Game Mechanics
+### ๐ธ Currency
+ - The currency of the game is `๐ง Cheese` (replacing the sun in *Plants vs. Zombies*)
+ - Players can collect cheese produced by `๐งโ๐ณ Chef Cat`
+ - `๐ง Cheese` is used to buy different types of **[cats](#1-cats-)**, which can be placed on the 5x9 kitchen grid
+
+### ๐พ Characters
+#### 1. Cats ๐
+ - Objective: Protect the **Cheese Feast** by attacking the mice, slowing down the mice, or generating cheese. Each cat has a different ability and price
+ - Cats can only be placed in empty tiles
+ - Cats can be removed from the tiles by using the `Cage Button`
+ - Cats' HP is shown through its opacity, the lower the HP, the lower the opacity
+
+ **Cat Roles**
+ | Icon | Cat Type | Ability | Cheese Cost |
+ |------|----------|---------|-------------|
+ | | Single Yarn Cat | Shoots 1 yarn ball every 3 seconds | 100 |
+ | | Double Yarn Cat | Shoots 2 yarn balls every 3 seconds (double damage) | 200 |
+ | | Sleepy Cat | Sleeps until touched, then instantly attacks mouse that touched it | 150 |
+ | | Chef Cat | Produces 25 cheeses every 10 seconds | 50 |
+ | | Ice Cat | Slows down mice by throwing snowballs and attacks them | 150 |
+
+ Notes:
+ - `๐งถ Yarn` : reduces a mouse's HP by 20 points
+ - `โ๏ธ Snowball` : reduces a mouse's HP by 8 points + speed reduction (-0.02 units/frame)
+
+#### 2. Mice ๐
+ - Objective: Mice enter from the right side and move left toward the **Cheese Feast**
+ - Mice will move forward in a straight line unless blocked by a cat
+ - If a mouse reaches a cat, it will attack the cat, which is indicated by a smoke puff
+
+ **Mouse Roles**
+
+ | Visual | Mouse Type | Description | Appearance |
+ |------|--------------|-------------|------------|
+ | | Basic Mouse | Walks slowly (0.15), standard HP (100) | Early Game |
+ | | Helmet Mouse | Wears a helmet, high HP (150) | Mid Game |
+ | | Sporty Mouse | Moves quickly (2x Basic Mouse), low HP (80) | Mid Game |
+ | | Boss Mouse | Very slow (3x Basic Mouse), very high HP (1000) | Late Game |
+
+### ๐ Interactions List
+In the game, players can do the following actions:
+| **Action**| **Trigger** | **Result**|
+|----------------|-------------|-----------|
+| Cheese pick up | Mouse click on cheese icon | Increase cheese count |
+| Place cat | Mouse click on UI + tile | Deduct cheese, place cat |
+| Remove cat | Mouse click on UI + cat | Remove cat from the tile |
+
+In the game, these interactions between entities can happen:
+| **Interaction**| **Trigger** | **Result**|
+|----------------|-------------|-----------|
+| Yarn / Snowball hits mouse | Collision | Mouse takes damage |
+| Mouse reaches cat | Collision | Mouse attacks cat |
+| Mouse reaches robot vacuum | Collision | Robot vacuum move to the right and remove all mice in the rows |
+| Mouse reaches Cheese Feast | Collision | Trigger loss state |
+| All mice defeated | Mouse count check | Trigger win state |
+
+## ๐๏ธ Code Organization
+
+### ๐ป Tech Stack
+This project is developed using JavaScript, HTML, and CSS for structuring and styling the user interface
+
+Libraries used in the project:
+- `p5.js`: for drawing and managing canvas-based graphics
+- `p5.play`: for sprite and animation handling in the game environment
+- `p5.scenemanager`: for managing multiple game scenes (start page and actual game page)
+
+### ๐งฉ How Components Interact
+This game is built using `Object-Oriented Programming (OOP)` principles to create reusable code. The overall structure of the code is as follows:
+
+```
+โโโ README.md
+โโโ assets/ // all game assets
+โโโ css/ // game styling
+โโโ index.html // entry point of the game
+โโโ js/ // external libraries
+โโโ sketch.js // main game script
+โโโ src // core game source code
+ โโโ classes // class definitions for game entities
+ โ โโโ Cat.js
+ โ โโโ Mouse.js
+ โ โโโ RobotVacuum.js
+ โโโ constants
+ โ โโโ Colors.js // centralized color palette
+ โ โโโ Prototype.js // dimensions from Figma prototype
+ โโโ level
+ โ โโโ Level1.js // list of mice for level 1
+ โ โโโ WinLose.js // win/lose overlay
+ โโโ logic
+ โ โโโ Controller.js // UI update functions
+ โ โโโ Helper.js // general utility functions
+ โโโ scenes // game scenes for screen manager
+ โโโ GameScene.js
+ โโโ StartScene.js
+
+```
+
+In this project, `GameScene.js` acts as the central coordinator of the gameplay. Below is the significance of each components:
+- **Game Loop** (`GameScene.js`): checks for interactions between entities and calls the appropriate methods
+- **Entity Classes** (`src/classes/`): each entity manages its own state and behavior (action(), attack(), etc.), which will be called by `GameScene.js`
+- **UI Sync** (`Controller.js`): updates DOM (cheese count, progress bar, etc.) based on internal game state
+
+The UML for the classes is as follows:
+
+
+
+
+
+### ๐ก Design Patterns Used
+#### ๐ญ Factory Method Pattern
+- Implemented in the `createCat(type, x, y)` and `createMouse(type, row)` functions
+- These functions abstract away the creation logic and allows easy type extension
+
+#### โ๏ธ Strategy Pattern
+- Each `๐ฑ Cat` subclasses overrides the action() method to implement different attack behaviors (e.g., throwing yarn, exploding)
+
+## โญ๏ธ Special Features
+- **Opacity-based HP indicator**: the cats and mice's opacity lowers as their HP decreases
+- **Robot Vacuum**: Activated when a mouse touches it and will defeat all mice in its row upon activation
+
+## โ ๏ธ Limitation
+The current version still has these limitations:
+- When a `๐ค SleepyCat` overlaps with 2 mice, it only attacks the first mouse that touches it instead of both
+- When 2 mice perfectly overlap with each other, one of them won't be detected by other entities like `RobotVacuum`
+
+## ๐ Acknowledgement
+- I learned how to use p5.play from the tutorial at [Learn p5play](https://p5play.org/learn/index.html)
+- I found solutions to coding issues on [Stack Overflow](https://stackoverflow.com/questions)
+- I referred to [W3Schools CSS Reference](https://www.w3schools.com/cssref/index.php) for styling help
+- Some visual assets were sourced from [Flaticon](https://www.w3schools.com/cssref/index.php), [PNGTree](https://pngtree.com/), [LovePik](https://lovepik.com/), [PNGEgg](https://www.pngegg.com/)
\ No newline at end of file
diff --git a/assets/.DS_Store b/assets/.DS_Store
index 1012b83..54e268d 100644
Binary files a/assets/.DS_Store and b/assets/.DS_Store differ
diff --git a/assets/cats_vs_mice.png b/assets/README/cats_vs_mice.png
similarity index 100%
rename from assets/cats_vs_mice.png
rename to assets/README/cats_vs_mice.png
diff --git a/assets/README/classes_uml.png b/assets/README/classes_uml.png
new file mode 100644
index 0000000..7416a18
Binary files /dev/null and b/assets/README/classes_uml.png differ
diff --git a/assets/cat/ice_cat_ani.png b/assets/cat/ice_cat_ani.png
index a66bca5..384c1be 100644
Binary files a/assets/cat/ice_cat_ani.png and b/assets/cat/ice_cat_ani.png differ
diff --git a/assets/icon/.DS_Store b/assets/icon/.DS_Store
new file mode 100644
index 0000000..fd1ee62
Binary files /dev/null and b/assets/icon/.DS_Store differ
diff --git a/assets/chef_cat_icon.png b/assets/icon/chef_cat_icon.png
similarity index 100%
rename from assets/chef_cat_icon.png
rename to assets/icon/chef_cat_icon.png
diff --git a/assets/double_yarn_cat_icon.png b/assets/icon/double_yarn_cat_icon.png
similarity index 100%
rename from assets/double_yarn_cat_icon.png
rename to assets/icon/double_yarn_cat_icon.png
diff --git a/assets/ice_cat_icon.png b/assets/icon/ice_cat_icon.png
similarity index 100%
rename from assets/ice_cat_icon.png
rename to assets/icon/ice_cat_icon.png
diff --git a/assets/petCage.png b/assets/icon/petCage.png
similarity index 100%
rename from assets/petCage.png
rename to assets/icon/petCage.png
diff --git a/assets/single_yarn_cat_icon.png b/assets/icon/single_yarn_cat_icon.png
similarity index 100%
rename from assets/single_yarn_cat_icon.png
rename to assets/icon/single_yarn_cat_icon.png
diff --git a/assets/sleepy_cat_icon.png b/assets/icon/sleepy_cat_icon.png
similarity index 100%
rename from assets/sleepy_cat_icon.png
rename to assets/icon/sleepy_cat_icon.png
diff --git a/index.html b/index.html
index 44d38d8..a216335 100644
--- a/index.html
+++ b/index.html
@@ -39,23 +39,23 @@