Skip to content
Krish6115Public

About

React Native BOOMMM

Resources

Stars

3 stars

Watchers

0 watching

Forks

Latest commit

Β 

History

7 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

React Native TypeScript Node.js MongoDB License

πŸ“‹ TaskFlow

A cross-platform task management app built with React Native & Express.js

Stay productive with smart sorting, priority-based reminders, and a stunning dark UI.

Features β€’ Tech Stack β€’ Architecture β€’ Getting Started β€’ API Reference β€’ Screenshots β€’ Contributing


✨ Features

πŸ“± Mobile App

  • User Authentication β€” Secure registration & login with JWT-based sessions
  • Full Task Management β€” Create, read, update, and delete tasks with real-time cloud sync
  • Smart Sort Algorithm β€” Weighted composite scoring using priority, deadline urgency, and recency
  • Advanced Filtering β€” Filter by priority (πŸ”΄ Urgent / 🟠 High / 🟑 Medium / 🟒 Low), category, and completion status
  • Task Categories β€” Organize tasks into General, Work, Personal, Health, Shopping, and Study
  • Priority-Based Recurring Reminders β€” Automatic notifications that repeat based on task priority:
    Priority Reminder Interval
    🚨 Urgent Every 60 min
    πŸ”΄ High Every 90 min
    🟑 Medium Every 120 min
    🟒 Low Every 180 min
  • Pull-to-Refresh β€” Swipe down to sync latest data from the cloud
  • Swipe-to-Delete β€” Intuitive gesture-based task deletion
  • Progress Tracking β€” Visual progress bar showing completed vs total tasks
  • Optimistic UI Updates β€” Instant feedback with background sync & automatic rollback on error
  • Motivational Quotes β€” Context-aware quotes delivered with reminders based on task category

🎨 Design

  • Dark Gradient Theme β€” Premium deep-space aesthetic with #0A0E21 β†’ #1A1F3D gradients
  • Glassmorphism Cards β€” Frosted glass-style task cards with subtle borders
  • Animated FAB β€” Spring-animated floating action button with gradient fill
  • Color-Coded Priorities β€” Instant visual cues with priority-specific colors
  • Smooth Transitions β€” Polished modal animations and screen transitions

πŸ”§ Backend

  • RESTful API β€” Clean, documented Express.js endpoints
  • JWT Authentication β€” Secure token-based auth with bcrypt password hashing (12 salt rounds)
  • MongoDB Atlas β€” Cloud-hosted NoSQL database with Mongoose ODM
  • Smart Sort (Server-side) β€” Weighted scoring algorithm: score = priorityΓ—3 + urgencyΓ—2 + recencyΓ—1
  • Input Validation β€” Comprehensive field validation with descriptive error messages
  • Health Check Endpoint β€” /api/health for uptime monitoring

πŸ›  Tech Stack

Frontend (Mobile)

Technology Purpose
React Native 0.84 Cross-platform mobile framework
TypeScript Type safety and developer experience
React Navigation Stack-based navigation
Axios HTTP client for API communication
Notifee Local push notifications & scheduling
AsyncStorage Persistent local storage for auth tokens
Linear Gradient Beautiful gradient backgrounds
Vector Icons Material Community Icons
Gesture Handler Swipe gestures for task actions
DateTimePicker Native date & time selectors

Backend

Technology Purpose
Node.js + Express REST API server
TypeScript Type-safe backend development
MongoDB + Mongoose Database & ODM
JWT (jsonwebtoken) Authentication tokens
bcryptjs Password hashing
CORS Cross-origin resource sharing
dotenv Environment variable management

πŸ— Architecture

TaskFlow/
β”œβ”€β”€ backend/                    # Express.js REST API
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ middleware/
β”‚   β”‚   β”‚   └── auth.ts         # JWT authentication middleware
β”‚   β”‚   β”œβ”€β”€ models/
β”‚   β”‚   β”‚   β”œβ”€β”€ Task.ts         # Task schema (title, deadline, priority, category)
β”‚   β”‚   β”‚   └── User.ts         # User schema with password hashing
β”‚   β”‚   β”œβ”€β”€ routes/
β”‚   β”‚   β”‚   β”œβ”€β”€ auth.ts         # Register & Login endpoints
β”‚   β”‚   β”‚   └── tasks.ts        # Task CRUD with smart sort algorithm
β”‚   β”‚   └── server.ts           # Express app entry point
β”‚   β”œβ”€β”€ package.json
β”‚   └── tsconfig.json
β”‚
β”œβ”€β”€ mobile/                     # React Native App
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ api/                # Axios API client modules
β”‚   β”‚   β”œβ”€β”€ components/         # Reusable UI components
β”‚   β”‚   β”‚   β”œβ”€β”€ Button.tsx      # Gradient action button
β”‚   β”‚   β”‚   β”œβ”€β”€ CategoryTag.tsx # Category label badge
β”‚   β”‚   β”‚   β”œβ”€β”€ InputField.tsx  # Styled text input with icons
β”‚   β”‚   β”‚   β”œβ”€β”€ PriorityBadge.tsx # Color-coded priority indicator
β”‚   β”‚   β”‚   └── TaskCard.tsx    # Glass-style task card with gestures
β”‚   β”‚   β”œβ”€β”€ context/
β”‚   β”‚   β”‚   └── AuthContext.tsx  # Global auth state management
β”‚   β”‚   β”œβ”€β”€ navigation/
β”‚   β”‚   β”‚   └── AppNavigator.tsx # Stack navigator (Auth ↔ App)
β”‚   β”‚   β”œβ”€β”€ screens/
β”‚   β”‚   β”‚   β”œβ”€β”€ LoginScreen.tsx
β”‚   β”‚   β”‚   β”œβ”€β”€ RegisterScreen.tsx
β”‚   β”‚   β”‚   β”œβ”€β”€ TaskListScreen.tsx  # Main dashboard
β”‚   β”‚   β”‚   └── AddTaskScreen.tsx   # Task creation form
β”‚   β”‚   β”œβ”€β”€ services/
β”‚   β”‚   β”‚   └── notificationService.ts # Recurring reminder engine
β”‚   β”‚   β”œβ”€β”€ theme/
β”‚   β”‚   β”‚   └── index.ts        # Design tokens & color system
β”‚   β”‚   └── types/              # TypeScript type definitions
β”‚   β”œβ”€β”€ App.tsx                 # App entry point
β”‚   └── package.json
β”‚
β”œβ”€β”€ .gitignore
└── README.md

πŸš€ Getting Started

Prerequisites

  • Node.js β‰₯ 22.11.0
  • npm or yarn
  • Android Studio (for Android emulator/build)
  • MongoDB Atlas account (or local MongoDB instance)
  • JDK 17+ (for React Native Android builds)

1️⃣ Clone the Repository

git clone https://github.com/Krish6115/TaskFlow.git
cd TaskFlow

2️⃣ Backend Setup

cd backend
npm install

Create a .env file in the backend/ directory:

PORT=5000
MONGO_URI=mongodb+srv://<username>:<password>@<cluster>.mongodb.net/taskflow
JWT_SECRET=your_super_secret_jwt_key

Start the development server:

npm run dev

The API will be running at http://localhost:5000.

3️⃣ Mobile App Setup

cd mobile
npm install

Configure the API base URL in src/api/ to point to your backend:

  • Emulator: http://10.0.2.2:5000/api (Android emulator)
  • Physical device: http://<your-local-ip>:5000/api
  • Production: Your deployed API URL (e.g., Render.com)

Start Metro bundler and run on Android:

npm start
# In a new terminal:
npm run android

4️⃣ Build Release APK

cd mobile/android
./gradlew assembleRelease

The APK will be generated at mobile/android/app/build/outputs/apk/release/.


πŸ“‘ API Reference

All task endpoints require a valid JWT token in the Authorization header:

Authorization: Bearer <token>

Authentication

Method Endpoint Description Body
POST /api/auth/register Create a new account { name, email, password }
POST /api/auth/login Login & receive JWT token { email, password }

Tasks (Protected)

Method Endpoint Description
GET /api/tasks List all tasks (with sort & filter)
POST /api/tasks Create a new task
PUT /api/tasks/:id Update a task
DELETE /api/tasks/:id Delete a task

Query Parameters (GET /api/tasks)

Parameter Values Description
sortBy mixed Β· priority Β· deadline Β· dateTime Sort algorithm (default: mixed)
filterPriority urgent Β· high Β· medium Β· low Filter by priority level
filterCategory General Β· Work Β· Personal Β· Health Β· Shopping Β· Study Filter by category
filterCompleted true Β· false Filter by completion status

Health Check

Method Endpoint Description
GET /api/health Returns { status: "OK", timestamp }

🎯 Smart Sort Algorithm

The Mixed Sort mode uses a weighted scoring system to intelligently rank tasks:

score = (priorityWeight Γ— 3) + (deadlineUrgency Γ— 2) + (recency Γ— 1)
Factor Weight Score Range Logic
Priority Γ—3 1–4 urgent=4, high=3, medium=2, low=1
Deadline Urgency Γ—2 0–4 Higher for tasks due sooner (normalized to 42h window)
Recency Γ—1 0–1 Newer tasks score slightly higher

Completed tasks are always pushed to the bottom, regardless of score.


🀝 Contributing

Contributions are welcome! Here's how to get started:

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/amazing-feature
  3. Commit your changes: git commit -m 'feat: add amazing feature'
  4. Push to the branch: git push origin feature/amazing-feature
  5. Open a Pull Request

Commit Convention

This project follows Conventional Commits:

  • feat: β€” New features
  • fix: β€” Bug fixes
  • docs: β€” Documentation changes
  • style: β€” Code style / formatting
  • refactor: β€” Code refactoring
  • test: β€” Adding tests
  • chore: β€” Maintenance tasks

πŸ“„ License

This project is licensed under the MIT License β€” see the LICENSE file for details.


πŸ‘¨β€πŸ’» Author

Siva Rama Krishna Reddy Padala (SRKREDDY)

LinkedIn GitHub


Built with ❀️ using React Native & Express.js

About

React Native BOOMMM

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages