Skip to content

Commit 0d63219

Browse files
authored
Merge pull request #1 from Miro-wq/Miro-wq-patch-1
Update README.md
2 parents 7122233 + 44a7e80 commit 0d63219

File tree

1 file changed

+12
-13
lines changed

1 file changed

+12
-13
lines changed

README.md

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,19 @@
1-
# Contact book, code refactoring using react hooks
1+
# Contact book, code refactoring using react hooks
22

33
Added storing phonebook contacts in localStorage. Component life cycle methods used.
44

5-
## 🛠 Tools used
5+
## Description
66

7-
[![My Skills](https://skillicons.dev/icons?i=html,css,js,react,npm,webpack,vscode)](https://skillicons.dev)
8-
9-
![Description](https://img.shields.io/badge/Description-purple?style=for-the-badge)
107
> This homework task is a simple contact management application for a phonebook, designed to practice fundamental React concepts and state management. The application allows users to add, display, search, and delete contacts, with each contact consisting of a name and a phone number. The project is structured to progressively introduce new features, demonstrating the importance of component-based architecture, controlled components, and state handling in React.
118
12-
![Features](https://img.shields.io/badge/Features-purple?style=for-the-badge)
9+
## Features
1310

1411
- **Add Contacts**: Users can add contacts with a name and phone number. The application ensures that contact names adhere to a specific pattern and prevents the addition of duplicate names.
1512
- **Search and Filter**: A search field is provided to filter contacts by name, with case-insensitive matching.
1613
- **Contact List Management**: Users can view a list of all contacts and remove any contact they no longer need.
1714
- **Component Refactoring**: The application is refactored from a single component into multiple independent components, enhancing modularity and readability.
1815

19-
![Key Learning Objectives:](https://img.shields.io/badge/Key%20Learning%20Objectives-purple?style=for-the-badge)
16+
## Key Objectives:
2017

2118
- **State Management**: Manage and update state in React, particularly how to structure state to store multiple properties and handle user inputs in a controlled manner.
2219
- **Componentization**: The importance of breaking down an application into smaller, reusable components became evident. This approach not only simplifies development but also makes the codebase easier to maintain and scale.
@@ -26,7 +23,7 @@ Added storing phonebook contacts in localStorage. Component life cycle methods u
2623
- **User Experience Considerations**: Enhancing the user experience by providing feedback (such as alerts) and ensuring the interface remains responsive and intuitive.
2724
This project served as a solid foundation for building more complex React applications, emphasizing the core principles of React and good development practices.
2825

29-
![Step 1](https://img.shields.io/badge/Step%201-purple?style=for-the-badge)
26+
## Step 1
3027

3128
The application should include a form and a contact list. In the current step, implement the ability to add a contact name and display it in the contact list. The application does not need to save contacts between different sessions (page refreshes).
3229

@@ -53,7 +50,7 @@ state = {
5350

5451
Each contact should be an object with the properties `name` and `id`. To generate IDs, use any package intended for this task, such as nanoid.
5552

56-
![Step 2](https://img.shields.io/badge/Step%202-purple?style=for-the-badge)
53+
## Step 2
5754

5855
Extend the application's functionality by allowing users to add phone numbers. To do this, add `<input type="tel">` to the form and a property to store the value in the state.
5956

@@ -77,7 +74,7 @@ Use the markup below (input) for the contact number.
7774
/>
7875
```
7976

80-
![Step 3](https://img.shields.io/badge/Step%203-purple?style=for-the-badge)
77+
## Step 3
8178

8279
Add a search field that can be used to filter the contact list by name.
8380

@@ -111,7 +108,7 @@ state = {
111108
}
112109
```
113110

114-
![Step 4](https://img.shields.io/badge/Step%204-purple?style=for-the-badge)
111+
## Step 4
115112

116113
If your application is implemented in a single `<App>` component, refactor the code to separate the parts of the application into different independent components.
117114

@@ -139,8 +136,10 @@ After refactoring, the root component of the application will look like this:
139136
</div>
140137
```
141138

142-
![Step 5](https://img.shields.io/badge/Step%205-purple?style=for-the-badge)
139+
## Step 5
140+
143141
Prevent the user from adding contacts whose names are already present in the phonebook. In case of an attempt to do so, display an alert with a warning.
144142

145-
![Step 6](https://img.shields.io/badge/Step%206-purple?style=for-the-badge)
143+
## Step 6
144+
146145
Extend the application's functionality by allowing the user to delete previously saved contacts.

0 commit comments

Comments
 (0)