Skip to content

Latest commit

Β 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“‹ React ToDo List Application

A modern, intuitive task management application built with React. Stay organized and boost your productivity by managing your daily tasks with ease.

✨ Features

  • βœ… Add Tasks - Quickly add new tasks to your todo list
  • πŸ“ Edit Tasks - Update task descriptions anytime
  • βœ”οΈ Mark Complete - Click tasks to toggle completion status
  • πŸ—‘οΈ Delete Tasks - Remove tasks you no longer need
  • πŸ’Ύ Real-time Updates - See changes instantly with React state management
  • 🎨 Clean UI - Minimalist and responsive design with Font Awesome icons
  • πŸ“± Responsive Design - Works seamlessly on desktop and mobile devices

πŸ› οΈ Tech Stack

Component Technology Details
Frontend Framework React 18.2.0 Modern UI with hooks (useState)
Build Tool Create React App Zero-configuration setup
Icons Font Awesome 6.4.0 Beautiful SVG icons for UI elements
Styling CSS Custom CSS for layout and design
Language Composition JavaScript (55.6%), HTML (23.4%), CSS (21%) Well-balanced tech stack

πŸ“¦ Dependencies

{
  "react": "^18.2.0",
  "react-dom": "^18.2.0",
  "react-scripts": "5.0.1",
  "@fortawesome/react-fontawesome": "^0.2.0",
  "@fortawesome/free-solid-svg-icons": "^6.4.0"
}

πŸš€ Getting Started

Prerequisites

  • Node.js (v14 or higher)
  • npm (v6 or higher)

Installation

  1. Clone the repository

    git clone https://github.com/kjoann/ToDo.git
    cd ToDo
  2. Install dependencies

    npm install
  3. Start the development server

    npm start

    The app will open in your browser at http://localhost:3000

πŸ“– Available Scripts

npm start

Runs the application in development mode. The page will reload when you make changes. You can see build errors and lint warnings in the console.

npm test

Launches the test runner in interactive watch mode. See the Create React App documentation for more information.

npm run build

Builds the app for production in the build folder. React is bundled in production mode and the build is optimized for performance. The build is minified and filenames include hashes for caching.

npm run eject

Note: this is a one-way operation. Once you eject, you can't go back!

Exposes all configuration files and dependencies. Use this only if you need full control over webpack, Babel, ESLint, etc.

πŸ—οΈ Project Structure

ToDo/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ components/
β”‚   β”‚   β”œβ”€β”€ TodoWrapper.js       # Main wrapper component managing state
β”‚   β”‚   β”œβ”€β”€ ToDoForm.js          # Form for adding new tasks
β”‚   β”‚   β”œβ”€β”€ ToDo.js              # Individual task component
β”‚   β”‚   └── EditToDoForm.js      # Form for editing tasks
β”‚   β”œβ”€β”€ App.js                   # Main application component
β”‚   β”œβ”€β”€ App.css                  # Application styles
β”‚   β”œβ”€β”€ index.js                 # React root entry point
β”‚   └── index.css                # Global styles
β”œβ”€β”€ public/                      # Static files
β”œβ”€β”€ package.json                 # Project dependencies and scripts
└── README.md                    # This file

πŸ’‘ Component Overview

TodoWrapper (src/components/TodoWrapper.js)

The main component that manages all todo state and logic:

  • Maintains the list of todos
  • Handles adding, editing, deleting, and completing tasks
  • Manages task ID counter and editing state
  • Renders the todo form and individual todo items

ToDoForm (src/components/ToDoForm.js)

Handles user input for adding new tasks:

  • Provides input field with placeholder text
  • Submits new tasks on form submission
  • Clears input after adding a task

Todo (src/components/ToDo.js)

Displays individual task items:

  • Shows task text with completion status styling
  • Provides edit and delete action buttons using Font Awesome icons
  • Toggles completion state on task click

EditToDoForm (src/components/EditToDoForm.js)

Allows users to modify existing task descriptions:

  • Enables inline editing of task text
  • Saves changes back to the main list

🎯 How It Works

  1. Adding Tasks: Type a task in the input field and click "Add task" or press Enter
  2. Completing Tasks: Click on any task text to mark it as complete/incomplete
  3. Editing Tasks: Click the edit icon (pencil) to modify a task description
  4. Deleting Tasks: Click the delete icon (trash) to remove a task from your list

🎨 Styling

The application uses custom CSS with:

  • Clean, minimalist interface
  • Smooth transitions and hover effects
  • Icons from Font Awesome for intuitive actions
  • Responsive layout that adapts to different screen sizes
  • Visual feedback for completed tasks (strikethrough text)

🚒 Deployment

To deploy the application, build it first:

npm run build

The build folder can be deployed to any static hosting service like:

  • GitHub Pages
  • Netlify
  • Vercel
  • AWS S3
  • Firebase Hosting

See the Create React App deployment guide for more details.

πŸ“š Learn More

🀝 Contributing

Contributions are welcome! Feel free to:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

πŸ“„ License

This project is open source and available under the MIT License.

πŸ‘€ Author

kjoann - @kjoann

πŸ› Troubleshooting

Port 3000 is already in use

# On macOS/Linux
PORT=3001 npm start

# On Windows
set PORT=3001 && npm start

Dependencies not installing

rm -rf node_modules package-lock.json
npm install

Build fails

npm run build -- --verbose

Happy organizing! 🎯

About

A modern, interactive task management application built with React. Stay organized and boost your productivity by managing your daily tasks with ease.

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages