Skip to content

AliAsgerTalib-AI/DoNext

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

26 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿš€ DoNext

A powerful task management and productivity application with multi-view organization, intelligent filtering, mobile-first design, and AI-powered insights.

โœจ Features

  • Multi-View Interface โ€” Dashboard (focus view), Daily (timeline view), and Calendar (monthly overview)
  • Smart Task Organization โ€” Categories, priorities (low/medium/high), and due dates with time support
  • Recurring Tasks โ€” Daily, weekly, or monthly recurrence with customizable start/end dates
  • Dependencies & Blocking โ€” Track task dependencies and see what's blocking progress
  • Subtasks โ€” Break down complex tasks into manageable subtasks with individual completion tracking
  • Advanced Filtering โ€” Filter by status, priority, category, due dates, and custom search
  • Watched Tasks โ€” Pin important tasks for quick access
  • AI Assistant โ€” Integrate with Gemini AI for task suggestions and insights
  • Multi-Tab Sync โ€” Real-time synchronization across browser tabs via localStorage
  • Dark/Light Mode โ€” Built-in theme switching with next-themes

๐Ÿ“ฑ Mobile Experience

  • Responsive Design โ€” Fully responsive layout that adapts from 375px mobile to 1440px+ desktop
  • Off-Canvas Sidebar โ€” Hamburger menu drawer on mobile (fixed) / always-visible on desktop (static)
  • Swipe Gestures โ€” Swipe right to complete task (green โœ“) or left to delete (red ๐Ÿ—‘๏ธ) with visual feedback
  • Mobile-Optimized Header โ€” Compact hamburger navigation, hidden clock, responsive search
  • Bottom Sheet Quick-Add โ€” Floating action button (FAB) opens mobile-native slide-up sheet for fast task creation
  • Touch-Friendly Actions โ€” Tap menu (โ‹ฎ) reveals Complete / Edit / Delete buttons; Desktop uses hover-reveal

๐Ÿ›  Tech Stack

Category Technology
Frontend Framework React 19 + TypeScript
Build Tool Vite 6
Styling Tailwind CSS v4 + Animate
UI Components Base UI + shadcn-style custom components
State Management React hooks + localStorage
Forms React Hook Form
Animations Motion (Framer Motion) v12
Notifications Sonner
Icons Lucide React
Date Handling date-fns
Testing Vitest + React Testing Library
AI Integration Gemini AI API (@google/genai)

๐Ÿš€ Quick Start

Prerequisites

  • Node.js 18+

Installation & Development

# 1. Install dependencies
npm install

# 2. Set up environment variables
cp .env.example .env.local
# Edit .env.local and add your Gemini API key
GEMINI_API_KEY=your_api_key_here

# 3. Start development server (http://localhost:3000)
npm run dev

# 4. Test mobile features: Toggle device toolbar to 375px viewport

Available Commands

npm run dev       # Start dev server with HMR
npm run build     # Create production build
npm run preview   # Preview production build locally
npm run lint      # TypeScript type-checking
npm test          # Run test suite with Vitest
npm run clean     # Remove dist/ directory

๐Ÿ“ Project Structure

src/
โ”œโ”€โ”€ App.tsx                      # Main application component
โ”œโ”€โ”€ main.tsx                     # Entry point
โ”œโ”€โ”€ types.ts                     # TypeScript type definitions
โ”œโ”€โ”€ useTasks.ts                  # Core task management hook
โ”œโ”€โ”€ setupTests.ts                # Test configuration
โ”‚
โ”œโ”€โ”€ components/                  # Reusable UI components
โ”‚   โ”œโ”€โ”€ TaskForm.tsx            # Task editor with recurrence & dependencies
โ”‚   โ”œโ”€โ”€ CategoryForm.tsx         # Category creation/editing
โ”‚   โ”œโ”€โ”€ TaskRow.tsx             # Individual task display (with swipe gestures)
โ”‚   โ”œโ”€โ”€ BottomSheet.tsx         # Mobile slide-up sheet component
โ”‚   โ”œโ”€โ”€ QuickAddForm.tsx        # Mobile quick-add task form
โ”‚   โ”œโ”€โ”€ AdvancedFilterBar.tsx    # Smart filtering interface
โ”‚   โ”œโ”€โ”€ DependencyGraph.tsx      # Task dependency visualization
โ”‚   โ”œโ”€โ”€ SettingsModal.tsx        # User preferences & settings
โ”‚   โ”œโ”€โ”€ Header.tsx              # Responsive app header & search
โ”‚   โ”œโ”€โ”€ Sidebar.tsx             # Off-canvas drawer (mobile) / static nav (desktop)
โ”‚   โ”œโ”€โ”€ Footer.tsx              # Footer content
โ”‚   โ”œโ”€โ”€ DevTools.tsx            # Development utilities
โ”‚   โ””โ”€โ”€ ui/                     # Base UI shadcn components
โ”‚
โ”œโ”€โ”€ views/                       # Page-level views
โ”‚   โ”œโ”€โ”€ DashboardView.tsx        # Focus dashboard (today's tasks)
โ”‚   โ”œโ”€โ”€ DailyView.tsx            # Day-specific view with timeline
โ”‚   โ””โ”€โ”€ CalendarView.tsx         # Monthly calendar view
โ”‚
โ”œโ”€โ”€ hooks/                       # Custom React hooks
โ”‚   โ”œโ”€โ”€ useHistory.ts            # History/undo management
โ”‚   โ””โ”€โ”€ useSwipeGesture.ts       # Swipe gesture detection for mobile
โ”‚
โ””โ”€โ”€ lib/                         # Utilities & helpers
    โ””โ”€โ”€ recurringTasks.ts        # Recurrence calculation logic

๐Ÿ’พ Data Persistence

Tasks and categories are automatically saved to localStorage:

  • chronos-tasks โ€” Task data array
  • chronos-categories โ€” Category definitions

Changes sync across multiple browser tabs in real-time via storage events.

๐Ÿ”‘ Environment Variables

Create .env.local in the project root:

GEMINI_API_KEY=your_gemini_api_key
GEMINI_MODEL=gemini-2.0-flash
APP_URL=http://localhost:3000

๐Ÿ“š Key Concepts

Task Properties

  • Title & Description โ€” Task name and optional details
  • Priority โ€” low, medium, high (affects sorting and filtering)
  • Category โ€” Organize tasks by custom categories
  • Due Date & Time โ€” Schedule tasks with optional time
  • Recurrence โ€” Set as daily, weekly, monthly with start/end dates
  • Subtasks โ€” Nested tasks for complex workflows
  • Dependencies โ€” Mark tasks that block other tasks
  • Status โ€” Active, completed, or overdue
  • Watched โ€” Pin tasks for quick access

Views

View Purpose
Dashboard Focus on today's tasks with smart filtering and quick stats
Daily Deep dive into a specific day with timeline layout
Calendar Month-at-a-glance with task indicators

Smart Filters

  • All โ€” Show all tasks
  • Active โ€” Incomplete tasks
  • Completed โ€” Finished tasks
  • Urgent โ€” High priority due soon
  • Blocked โ€” Tasks waiting on dependencies
  • Overdue โ€” Tasks past due date
  • Unscheduled โ€” Tasks without due dates

Mobile Gestures & Interactions

Action Mobile Desktop
Open Sidebar Tap hamburger menu (๐Ÿ“ฑ appears in header) Always visible
Complete Task Swipe right on task row Click checkbox
Delete Task Swipe left on task row OR tap โ‹ฎ โ†’ Delete Hover-reveal delete button
Edit Task Tap โ‹ฎ โ†’ Edit Hover-reveal edit button
Quick Add Tap FAB (+) button โ†’ bottom sheet Use "Add Task" button in header

๐Ÿงช Testing

Tests are located alongside source files (*.test.ts and *.test.tsx):

npm test

Uses Vitest with React Testing Library (jsdom environment).

๐Ÿ”’ AI Studio Deployment

This app is deployed on Google Cloud AI Studio:

๐Ÿ—“๏ธ Roadmap

Completed โœ…

  • Mobile-responsive design (sidebar drawer, responsive header)
  • Swipe-to-complete / swipe-to-delete gestures
  • Bottom sheet quick-add for mobile
  • Mobile-optimized task actions (tap menu)

In Progress / Planned

  • Recurring task improvements (custom intervals, exceptions)
  • Subtask templates for common workflows
  • Team collaboration & shared tasks
  • Native mobile app (React Native) with offline sync
  • Integration with calendar services (Google Calendar, Outlook)
  • Advanced analytics & productivity insights
  • Custom themes & styling options
  • Keyboard shortcuts for power users
  • Voice-to-task creation (AI-powered)

๐Ÿค Contributing

Contributions welcome! To add features:

  1. New Task Properties โ€” Update Task type in src/types.ts, add form fields in TaskForm.tsx
  2. New Views โ€” Create src/views/NewView.tsx, add tab in App.tsx
  3. New Filters โ€” Update activeFilter state and filteredTasks logic in App.tsx
  4. Mobile Features โ€” Update useSwipeGesture.ts for new gestures, or add to QuickAddForm.tsx for quick-add enhancements
  5. New Components โ€” Add to src/components/ and import in relevant views

๐ŸŽจ Development Notes

Mobile-First Approach

  • Use Tailwind's max-md: (below 768px) and md: (768px+) breakpoints
  • Test with DevTools device toolbar at 375px (iPhone) and 1024px (tablet)
  • Sidebar is fixed on mobile, static on desktop
  • Header uses responsive classes for padding, icon visibility, and search width

Gesture Handling

  • useSwipeGesture.ts wraps Motion's drag API for 80px swipe threshold
  • Desktop hovers remain unchanged; mobile uses tap menus to preserve accessibility
  • All animations use motion/react (not framer-motion)

๐Ÿ“ License

MIT License โ€” See LICENSE file for details.


Made with โค๏ธ using React, TypeScript, Tailwind CSS, and Motion

About

Things to do

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors