Skip to content

Latest commit

 

History

9 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Task Manager

A full-stack Task Manager application with a React web client, Node.js/Express backend, MongoDB database, and a React Native Android mobile app.

The application allows users to create, view, edit, delete, search, filter, sort, and track the progress of their tasks. The web application and backend are deployed, while the Android application can be installed directly using the APK.


Live Demo

  • Web App: https://task-manager-web-app-roan.vercel.app/
  • Backend API: https://task-manager-web-app-nfi6.onrender.com

Android App

The project also includes a React Native Android application located inside the app/ directory.

The mobile application uses the same REST API and MongoDB backend as the web application.

Mobile Tech Stack

  • React Native
  • TypeScript
  • Axios
  • REST API
  • Android

Download Android APK

The Android APK is available from the project's GitHub Releases.

Download Android APK

After downloading the APK:

  1. Download the .apk file on your Android phone.
  2. Open the downloaded APK.
  3. If Android asks for permission to install apps from that source, allow it.
  4. Install the application.
  5. Open Task Manager and start managing your tasks.

The APK connects to the deployed backend API, so the application can communicate with the server even when your phone is not connected to your development computer.


Features

Web & Mobile

  • Create new tasks

  • View all tasks

  • Edit existing tasks

  • Delete tasks

  • Toggle task completion

  • Search tasks by title

  • Filter tasks by status

  • Filter tasks by priority

  • Filter tasks by due date

  • Sort tasks

  • Track task completion progress

  • Due date support

  • Priority levels:

    • High
    • Medium
    • Low
  • REST API integration

  • MongoDB database integration

Web App

  • Responsive UI
  • React + Vite
  • Tailwind CSS
  • Axios
  • React Hooks
  • Custom Hooks
  • Loading/skeleton state
  • Search and filtering
  • Sorting
  • Progress bar
  • Task creation/editing modal

Android App

  • React Native
  • TypeScript
  • Native Android application
  • API integration with the existing backend
  • Mobile-friendly UI
  • Task CRUD functionality
  • Search, filtering, and sorting
  • Task completion
  • Task creation/editing modal
  • Native date picker

Tech Stack

Frontend — Web

  • React
  • Vite
  • Tailwind CSS
  • Axios
  • React Hooks

Mobile

  • React Native
  • TypeScript
  • Axios
  • React Native StyleSheet

Backend

  • Node.js
  • Express.js
  • MongoDB
  • Mongoose
  • CORS
  • dotenv

Deployment

  • Vercel — Web frontend
  • Render — Backend API
  • MongoDB Atlas — Database
  • GitHub Releases — Android APK distribution

Project Structure

task-manager/
│
├── client/
│   ├── src/
│   │   ├── components/
│   │   │   ├── Navbar/
│   │   │   ├── Toolbar/
│   │   │   ├── Filters/
│   │   │   ├── Progress/
│   │   │   ├── TaskList/
│   │   │   ├── TaskCard/
│   │   │   ├── TaskModal/
│   │   │   └── TaskSkeleton/
│   │   │
│   │   ├── hooks/
│   │   │   ├── useTasks/
│   │   │   └── useFilteredTasks/
│   │   │
│   │   ├── pages/
│   │   │   └── Home.jsx
│   │   │
│   │   ├── services/
│   │   │   ├── api.js
│   │   │   └── taskService.js
│   │   │
│   │   ├── App.jsx
│   │   └── main.jsx
│   │
│   └── package.json
│
├── server/
│   ├── config/
│   ├── controllers/
│   ├── models/
│   ├── routes/
│   ├── app.js
│   ├── server.js
│   └── package.json
│
├── app/
│   ├── android/
│   ├── ios/
│   ├── src/
│   │   ├── components/
│   │   ├── screens/
│   │   ├── services/
│   │   └── types/
│   ├── App.tsx
│   ├── package.json
│   └── tsconfig.json
│
├── releases/
│   └── task-manager-v1.apk
│
└── README.md

Installation

Clone the Repository

git clone https://github.com/jdcodebase/task-manager.git

Move into the project directory:

cd task-manager

Backend Setup

Navigate to the server folder:

cd server

Install dependencies:

npm install

Create a .env file:

PORT=8000
MONGO_URI=your_mongodb_connection_string
CLIENT_URL=http://localhost:5173

Start the backend server:

npm run dev

The API will run locally on:

http://localhost:8000

Web Frontend Setup

Open a new terminal and navigate to the client folder:

cd client

Install dependencies:

npm install

Start the frontend:

npm run dev

The web application will normally be available at:

http://localhost:5173

React Native Android Setup

Navigate to the mobile application:

cd app

Install dependencies:

npm install

Start Metro:

npm start

Open another terminal and run:

npm run android

The React Native project is intentionally kept in TypeScript because the project was created with App.tsx and tsconfig.json.


Android APK

Build a Release APK

From the app directory, build the Android release APK using the React Native Android Gradle project.

The generated APK will be located under:

app/android/app/build/outputs/apk/release/

The final distributed APK is:

releases/task-manager-v1.apk

Important

Before creating an APK for other users, make sure the mobile application is configured to use the deployed backend API:

https://task-manager-web-app-nfi6.onrender.com

Do not use:

http://localhost:5000

for the distributed APK.

localhost on a user's phone refers to the phone itself, not your development computer.


GitHub APK Distribution

The release APK can be distributed through GitHub Releases.

Recommended workflow:

  1. Build the Android release APK.
  2. Create a new GitHub Release.
  3. Add a version such as v1.0.0.
  4. Upload task-manager-v1.apk as a release asset.
  5. Publish the release.
  6. Link the release/download page from the README.

This keeps the Android release separate from the normal source-code workflow while making the APK easy to access.


API Endpoints

Method Endpoint Description
GET /tasks Get all tasks
POST /tasks Create a task
PUT /tasks/:id Update a task
PATCH /tasks/:id/toggle Toggle task status
DELETE /tasks/:id Delete a task

The backend implements the complete task CRUD flow along with task completion toggling, validation, and error handling.


Application Architecture

                    ┌─────────────────────┐
                    │   React Web App     │
                    │      client/        │
                    └──────────┬──────────┘
                               │
                               │ REST API
                               ▼
                    ┌─────────────────────┐
                    │   Express Backend   │
                    │      server/        │
                    └──────────┬──────────┘
                               │
                               │ Mongoose
                               ▼
                    ┌─────────────────────┐
                    │    MongoDB Atlas    │
                    └─────────────────────┘
                               ▲
                               │
                               │ REST API
                    ┌──────────┴──────────┐
                    │  React Native App   │
                    │       app/          │
                    └─────────────────────┘

Both the web application and Android application communicate with the same backend API and database.


Release

v1.0.0

The Android release contains the React Native version of the Task Manager application.

Release: task-manager-v1.0.0
APK: releases/task-manager-v1.apk

Author

Jatin Dhamija

GitHub: https://github.com/jdcodebase

LinkedIn: https://www.linkedin.com/in/jatindhamija/


Support

If you found this project helpful, consider giving it a ⭐ Star on GitHub.

About

A full-stack MERN Task Manager application with CRUD functionality, task filtering, search, sorting, priority levels, due dates, progress tracking, and a responsive modern UI. Built with React, Express, MongoDB, Node.js, and Tailwind CSS.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages