Skip to content

stratusstack/Taskify

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

14 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🎯 Taskify - Modern Task Management

A brutally beautiful task management application built with modern technologies and designed for deep work and focused productivity.

Taskify Banner

✨ Features

  • 🎨 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

🎨 Design Themes

🌈 Neon Cyber: Electric blues, purples, and pinks
πŸ”₯ Retro Wave: Hot pinks, oranges, and purples
⚑ Acid Green: Bright greens, yellows, and blues

πŸ› οΈ Technology Stack

Frontend

  • 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

Backend

  • Node.js with Express
  • Dual Database Support: PostgreSQL & SQLite
  • JWT Authentication
  • Automated Migrations
  • Comprehensive Test Suite
  • Security Middleware

πŸš€ Quick Start

Prerequisites

  • Node.js 18+
  • npm or yarn
  • PostgreSQL (optional - SQLite works out of the box)

Installation

  1. Clone the repository

    git clone <repo-url>
    cd taskify
  2. Backend Setup

    cd backend
    npm install
    
    # Copy environment file
    cp .env.example .env
    
    # Start the server (uses SQLite by default)
    npm run dev
  3. Frontend Setup

    cd frontend
    npm install
    
    # Start the development server
    npm run dev
  4. Open your browser

🎯 Usage

Demo Mode

Visit the homepage and click "View Demo" to explore Taskify with sample data - no registration required!

Getting Started

  1. Sign Up: Create your free account
  2. Create Project: Organize your work into projects
  3. Add Tasks: Create tasks with priorities, due dates, and descriptions
  4. Track Time: Use the built-in timer for tasks in progress
  5. Add Notes: Keep detailed records of your progress
  6. Stay Organized: Use filters and search to find what you need

πŸ—„οΈ Database Configuration

SQLite (Default)

Works out of the box - no setup required!

PostgreSQL

Update your .env file:

DB_TYPE=postgresql
PG_HOST=localhost
PG_PORT=5432
PG_DATABASE=taskify
PG_USER=your_username
PG_PASSWORD=your_password

πŸ§ͺ Testing

Backend Tests

cd backend
npm test

The test suite includes:

  • User authentication tests
  • Project CRUD operations
  • Task management functionality
  • API error handling
  • Database operations

πŸ—οΈ Project Structure

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

🎨 Customization

Adding New Themes

  1. Add theme colors in frontend/src/index.css
  2. Update the theme context in frontend/src/contexts/ThemeContext.tsx
  3. Add theme option to ThemeSwitcher component

Database Schema

The application supports easy schema modifications through migrations:

  • SQLite: backend/src/database/migrations/sqlite/
  • PostgreSQL: backend/src/database/migrations/postgresql/

πŸ”§ API Endpoints

Authentication

  • POST /api/users/register - User registration
  • POST /api/users/login - User login
  • GET /api/users/profile - Get user profile

Projects

  • GET /api/projects - List all projects
  • POST /api/projects - Create new project
  • PUT /api/projects/:id - Update project
  • DELETE /api/projects/:id - Delete project

Tasks

  • GET /api/tasks - List tasks (filterable)
  • POST /api/tasks - Create new task
  • PUT /api/tasks/:id - Update task
  • DELETE /api/tasks/:id - Delete task
  • POST /api/tasks/:id/notes - Add task note

Time Tracking

  • POST /api/time-entries/start - Start time tracking
  • POST /api/time-entries/stop - Stop time tracking
  • GET /api/time-entries/task/:id - Get task time entries

πŸ“ˆ Performance

  • 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

πŸ”’ Security

  • 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

🀝 Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ™ Acknowledgments

  • 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!

About

Simple, modern task management

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors