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

https://github.com/pushpender015/task-nest


https://github.com/pushpender015/task-nest

context-api css customhooks html javascript localstorage reacthooks reactjs redux tailwindcss

Last synced: 2 days ago
JSON representation

Awesome Lists containing this project

README

        

# Task Nest

Task Nest is a modern, responsive Todo application built with React, Redux Toolkit, and Tailwind CSS. It offers a simple authentication mechanism, robust todo management with CRUD operations, an integrated weather widget, and a customizable dark/light theme.

## Features

- **User Authentication**
A simple login page that requires users to enter valid credentials to access the app.
**Login Credentials:**
- **Username:** `admin`
- **Password:** `password`

- **Todo Management**
- Add new todos, update existing ones, mark them as complete/incomplete, and delete them.
- Two display modes: List view and Block view.
- Todos are stored in Redux and persisted to localStorage.

- **Weather Widget**
Displays the current temperature fetched from the [Open Meteo API](https://open-meteo.com/).
- Automatically refreshes every 10 minutes with a manual refresh option.

- **Responsive Sidebar**
Features user profile information, navigation links, and a progress indicator (circular progress bar) based on the completion of todos.

- **Dark/Light Theme Toggle**
Easily switch between dark and light modes. The selected theme is stored in localStorage and applied globally.

- **Persistent State**
Redux state changes (authentication status and todos) are persisted in localStorage, so your session remains active even after a page refresh.

## Technologies

- **React:** For building the user interface with functional components and hooks.
- **Redux Toolkit & React Redux:** For state management and data persistence.
- **Tailwind CSS:** For a utility-first approach to styling.
- **Vite:** For a fast and modern development environment.
- **Heroicons:** For clean, modern icons.
- **LocalStorage:** For persisting user data and session state.

## Project Structure

```
Task Nest/
├── public/
│ └── index.html # HTML template
├── src/
│ ├── Components/
│ │ ├── Login.jsx # Login page component
│ │ ├── Sidebar.jsx # Sidebar with user profile and progress bar
│ │ ├── TodoForm.jsx # Form component for adding todos
│ │ ├── TodoItem.jsx # Todo item component for listing/updating/deleting todos
│ │ └── WeatherWidget.jsx # Weather widget component displaying temperature
│ ├── context/
│ │ ├── TodoContext.js # Todo context (example usage; Redux handles state)
│ │ └── ThemeContext.jsx # Theme context for dark/light mode toggle
│ ├── Features/
│ │ ├── auth/
│ │ │ └── authSlice.js # Redux slice for authentication
│ │ └── todos/
│ │ └── todosSlice.js # Redux slice for todo management
│ ├── hooks/
│ │ └── useFetch.js # Custom hook for fetching weather data
│ ├── App.jsx # Main application component
│ ├── index.css # Global styles with Tailwind CSS
│ ├── main.jsx # Entry point; renders App with Redux and Theme providers
│ └── store.js # Redux store configuration with localStorage persistence
├── package.json # Project dependencies and scripts
├── postcss.config.js # PostCSS configuration
├── tailwind.config.js # Tailwind CSS configuration
└── vite.config.js # Vite configuration file
```

## Getting Started

### Prerequisites

- [Node.js](https://nodejs.org/) (v14 or later)
- npm (v6 or later) or yarn

### Installation

1. **Clone the repository:**

```bash
git clone
```

2. **Navigate to the project directory:**

```bash
cd 10todocontextlocal
```

3. **Install dependencies:**

```bash
npm install
```

4. **Start the development server:**

```bash
npm run dev
```

The application will run at `http://localhost:3000` (or the port specified by Vite).

## Contributing

Contributions are welcome! Please open issues or submit pull requests for improvements, bug fixes, or new features.

## Acknowledgements

- **Open Meteo API:** For providing weather data.
- **Vite:** For a blazing fast development experience.
- **Tailwind CSS:** For efficient styling.
- **Redux Toolkit:** For simplifying state management.