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!