A brutally beautiful task management application built with modern technologies and designed for deep work and focused productivity.
- 🎨 New-Brutalism Design: Bold, vivid colors with three distinctive themes
- 📋 Task Management: Complete CRUD operations with status tracking
- ⏰ Time Tracking: Built-in timer with automatic time logging
- 📁 Project Organization: Group tasks into organized projects
- 📝 Notes System: Add detailed notes to any task
- 🔐 Authentication: Secure JWT-based user authentication
- 📱 Responsive Design: Works beautifully on all devices
- 🚀 Demo Mode: Try the app without registration
🌈 Neon Cyber: Electric blues, purples, and pinks
🔥 Retro Wave: Hot pinks, oranges, and purples
⚡ Acid Green: Bright greens, yellows, and blues
- React 18 with TypeScript
- Vite for blazing-fast development
- Tailwind CSS for styling
- shadcn/ui component library
- React Router for navigation
- Sonner for toast notifications
- Lucide React for icons
- Node.js with Express
- Dual Database Support: PostgreSQL & SQLite
- JWT Authentication
- Automated Migrations
- Comprehensive Test Suite
- Security Middleware
- Node.js 18+
- npm or yarn
- PostgreSQL (optional - SQLite works out of the box)
-
Clone the repository
git clone <repo-url> cd taskify
-
Backend Setup
cd backend npm install # Copy environment file cp .env.example .env # Start the server (uses SQLite by default) npm run dev
-
Frontend Setup
cd frontend npm install # Start the development server npm run dev
-
Open your browser
- Frontend: http://localhost:5173
- Backend API: http://localhost:3001
Visit the homepage and click "View Demo" to explore Taskify with sample data - no registration required!
- Sign Up: Create your free account
- Create Project: Organize your work into projects
- Add Tasks: Create tasks with priorities, due dates, and descriptions
- Track Time: Use the built-in timer for tasks in progress
- Add Notes: Keep detailed records of your progress
- Stay Organized: Use filters and search to find what you need
Works out of the box - no setup required!
Update your .env file:
DB_TYPE=postgresql
PG_HOST=localhost
PG_PORT=5432
PG_DATABASE=taskify
PG_USER=your_username
PG_PASSWORD=your_passwordcd backend
npm testThe test suite includes:
- User authentication tests
- Project CRUD operations
- Task management functionality
- API error handling
- Database operations
taskify/
├── frontend/ # React TypeScript frontend
│ ├── src/
│ │ ├── components/ # Reusable UI components
│ │ ├── pages/ # Page components
│ │ ├── contexts/ # React contexts
│ │ ├── services/ # API services
│ │ ├── types/ # TypeScript definitions
│ │ └── data/ # Demo data
├── backend/ # Node.js Express backend
│ ├── src/
│ │ ├── routes/ # API routes
│ │ ├── database/ # Database layer
│ │ ├── middleware/ # Express middleware
│ │ └── config/ # Configuration
│ └── tests/ # Test suites
- Add theme colors in
frontend/src/index.css - Update the theme context in
frontend/src/contexts/ThemeContext.tsx - Add theme option to
ThemeSwitchercomponent
The application supports easy schema modifications through migrations:
- SQLite:
backend/src/database/migrations/sqlite/ - PostgreSQL:
backend/src/database/migrations/postgresql/
POST /api/users/register- User registrationPOST /api/users/login- User loginGET /api/users/profile- Get user profile
GET /api/projects- List all projectsPOST /api/projects- Create new projectPUT /api/projects/:id- Update projectDELETE /api/projects/:id- Delete project
GET /api/tasks- List tasks (filterable)POST /api/tasks- Create new taskPUT /api/tasks/:id- Update taskDELETE /api/tasks/:id- Delete taskPOST /api/tasks/:id/notes- Add task note
POST /api/time-entries/start- Start time trackingPOST /api/time-entries/stop- Stop time trackingGET /api/time-entries/task/:id- Get task time entries
- Fast Builds: Vite for sub-second HMR
- Optimized Queries: Database indexes for performance
- Lazy Loading: Components loaded on demand
- Efficient State: Minimal re-renders with React contexts
- JWT Authentication: Secure token-based auth
- Password Hashing: bcrypt with salt rounds
- Rate Limiting: API endpoint protection
- Input Validation: Server-side validation
- CORS Protection: Configured for production
- Fork the repository
- Create your 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
This project is licensed under the MIT License - see the LICENSE file for details.
- shadcn/ui for the beautiful component library
- Lucide for the comprehensive icon set
- Tailwind CSS for the utility-first styling approach
- The open-source community for the amazing tools and inspiration
Built with ❤️ for productivity enthusiasts
Ready to revolutionize your task management? Get started with Taskify today!