Skip to content

A web application for writing and organizing your notes, developed using the React.js library.

Notifications You must be signed in to change notification settings

mahdi-q/Note-App-React-Project

Repository files navigation

Note App React Project

A web application for writing and organizing your notes, developed using the React.js library.

Table of Contents

Installation

Prerequisites

  • Node.js and npm should be installed on your machine.

Steps

  1. Clone the repository:
    git clone https://github.com/mahdi-q/Note-App-React-Project.git
  2. Navigate to the project directory:
    cd Note-App-React-Project
  3. Install the dependencies:
    npm install
  4. Run the app:
    npm run dev
  5. Click on the link provided in the terminal to open the app in your browser.

Usage

To start using the Note App, follow the steps below:

  1. Open the app in your browser.
  2. Add a new note by entering a title and a description.
  3. Manage your notes by marking them as completed or removing them.
  4. Use the sorting options to organize your notes based on different criteria.

Features

  • Add Notes: Add notes with a title and description.
  • Remove Notes: Delete notes from the list.
  • Mark as Completed: Mark notes as completed.
  • Status Display: View the number of notes in the following statuses:
    • All
    • Completed
    • Open
  • Sort Notes: Sort notes based on:
    • Latest
    • Earliest
    • Completed

Key Concepts

This project explores several important concepts from the React library:

  • Lifting State Up: Share state between components by lifting it up to the nearest common ancestor.
  • Derived States: Derive state values from props or other state variables.
  • useReducer Hook: Manages complex state logic with a reducer function.
  • Children Props: Pass components as props to other components.
  • useContext Hook: Access context values without prop drilling.
  • Custom Hook: Reusable function that encapsulates logic using hooks.
  • CSS Modules: Use CSS Module to have the modular styles.
  • Tests: Use Vitest and React-Testing-Library for developing project tests.

Contact Information

For any questions or feedback, please contact me at ghasemi84mahdi@gmail.com.


Thank you for using the Note App! Happy note-taking!