Skip to content

Repository files navigation

Taskify - Advanced Todo List & Note Manager

A modern, full-featured task management and note-taking application built with Next.js 14+, Supabase, and TypeScript. Taskify combines powerful todo list functionality with rich note-taking capabilities in a beautiful, responsive interface.

🌟 Features

Task Management

  • βœ… Create, edit, delete, and organize tasks
  • πŸ“Š Task status tracking (Pending, In Progress, Completed)
  • 🎯 Priority levels (High, Medium, Low)
  • πŸ“ Category organization
  • πŸ“… Due date management
  • πŸ” Advanced search and filtering
  • πŸ“ˆ Real-time task statistics

Note Taking

  • πŸ“ Rich text note creation and editing
  • 🏷️ Tag-based organization system
  • πŸ“Œ Pin important notes
  • πŸ” Full-text search across all notes
  • πŸ“Š Note statistics and management
  • πŸ’Ύ Auto-save functionality

Unified Experience

  • πŸ” Global search across tasks and notes
  • 🎨 Beautiful, responsive design
  • πŸŒ™ Dark/Light theme support
  • πŸ‘€ Guest mode with localStorage
  • πŸ” Secure authentication with Supabase
  • πŸ“± Mobile-friendly interface
  • ⚑ Real-time updates

Authentication & Data

  • πŸ” Email/password authentication
  • 🌐 Google OAuth integration
  • πŸ‘€ Guest mode for quick access
  • ☁️ Cloud sync with Supabase
  • πŸ’Ύ Local storage fallback
  • πŸ”’ Row-level security

🎨 Design System

Colors

  • Primary: #fb5495 (Pink) - Used for buttons, accents, and highlights
  • Secondary: #5184ff (Blue) - Used for secondary elements and links
  • Theme: Supports both light and dark modes with automatic system detection

Typography

  • Clean, modern font stack with proper hierarchy
  • Automatic capitalization for titles and descriptions
  • Responsive text sizing across devices

πŸš€ Getting Started

Prerequisites

  • Node.js 18+
  • npm or yarn
  • Supabase account (for cloud features)

Installation

  1. Clone the repository

    git clone <repository-url>
    cd taskify
  2. Install dependencies

    npm install
  3. Environment Setup

    Create a .env.local file in the root directory:

    NEXT_PUBLIC_SUPABASE_URL=your_supabase_url
    NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key
  4. Database Setup

    Follow the instructions in database-setup.md to set up your Supabase database.

  5. Run the development server

    npm run dev
  6. Open your browser

    Navigate to http://localhost:3000

πŸ“ Project Structure

taskify/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ app/                    # Next.js 14 App Router
β”‚   β”‚   β”œβ”€β”€ api/               # API routes
β”‚   β”‚   β”œβ”€β”€ auth/              # Authentication pages
β”‚   β”‚   β”œβ”€β”€ dashboard/         # Task management
β”‚   β”‚   β”œβ”€β”€ notes/             # Note management
β”‚   β”‚   β”œβ”€β”€ search/            # Unified search
β”‚   β”‚   └── layout.tsx         # Root layout
β”‚   β”œβ”€β”€ components/            # React components
β”‚   β”‚   β”œβ”€β”€ auth/              # Authentication components
β”‚   β”‚   β”œβ”€β”€ layout/            # Layout components
β”‚   β”‚   β”œβ”€β”€ notes/             # Note components
β”‚   β”‚   β”œβ”€β”€ shared/            # Shared components
β”‚   β”‚   β”œβ”€β”€ tasks/             # Task components
β”‚   β”‚   └── ui/                # UI components
β”‚   └── lib/                   # Utilities and services
β”‚       β”œβ”€β”€ database.ts        # Database operations
β”‚       β”œβ”€β”€ supabase.ts        # Supabase configuration
β”‚       └── utils.ts           # Utility functions
β”œβ”€β”€ public/                    # Static assets
β”œβ”€β”€ database-setup.md          # Database setup instructions
└── README.md                  # This file

πŸ”§ Configuration

Supabase Setup

  1. Create a new Supabase project
  2. Run the SQL commands from database-setup.md
  3. Configure authentication providers (optional)
  4. Update environment variables

Guest Mode

The application supports guest mode for users who want to try the app without creating an account:

  • Data stored in localStorage
  • Full functionality available
  • Easy migration to cloud storage

🎯 Usage

Task Management

  1. Creating Tasks

    • Click "New Task" button
    • Fill in title, description, category, priority, and due date
    • Save to add to your task list
  2. Managing Tasks

    • Change status by clicking status buttons
    • Edit tasks by clicking the "Edit" button
    • Delete tasks with confirmation
    • Filter by status, category, or priority
  3. Search Tasks

    • Use the search bar to find tasks by title or description
    • Apply filters for refined results

Note Taking

  1. Creating Notes

    • Click "New Note" button
    • Add title, content, and tags
    • Pin important notes for easy access
  2. Organizing Notes

    • Use tags for categorization
    • Pin frequently accessed notes
    • Search by content or tags
  3. Managing Notes

    • Edit notes inline
    • Delete with confirmation
    • Filter by tags or search terms

Unified Search

  • Access global search from the navigation
  • Search across both tasks and notes
  • Results ranked by relevance
  • Click results to navigate directly

πŸ› οΈ Development

Available Scripts

  • npm run dev - Start development server
  • npm run build - Build for production
  • npm run start - Start production server
  • npm run lint - Run ESLint

Technology Stack

  • Frontend: Next.js 14, React 18, TypeScript
  • Styling: Tailwind CSS, shadcn/ui components
  • Backend: Supabase (PostgreSQL, Auth, Real-time)
  • State Management: React hooks and context
  • Authentication: Supabase Auth with Google OAuth
  • Deployment: Vercel-ready

πŸ” Security

  • Row-level security (RLS) enabled on all tables
  • User data isolation
  • Secure authentication flows
  • Environment variable protection
  • Input validation and sanitization

πŸ“± Mobile Support

  • Fully responsive design
  • Touch-friendly interface
  • Mobile-optimized navigation
  • Progressive Web App (PWA) ready

🎨 Customization

Themes

  • Built-in dark/light mode toggle
  • System preference detection
  • Persistent theme selection

Colors

  • Easily customizable color scheme
  • CSS custom properties
  • Consistent design tokens

πŸš€ Deployment

Vercel (Recommended)

  1. Connect your GitHub repository to Vercel
  2. Add environment variables in Vercel dashboard
  3. Deploy automatically on push

Other Platforms

The application can be deployed on any platform that supports Next.js:

  • Netlify
  • Railway
  • DigitalOcean App Platform
  • AWS Amplify

🀝 Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests if applicable
  5. Submit a pull request

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ™ Acknowledgments

  • Next.js team for the amazing framework
  • Supabase for the backend infrastructure
  • shadcn/ui for the beautiful components
  • Tailwind CSS for the styling system

πŸ“ž Support

For support, please open an issue on GitHub or contact the development team.


Built with ❀️ using Next.js and Supabase

About

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages