Skip to content

halenurgurel/task-planner

Repository files navigation

📋 Task Planner - Redux & Persistent Task Management

A clean and intuitive task management application built with React and Redux Toolkit. Features full CRUD operations, category-based task organization, and persistent state management with Redux Persist.

🔗 Live Demo

https://hales-task-planner.vercel.app/

📸 Screenshots

Home Page Tasks Overview
Home Page Tasks
Tasks To-Do List Completed Tasks
Tasks To-Do Completed
Task Details Edit Task Add New Task
Task Details Edit Task Add Task

✨ Key Features

  • ✅ Full Task Management: Create, read, update, and delete tasks stored locally in your browser.

  • 🗂️ Category System: Organize tasks under three categories — Study, Meeting, and Activity — each with distinct color-coded icons.

  • 📅 Due Date & Time: Assign optional due dates and times to tasks using MUI Date/Time Pickers.

  • 💾 Persistent State: Task data is preserved across page refreshes using Redux Persist with localStorage — your tasks are private and stored only in your browser.

  • 📝 Form Validation: Task title is required, enforced via Formik and Yup schema validation.

  • 📭 Empty State Messages: Informative placeholders shown when the To-Do or Completed lists are empty.

🛠️ Technologies Used

  • React 19 + Vite: Modern frontend build setup with fast HMR ⚡

  • Redux Toolkit: (Slices, Store, Persist) 🧠

  • React Router DOM v7: Client-side routing across pages 🛣️

  • Tailwind CSS v4: Utility-first styling for a responsive layout 🎨

  • Material UI v7: Icon library and Date/Time Picker components 🗓️

  • Formik & Yup: Robust form management and schema-based validation 📋

  • Day.js: Lightweight date/time parsing and formatting 📆

🔍 Technical Highlights

🏗️ Redux Architecture

The application uses a dedicated tasks slice with synchronous reducers. IDs are generated client-side with nanoid from Redux Toolkit, and the items array is persisted to localStorage so tasks survive page refreshes.

⚡ Selector Layer

Reusable selectors (selectAllTasks) decouple the component layer from the store shape, keeping components clean and maintainable.

🎨 Category-Driven Design

Each task carries a category value (study / meeting / activity) that maps to a color-coded icon rendered consistently across the task list, task details, and edit views.

🔒 Production-Ready Forms

Forms are managed with Formik and validated with Yup. Required field enforcement prevents empty tasks from being submitted.

🚀 Getting Started

  1. Clone the repository:
git clone https://github.com/halenurgurel/task-planner.git
cd task-planner
  1. Install dependencies:
npm install
  1. Start the development server:
npm run dev

📁 Project Structure

src/
├── components/       # AddTask, EditTask, TaskDetails
├── pages/
│   ├── HomePage/     # Landing page
│   └── TasksPage/    # Main task list (To-Do + Completed)
├── redux/
│   ├── tasks/        # slice, selectors
│   └── store.js      # Redux store with persist config
└── constants/        # Category definitions (icons, colors)

Author

Halenur GurelReact & Redux Development Project 🚀

🎯 "Focused on building clean, maintainable React applications with persistent storage and intuitive UX."

About

A task management app with full CRUD, category system, due dates, and persistent state. Built with React, Redux Toolkit, and Tailwind CSS.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors