A modern, full-stack task management application built with Next.js 15, TypeScript, and PostgreSQL. Tido helps you organize your daily tasks, set priorities, track progress, and stay productive with an intuitive and responsive interface.
- Task Management: Create, update, and delete tasks with ease
- Priority System: Set task priorities (Low, Medium, High)
- Status Tracking: Track task status (Pending, In Progress, Completed)
- User Authentication: Secure JWT-based authentication with bcrypt password hashing
- Responsive Design: Modern UI that works on desktop, tablet, and mobile
- Real-time Updates: See changes as they happen
- Drag & Drop: Intuitive task organization with @dnd-kit
- Data Visualization: Task analytics with Recharts
- Type Safety: Full TypeScript support with Zod validation
- Dark Mode: Built-in theme switching support
- Next.js 15 - React framework with App Router
- React 19 - Latest React with concurrent features
- TypeScript - Type-safe development
- Tailwind CSS - Utility-first CSS framework
- Recharts - Data visualization
- Lucide React - Beautiful icons
- Next.js Server Actions - Server-side API logic
- PostgreSQL - Robust relational database
- Drizzle ORM - Type-safe database operations
- JWT - Secure authentication
- bcrypt - Password hashing
- Zod - Runtime type validation
- ESLint - Code linting
- Prettier - Code formatting
- Drizzle Kit - Database migrations
Before you begin, ensure you have the following installed:
- Node.js 18+
- npm, yarn, pnpm, or bun
- PostgreSQL database
- Git
-
Clone the repository
git clone https://github.com/your-username/task-manager-v2.git cd task-manager-v2 -
Install dependencies
npm install # or yarn install # or pnpm install # or bun install
-
Set up environment variables Create a
.env.localfile in the root directory:DATABASE_URL="postgresql://username:password@localhost:5432/task_manager" JWT_SECRET="your-super-secret-jwt-key" NODE_ENV="development"
-
Set up the database
npm run db:push
-
Start the development server
npm run dev
-
Open your browser Navigate to http://localhost:3000
task-manager-v2/
├── app/ # Next.js App Router
│ ├── (auth)/ # Authentication pages
│ ├── (marketing)/ # Marketing pages
│ ├── actions/ # Server actions
│ ├── api/ # API routes
│ ├── dashboard/ # Dashboard pages
│ ├── tasks/ # Task management pages
│ └── data/ # Database operations
├── components/ # Reusable UI components
│ └── ui/ # Base UI components
├── db/ # Database schema and connection
├── hooks/ # Custom React hooks
├── lib/ # Utility functions
└── public/ # Static assets
- Sign up or log in to your account
- Navigate to the dashboard
- Click "Create Task" or use the quick create button
- Fill in task details (title, description, priority, status)
- Save your task
- View Tasks: All tasks are displayed on the dashboard
- Edit Tasks: Click on any task to edit its details
- Delete Tasks: Remove tasks you no longer need
- Filter & Sort: Organize tasks by status, priority, or date
- Sign Up: Create a new account with email and password
- Sign In: Access your account with your credentials
- Sign Out: Securely log out of your account
- Push your code to GitHub
- Connect your repository to Vercel
- Add environment variables in Vercel dashboard
- Deploy automatically
The app can be deployed to any platform that supports Next.js:
- Netlify
- Railway
- DigitalOcean App Platform
- AWS Amplify
We welcome contributions! Please follow these steps:
- Fork the repository
- Create a feature branch
git checkout -b feature/amazing-feature
- Make your changes
- Commit your changes
git commit -m 'Add some amazing feature' - Push to the branch
git push origin feature/amazing-feature
- Open a Pull Request
- Follow the existing code style
- Write meaningful commit messages
- Add tests for new features
- Update documentation as needed
- Ensure all checks pass before submitting
npm run dev- Start development servernpm run build- Build for productionnpm run start- Start production servernpm run lint- Run ESLintnpm run db:push- Push database schema changesnpm run db:studio- Open Drizzle Studio
This project is licensed under the MIT License - see the LICENSE file for details.