A modern, intuitive task management application built with React. Stay organized and boost your productivity by managing your daily tasks with ease.
- β 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
| 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 |
{
"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"
}- Node.js (v14 or higher)
- npm (v6 or higher)
-
Clone the repository
git clone https://github.com/kjoann/ToDo.git cd ToDo -
Install dependencies
npm install
-
Start the development server
npm start
The app will open in your browser at http://localhost:3000
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.
Launches the test runner in interactive watch mode. See the Create React App documentation for more information.
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.
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.
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
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
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
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
Allows users to modify existing task descriptions:
- Enables inline editing of task text
- Saves changes back to the main list
- Adding Tasks: Type a task in the input field and click "Add task" or press Enter
- Completing Tasks: Click on any task text to mark it as complete/incomplete
- Editing Tasks: Click the edit icon (pencil) to modify a task description
- Deleting Tasks: Click the delete icon (trash) to remove a task from your list
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)
To deploy the application, build it first:
npm run buildThe 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.
- React Documentation - Learn React concepts and best practices
- Create React App Documentation - Explore CRA features
- Font Awesome Icons - Browse available icons
- ES6 React Hooks - Understand useState and other hooks
Contributions are welcome! Feel free to:
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is open source and available under the MIT License.
kjoann - @kjoann
# On macOS/Linux
PORT=3001 npm start
# On Windows
set PORT=3001 && npm startrm -rf node_modules package-lock.json
npm installnpm run build -- --verboseHappy organizing! π―