A modern, full-stack task management application powered by AI that helps you create, organize, and manage tasks using natural language processing.
- Natural Language Processing: Create tasks by describing them in plain English
- Smart Parsing: AI automatically extracts title, description, due dates, and priority
- Graceful Fallback: Falls back to basic parsing if AI service is unavailable
- Real-time Processing: Instant task creation with loading indicators
- CRUD Operations: Create, read, update, and delete tasks
- Priority Levels: Low, medium, and high priority classification
- Due Date Management: Set and track task deadlines
- Status Tracking: Mark tasks as active or completed
- Drag & Drop: Reorder tasks with intuitive drag-and-drop interface
- Responsive Design: Works seamlessly on desktop and mobile devices
- Dark/Light Mode: Toggle between themes for comfortable viewing
- Real-time Updates: Instant UI updates without page refreshes
- Toast Notifications: Clear feedback for all user actions
- Consistent UX: Unified design language across all components
- Default Sort Options: Configure how tasks are sorted by default
- Filter Preferences: Set default task filters (All, Active, Completed)
- Personalized Experience: Save and remember user preferences
- JWT Authentication: Secure user authentication with JSON Web Tokens
- Password Hashing: Bcrypt encryption for password security
- Protected Routes: Secure API endpoints and frontend routes
- Session Management: Persistent login sessions
- React 19: Latest React with modern hooks and features
- TypeScript: Type-safe development experience
- Vite: Fast build tool and development server
- Tailwind CSS: Utility-first CSS framework
- Zustand: Lightweight state management
- React Router: Client-side routing
- Heroicons: Beautiful SVG icons
- DND Kit: Drag and drop functionality
- Node.js: JavaScript runtime
- Express: Fast, unopinionated web framework
- TypeScript: Type-safe backend development
- PostgreSQL: Robust relational database
- JWT: JSON Web Token authentication
- Bcrypt: Password hashing
- OpenAI API: AI-powered natural language processing
- Node.js 18+
- PostgreSQL 12+
- OpenAI API key (for AI features)
git clone <repository-url>
cd full-stack-task-managercd server
npm install
# Create .env file
cp .env.example .env
# Add your database and OpenAI API credentials
# Setup database
npm run db:reset
# Start development server
npm run devcd client
npm install
# Start development server
npm run devCreate .env file in the server directory:
# Database
DATABASE_URL=postgresql://username:password@localhost:5432/taskmanager
# JWT Secret
JWT_SECRET=your-super-secret-jwt-key
# OpenAI API (for AI features)
OPENAI_API_KEY=your-openai-api-key
# Server
PORT=8080
NODE_ENV=development-
Simple Task
Input: "Buy groceries" Output: Task with title "Buy groceries" -
Complex Task with Date and Priority
Input: "Review quarterly report by Friday urgent" Output: Task with title, description, due date (Friday), and high priority -
Time-based Task
Input: "Call dentist tomorrow at 3pm" Output: Task with extracted date and time information
Use the traditional form interface to:
- Set task title and description
- Choose priority level
- Set due date
- Add additional details
- Drag & Drop: Reorder tasks by dragging them
- Quick Actions: Mark tasks as complete/incomplete
- Edit Tasks: Click to edit task details
- Delete Tasks: Remove tasks with confirmation
- Filter & Sort: Organize tasks by status, priority, or date
POST /api/auth/register- User registrationPOST /api/auth/login- User loginGET /api/auth/me- Get current user
GET /api/tasks- Get all tasks for userPOST /api/tasks- Create new taskPUT /api/tasks/:id- Update taskDELETE /api/tasks/:id- Delete taskPATCH /api/tasks/:id/toggle- Toggle task completion
POST /api/ai-tasks/create- Create task from natural languagePOST /api/ai-tasks/enhance- Enhance existing task with AIPOST /api/ai-tasks/suggestions- Get AI suggestions for task
Backend:
npm run dev # Start development server
npm run build # Build for production
npm run start # Start production server
npm run seed # Seed database with sample data
npm run db:reset # Reset and seed databaseFrontend:
npm run dev # Start development server
npm run build # Build for production
npm run preview # Preview production build
npm run lint # Run ESLintThe application uses PostgreSQL with the following main tables:
users- User accounts and authenticationtasks- Task data with relationships to usersuser_settings- User preferences and settings
The application integrates with OpenAI's GPT models to provide:
- Natural language task parsing
- Intelligent task enhancement
- Smart suggestions and recommendations
If AI services are unavailable:
- Graceful degradation to basic parsing
- User-friendly error notifications
- Continued functionality without AI features
- User registration and login
- Task creation (manual and AI modes)
- Task editing and deletion
- Drag and drop functionality
- Filtering and sorting
- Settings management
- Responsive design on mobile
- Error handling and notifications
- Voice Input: Speech-to-text for task creation
- Calendar Integration: Sync with external calendars
- Team Collaboration: Share tasks and collaborate
- Advanced AI: Context-aware suggestions and learning
- Mobile App: Native mobile applications
- Offline Support: Work without internet connection
- Multi-language Support: International language processing
- Context Awareness: Consider user's schedule and preferences
- Smart Categorization: Automatic task categorization
- Predictive Text: AI-powered task suggestions
This project is licensed under the MIT License - see the LICENSE file for details.
- 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
For support and questions:
- Create an issue in the repository
- Check the documentation in the
/docsfolder - Review the AI integration guides in the server and client directories
Built with โค๏ธ using React, Node.js, and OpenAI