A modern, AI-enhanced task management application that helps you organize, prioritize, and complete your tasks more efficiently with the power of Google's Gemini AI.
- Create, Edit & Delete Tasks - Full CRUD operations with real-time updates
- Status Management - Track tasks through Todo, In Progress, and Completed states
- Rich Task Details - Title, description, category, and duration estimation
- Advanced Filtering - Search, filter by status, and sort tasks multiple ways
- Dual View Modes - Switch between List view and Kanban Board view
- Smart Task Suggestions - Get contextual task recommendations based on your existing tasks
- Auto-Enhanced Descriptions - AI improves your task descriptions for clarity and actionability
- Intelligent Categorization - Automatic task categorization (Work, Personal, Health, etc.)
- Duration Estimation - AI predicts how long tasks will take to complete
- Subtask Generation - Break complex tasks into manageable sub-steps
- One-Click Enhancement - Enhance all task fields with a single AI-powered action
- Modern Auth System - Powered by Better Auth with email/password and OAuth
- Google OAuth Integration - Sign in with your Google account
- Secure Sessions - JWT-based authentication with proper session management
- Protected Routes - Automatic redirection for authenticated/unauthenticated users
- Beautiful Interface - Built with Shadcn/ui components and Tailwind CSS
- Responsive Design - Works seamlessly on desktop, tablet, and mobile devices
- Dark/Light Mode Support - (Ready for implementation)
- Smooth Animations - Delightful micro-interactions and transitions
- Accessibility First - Proper ARIA labels, keyboard navigation, and screen reader support
| Category | Technology | Purpose |
|---|---|---|
| Framework | Next.js 15 | App Router, Server Components, API Routes |
| Language | TypeScript | Type safety and better developer experience |
| Database | PostgreSQL (Neon) | Serverless PostgreSQL database |
| ORM | Drizzle ORM | Type-safe database queries and migrations |
| Authentication | Better Auth | Modern auth with social providers |
| AI Integration | Google Gemini | Task enhancement and smart suggestions |
| UI Components | Shadcn/ui | Beautiful, accessible React components |
| Styling | Tailwind CSS | Utility-first CSS framework |
| Package Manager | pnpm | Fast, efficient package management |
- Node.js 18+ installed
- pnpm package manager
- PostgreSQL database (we recommend Neon)
- Google AI API key (from Google AI Studio)
-
Clone the repository
git clone https://github.com/yourusername/taskflow.git cd taskflow -
Install dependencies
pnpm install
-
Set up environment variables
cp .env.example .env.local
Fill in your
.env.local:# Database DATABASE_URL="postgresql://username:password@host/database?sslmode=require" # Better Auth BETTER_AUTH_SECRET="your-32-character-secret-key" BETTER_AUTH_URL="http://localhost:3000" # Google OAuth (Optional) GOOGLE_CLIENT_ID="your-google-client-id" GOOGLE_CLIENT_SECRET="your-google-client-secret" # Google AI GEMINI_API_KEY="your-gemini-api-key"
-
Initialize Shadcn/ui
npx shadcn@latest init
-
Run database migrations
pnpm db:generate pnpm db:migrate
-
Start the development server
pnpm dev
-
Open your browser Navigate to http://localhost:3000
taskflow/
βββ src/
β βββ app/ # Next.js App Router
β β βββ api/ # API Routes
β β β βββ auth/ # Authentication endpoints
β β β βββ tasks/ # Task CRUD operations
β β β βββ ai/ # AI enhancement endpoints
β β βββ dashboard/ # Protected dashboard page
β β βββ login/ # Authentication pages
β β βββ register/
β βββ components/ # React Components
β β βββ ai/ # AI-powered components
β β βββ auth/ # Authentication forms
β β βββ layout/ # Layout components
β β βββ providers/ # Context providers
β β βββ tasks/ # Task management components
β β βββ ui/ # Shadcn/ui components
β βββ lib/ # Utilities and configurations
β βββ db/ # Database schema and connection
β βββ auth.ts # Better Auth configuration
β βββ auth-client.ts # Client-side auth utilities
β βββ gemini.ts # Google AI integration
βββ drizzle/ # Database migrations
βββ public/ # Static assets
- Click "Get Suggestions" in the task form
- AI analyzes your existing tasks and provides relevant recommendations
- Click on any suggestion to auto-fill the task title
- Enter a task title
- Click "AI Enhance" next to the description field
- AI will generate a clear, actionable description
- Enter a task title
- Click "Auto-enhance All"
- AI will automatically:
- Categorize the task
- Estimate completion time
- Generate subtasks
- Improve the description
- Authentication data (Better Auth managed)
- Profile information
- Session management
- Task details (title, description, status)
- AI enhancements (category, duration, AI flag)
- User relationships and timestamps
- Generated subtasks for complex tasks
- Completion tracking
- Parent task relationships
| Script | Description |
|---|---|
pnpm dev |
Start development server |
pnpm build |
Build for production |
pnpm start |
Start production server |
pnpm db:generate |
Generate database migrations |
pnpm db:migrate |
Apply database migrations |
pnpm db:studio |
Open Drizzle Studio |
pnpm lint |
Run ESLint |
pnpm type-check |
Run TypeScript checks |
- Connect your repository to Vercel
- Set environment variables in Vercel dashboard
- Deploy automatically - Vercel handles the build process
DATABASE_URL="your-production-database-url"
BETTER_AUTH_SECRET="your-production-secret"
BETTER_AUTH_URL="https://your-domain.com"
GEMINI_API_KEY="your-gemini-api-key"
GOOGLE_CLIENT_ID="your-google-client-id"
GOOGLE_CLIENT_SECRET="your-google-client-secret"- Uses Drizzle ORM with PostgreSQL
- Automatic migrations with
drizzle-kit - Type-safe queries and relationships
- Better Auth with JWT sessions
- Social provider integration (Google)
- Automatic session refresh
- Google Gemini 1.5 Flash model
- Configurable generation parameters
- Rate limiting and error handling
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Commit your changes:
git commit -m 'Add amazing feature' - Push to the branch:
git push origin feature/amazing-feature - Open a Pull Request
- Follow TypeScript strict mode
- Use conventional commit messages
- Add proper error handling
- Write descriptive component props
- Test AI integrations thoroughly
This project is licensed under the MIT License - see the LICENSE file for details.
- Next.js - React framework
- Better Auth - Modern authentication
- Drizzle ORM - TypeScript ORM
- Shadcn/ui - UI component library
- Google AI - Gemini AI integration
- Neon - Serverless PostgreSQL
If you have any questions or need help:
- Open an issue
- Check the documentation
- Join our Discord community
Built with β€οΈ by abdikani
Making task management intelligent and effortless
Making task management intelligent and effortless