Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/ib-inu/todo

To Do app with ReactJS, Redux , StyledComponent , and other React Tools
https://github.com/ib-inu/todo

authentication dark-theme react react-router reactjs redux styled-components

Last synced: 6 days ago
JSON representation

To Do app with ReactJS, Redux , StyledComponent , and other React Tools

Awesome Lists containing this project

README

        

login password must be "password" , and any username is valid

# To-Do List Application

## Overview
This is a **To-Do List application** built with **React**, **Redux**, and **styled-components**. It supports user authentication, dark mode, task filtering, and dynamic search functionality. It was created as part of an internship assignment project.

---

## Features
- **User Authentication**: Mock login and logout functionality.
- **Theme Toggle**: Light and dark theme toggle.
- **Task Management**: Add, edit, and delete tasks.
- **Task Filtering**: Filter tasks by categories such as:
- All Tasks
- Today
- Important
- **Search Functionality**: Search for tasks dynamically and navigate to specific task details.
- **Responsive Design**: Fully responsive design for various screen sizes.

---

## Tech Stack
- **React**: JavaScript library for building user interfaces.
- **Redux**: State management library.
- **React-Redux**: Official React bindings for Redux.
- **Redux-Persist**: Persist and rehydrate a Redux store.
- **Styled-Components**: CSS-in-JS library for styling React components.
- **React-Router-Dom**: Library for routing in React applications.

---

# Installation

# 1. Clone the repository:
git clone https://github.com/ib-inu/todo
cd todo

# 2. Install dependencies:
npm install

# 3. Run the application:
npm start

-----------------

# Key Components

### **Authentication.jsx**
Handles user login and logout using mock authentication logic. Renders the login form and handles user input.

---

### **Navbar.jsx**
Includes the theme toggle button and search functionality. Allows users to search for tasks dynamically and navigate to specific task details.

---

### **Sidebar.jsx**
Contains task categories and a toggle button for filtering tasks by categories.

---

### **ToDo.jsx**
Renders the list of tasks based on the selected filter and handles task completion.

---

### **Chart.jsx**
Displays a doughnut chart representing the task completion status.

---

### **ThemeApp.jsx**
Wraps the application with the `ThemeProvider` and applies the selected theme.

---

### **ProtectedRoute.jsx**
A higher-order component that checks if the user is authenticated before allowing access to the protected routes.

![Image](https://github.com/user-attachments/assets/360a7451-2961-42d8-9b75-8b55733d086a)
![Image](https://github.com/user-attachments/assets/bcfc170f-3edf-4bd3-8019-e01b6f3ea7cb)
![Image](https://github.com/user-attachments/assets/b7643830-14c2-4f3a-ae86-e674f86111a8)
![Image](https://github.com/user-attachments/assets/1e7da12a-169a-42e9-b557-6b70e2c9bfe5)
![Image](https://github.com/user-attachments/assets/b461d6e0-41dd-4757-9e2d-6f9a3c252040)
![Image](https://github.com/user-attachments/assets/bf5141d2-a6fe-4a43-85ea-fb8da5b72004)
![Image](https://github.com/user-attachments/assets/8328186b-7c8c-4774-9cc2-640783c0da5b)