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

https://github.com/souravpl8092/task-manager-app

This is a Task Manager Application built using the MERN Stack with TypeScript. The app allows users to add, edit, delete, and filter tasks based on their status.
https://github.com/souravpl8092/task-manager-app

axios bycrypt cors css3 dotenv expressjs joi-validation jwt-authentication middleware mongodb moongose nodejs react react-redux react-router-dom react-toastify react-tooltip redux-thunk redux-toolkit typescript

Last synced: 3 months ago
JSON representation

This is a Task Manager Application built using the MERN Stack with TypeScript. The app allows users to add, edit, delete, and filter tasks based on their status.

Awesome Lists containing this project

README

          

# Task Manager App

## 📌 Overview
This is a **Task Manager Application** built using the **MERN Stack** with **TypeScript**. The app allows users to add, edit, delete, and filter tasks based on their status. The frontend is built with React, Redux, and Framer Motion for animations, while the backend handles authentication and CRUD operations.


Home Page






Home Page


Sign up Page






signup Page


Login Page






Login Page


Create new task Form






Create new task Form


Edit Form






Edit Form


TaskList Page large screen size view






>large screen size View


TaskList Page medium screen size view






>medium screen size View


TaskList Page small screen size view






>small screen size View


## 🚀 Features
- ✅ **Create, Read, Update, Delete (CRUD)** tasks
- 🔍 **Search and filter** tasks by name or status
- 🎨 **Smooth animations** using Framer Motion
- 🛡️ **Authentication & Authorization** (JWT-based)
- 📄 **Redux for state management**
- ⚡ **Optimized API calls** with loading indicators

## 📂 Folder Structure

```
TaskManagerApp/
│── server/ # Backend (Node.js + Express + MongoDB)
│ ├── controllers/ # Controller functions for handling requests
│ ├── models/ # Mongoose models
│ ├── routes/ # API routes
│ ├── middleware/ # Authentication & other middleware
│ ├── config/ # Database configuration
│ ├── server.ts # Main server file

│── client/ # Frontend (React + TypeScript)
│ ├── public/ # Public assets (HTML, images, etc.)
│ ├── src/
│ │ ├── api/ # API functions for communicating with backend
│ │ ├── components/ # Reusable React components
│ │ ├── pages/ # Page components (TaskList, Login, Dashboard)
│ │ ├── routes/ # Routing configurations
│ │ ├── store/ # Redux store & slices
│ │ ├── styles/ # CSS styles
│ │ ├── utils/ # Utility functions (axios config)
│ │ ├── App.tsx # Main application component
│ │ ├── index.tsx # Entry point of React app

│── .gitignore # Files to ignore in Git
│── package.json # Dependencies and scripts
│── README.md # Project documentation
│── tsconfig.json # TypeScript configuration
```

## 🛠️ Tech Stack
- **Frontend:** React, TypeScript, Redux, Framer Motion
- **Backend:** Node.js, Express.js, MongoDB
- **Authentication:** JWT (JSON Web Token)
- **State Management:** Redux Toolkit
- **Styling:** CSS, Framer Motion (for animations)

## 🚀 Installation & Setup

### 1️⃣ Clone the Repository
```sh
git clone https://github.com/souravpl8092/Task-Manager-App.git
cd task-manager-app
```

### 2️⃣ Install Dependencies
#### Backend:
```sh
cd backend
npm install
```

#### Frontend:
```sh
cd frontend
npm install
```

### 3️⃣ Setup Environment Variables
Create a `.env` file in the `backend` directory and add:
```sh
MONGO_URI=your_mongodb_connection_string
JWT_SECRET=your_secret_key
```

### 4️⃣ Run the Application
#### Start the Backend:
```sh
cd backend
npm run dev
```

#### Start the Frontend:
```sh
cd frontend
npm start
```

---

## API Endpoints
| Method | Endpoint | Description |
|--------|-----------------|--------------------------|
| POST | /api/auth/login | User login |
| POST | /api/auth/register | User registration |
| GET | /api/tasks | Fetch all tasks |
| POST | /api/tasks | Create a new task |
| PUT | /api/tasks/:id | Update a task |
| DELETE | /api/tasks/:id | Delete a task |

---

## 🔥 Usage
- Register/Login to access the dashboard.
- Add new tasks, edit them, delete them, or mark them as completed.
- Use the search bar to find specific tasks.
- Filter tasks by status (Pending/Completed).

## 📝 Contributing
If you want to contribute:
1. Fork the repository
2. Create a new branch (`feature-branch`)
3. Commit changes and push the branch
4. Open a pull request

## 📜 License
This project is licensed under the **MIT License**.

---

Made with ❤️ by **Sourav Paul**