TODO App React JS (Local Storage)
$15.00
21 sales
LIVE PREVIEWTODO App React JS (Local Storage) Review
Introduction
In today’s fast-paced world, staying organized and managing our daily tasks has become a crucial aspect of our lives. The TODO App React JS (Local Storage) is a simple yet effective task management app that allows users to create their own TODO lists without relying on any backend API or database. The app stores tasks in local storage, making it a great option for those who want to keep their tasks private and secure.
Features
The TODO App React JS (Local Storage) offers a range of features that make it an excellent task management tool. Some of the notable features include:
- Add to Wishlist: Users can add tasks to their wishlist, making it easy to prioritize and manage their tasks.
- Task Management: Users can create, edit, and delete tasks, making it easy to stay organized and focused.
- Task Filtering: The app allows users to filter tasks by date (Today, Tomorrow, Yesterday, Next 7 Days, Past 7 Days, and All tasks) and status (All, Completed, Uncompleted).
- Task Customization: Users can customize the color of their tasks, making it easy to categorize and prioritize tasks.
- Responsive Design: The app is mobile-friendly, making it easy to use on-the-go.
- Report Task Date Wise: Users can view their tasks by date, making it easy to track their progress and stay organized.
Future Development
The TODO App React JS (Local Storage) has a clear roadmap for future development, with several features planned to be added in the coming updates. Some of the planned features include:
- Filter with Today, Tomorrow, Yesterday, Next 7 Days, Past 7 Days and All task
- Filter with all, completed, Uncompleted task
- Task can delete and edit
- Task can mark as important
- Task base color customization
- Responsive mobile friendly
- Report task date wise
- PWA App
Built With
The TODO App React JS (Local Storage) is built using React JS and Bootstrap 5, making it a robust and scalable app.
Changelog
The app has a clear changelog, with updates listed for each version. The latest version (3.0.0) adds dark mode and updates the latest packages.
Score
I would give the TODO App React JS (Local Storage) a score of 8 out of 10. The app is well-designed, easy to use, and offers a range of features that make it an excellent task management tool. However, the app is still in its early stages, and some features are still in development. With further updates and additions, I expect the app to reach its full potential.
Conclusion
The TODO App React JS (Local Storage) is an excellent task management app that offers a range of features and is easy to use. With its local storage capabilities, users can keep their tasks private and secure. I would recommend this app to anyone looking for a simple yet effective task management solution.
User Reviews
Be the first to review “TODO App React JS (Local Storage)” Cancel reply
Introduction
Welcome to the TODO App React JS tutorial! In this tutorial, we will be creating a simple TODO app using React JS and Local Storage. This app will allow users to add, remove, and mark tasks as completed. We will cover the basics of React and Local Storage, and by the end of this tutorial, you will have a fully functional TODO app.
What is Local Storage?
Local Storage is a web storage API that allows us to store data locally on the client-side. It is a part of the Web Storage API, which provides a mechanism to store and retrieve data in the browser. Local Storage is ideal for storing small amounts of data that do not need to be sent over the network. It is also a good way to store data that needs to be persisted across page reloads.
What is React JS?
React JS is a JavaScript library for building user interfaces. It is used for building reusable UI components and managing the state of those components. React is a view library, which means it is used for rendering UI components, not for managing the state of the application. It is often used in conjunction with other libraries and frameworks to build complete applications.
Getting Started
To get started, you will need to install Node.js and a code editor or IDE. If you are new to React, I recommend starting with a code editor like Visual Studio Code or IntelliJ IDEA. You will also need to install the create-react-app
package, which is a tool for building React applications.
Step 1: Create a New React App
To create a new React app, open your terminal and run the following command:
npx create-react-app todo-app
This will create a new directory called todo-app
containing the basic files and structure for a React app.
Step 2: Set Up Local Storage
To use Local Storage in our TODO app, we need to add a few lines of code to our app. Open the index.js
file and add the following code:
import React, { useState, useEffect } from 'react';
import ReactDOM from 'react-dom';
const TodoApp = () => {
const [tasks, setTasks] = useState([]);
const [newTask, setNewTask] = useState('');
useEffect(() => {
const storedTasks = localStorage.getItem('tasks');
if (storedTasks) {
setTasks(JSON.parse(storedTasks));
}
}, []);
useEffect(() => {
localStorage.setItem('tasks', JSON.stringify(tasks));
}, [tasks]);
const handleSubmit = (event) => {
event.preventDefault();
setTasks([...tasks, { text: newTask, completed: false }]);
setNewTask('');
};
const handleToggle = (index) => {
const newTasks = [...tasks];
newTasks[index].completed =!newTasks[index].completed;
setTasks(newTasks);
};
const handleRemove = (index) => {
setTasks(tasks.filter((task, i) => i!== index));
};
return (
<div>
<form onSubmit={handleSubmit}>
<input
type="text"
value={newTask}
onChange={(event) => setNewTask(event.target.value)}
placeholder="Add new task"
/>
<button type="submit">Add</button>
</form>
<ul>
{tasks.map((task, index) => (
<li key={index}>
<input
type="checkbox"
checked={task.completed}
onChange={() => handleToggle(index)}
/>
<span
style={{
textDecoration: task.completed? 'line-through' : 'none',
}}
>
{task.text}
</span>
<button onClick={() => handleRemove(index)}>X</button>
</li>
))}
</ul>
</div>
);
};
ReactDOM.render(<TodoApp />, document.getElementById('root'));
This code sets up our TODO app with the basic functionality: adding new tasks, toggling task completion, and removing tasks. It also uses Local Storage to persist the tasks across page reloads.
Step 3: Run the App
To run the app, open your terminal and navigate to the todo-app
directory. Run the following command:
npm start
This will start the development server, and you can access the app by navigating to http://localhost:3000
in your web browser.
Conclusion
That's it! You now have a fully functional TODO app using React JS and Local Storage. You can add new tasks, toggle task completion, and remove tasks. The app will persist the tasks across page reloads using Local Storage.
Here is a complete settings example for the TODO App React JS (Local Storage):
localStorage Settings
In the index.js
file, you need to configure the local storage settings. You can do this by setting the localStorage
option to true
or false
.
import { createStore } from 'redux';
import rootReducer from './reducers';
const store = createStore(rootReducer, {}, localStorage? undefined : undefined);
export default store;
TodoItem Settings
In the TodoItem.js
file, you can configure the todo item settings by setting the id
and text
properties.
const TodoItem = ({ todo, handleDelete, handleEdit }) => {
return (
<div>
<span>{todo.text}</span>
<button onClick={() => handleDelete(todo.id)}>Delete</button>
<button onClick={() => handleEdit(todo.id)}>Edit</button>
</div>
);
};
export default TodoItem;
TodoList Settings
In the TodoList.js
file, you can configure the todo list settings by setting the todos
property and passing it to the map
method.
import React, { useState, useEffect } from 'react';
import { TodoItem } from './TodoItem';
const TodoList = () => {
const [todos, setTodos] = useState([]);
const [newTodo, setNewTodo] = useState('');
useEffect(() => {
const storedTodos = localStorage.getItem('todos');
if (storedTodos) {
setTodos(JSON.parse(storedTodos));
}
}, []);
const handleAdd = () => {
const newTodoObject = { text: newTodo, id: Math.random() };
setTodos([...todos, newTodoObject]);
setNewTodo('');
};
const handleDelete = (id) => {
setTodos(todos.filter((todo) => todo.id!== id));
};
const handleEdit = (id) => {
// TO DO: implement edit functionality
};
return (
<div>
<input
type="text"
value={newTodo}
onChange={(e) => setNewTodo(e.target.value)}
/>
<button onClick={handleAdd}>Add</button>
<ul>
{todos.map((todo) => (
<TodoItem
key={todo.id}
todo={todo}
handleDelete={() => handleDelete(todo.id)}
handleEdit={() => handleEdit(todo.id)}
/>
))}
</ul>
</div>
);
};
export default TodoList;
Store Settings
In the store.js
file, you can configure the store settings by setting the reducers
property and passing it to the createStore
method.
import { createStore } from 'redux';
import rootReducer from './reducers';
const store = createStore(rootReducer, {});
export default store;
Reducers Settings
In the reducers.js
file, you can configure the reducers settings by setting the defaultState
property and implementing the todos
reducer.
const defaultState = {
todos: [],
};
const rootReducer = (state = defaultState, action) => {
switch (action.type) {
case 'ADD_TODO':
return {...state, todos: [...state.todos, action.payload] };
case 'DELETE_TODO':
return {...state, todos: state.todos.filter((todo) => todo.id!== action.payload) };
default:
return state;
}
};
export default rootReducer;
Note that this is just an example and you may need to modify the settings based on your specific use case.
There are no reviews yet.