This project is an advanced To-Do application that incorporates modern features such as task prioritization, weather forecasting, and responsive design. Built with React and Redux Toolkit, it demonstrates state-of-the-art practices in frontend development.
-
Add Tasks
Users can add tasks through a simple input field and assign a priority (High, Medium, Low). -
Delete Tasks
Each task can be deleted individually, with immediate updates in the UI. -
View Tasks
Active and completed tasks are displayed separately, with persistent storage across sessions. -
Task Prioritization
Assign priorities to tasks and sort them from highest to lowest priority. -
Weather Widget
- Automatically detects the user's location (if permissions are granted) and displays a 3-day weather forecast.
- Includes a search bar for weather updates in other cities.
-
Responsive Design
Fully optimized for mobile, tablet, laptop, and desktop devices using a mobile-first design approach. -
State Management with Redux
Used Redux Toolkit for global state management and implemented Redux Thunk for handling asynchronous operations such as API calls. -
Persistent Storage
Tasks and authentication state are stored in localStorage for data retention across browser sessions. -
Mock Authentication System
A simple login/logout functionality to protect the To-Do list, ensuring tasks are visible only to authenticated users.
- Frontend: React, Redux Toolkit, Redux Thunk, Tailwind CSS
- API Integration: Weather API (weatherapi.com)
- Persistent Storage: LocalStorage
-
Prerequisites
- Node.js (v16 or later) and npm installed.
- A Weather API key from WeatherAPI.
-
Clone the Repository git clone
https://github.com/abhijit2607/Advanced-React-To-do-App
cd advanced-react-todo-app -
Create React App If the repository does not include pre-initialized React files, initialize a new React app:
npx create-react-app -
Install Dependencies
npm install -
Update API Key
Update the API key in the services/api.js file -
Start the Development Server
npm start
The application will run at http://localhost:3000.
To run tests (if applicable), use the following command:
npm test
- Add new tasks via an input field with priority selection.
- Delete tasks directly from the task list.
- View active and completed tasks in separate sections.
- Persistent storage ensures tasks remain saved across sessions.
- Automatically detects the user's location and fetches a 3-day weather forecast.
- Users can search for the weather in other cities.
- Displays temperature, weather conditions, and city details.
- Fully responsive layout using Tailwind CSS, with a mobile-first approach.
- Optimized for all device sizes (mobile, tablet, laptop, desktop).
- Redux Toolkit manages application state.
- Redux Thunk handles asynchronous actions like API calls for weather data.
- Mock login/logout system implemented using Redux.
- Protects the To-Do list, ensuring only authenticated users can access tasks.
- Add, delete, and prioritize tasks.
- Toggle between active and completed tasks.
- View the weather forecast for your location or any city.
- Login to access and manage tasks. Logout to secure your session.
Note: Credentials for mock authentication:
Email= user@example.com
password= password123



