{"id":29435845,"url":"https://github.com/rabius-sunny/tasket","last_synced_at":"2026-05-04T22:39:13.390Z","repository":{"id":303979074,"uuid":"1016004367","full_name":"rabius-sunny/tasket","owner":"rabius-sunny","description":"⚡ Tasket - High-Performance  production-ready task management API with Bun, Hono, Prisma \u0026 PostgreSQL. Features workspaces, boards, kanban-style tasks, analytics \u0026 advanced database optimizations.","archived":false,"fork":false,"pushed_at":"2025-08-04T17:30:19.000Z","size":657,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-04T22:39:05.066Z","etag":null,"topics":["bunjs","honojs","postgressql","task-management","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rabius-sunny.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-07-08T10:50:15.000Z","updated_at":"2025-08-06T03:54:29.000Z","dependencies_parsed_at":"2025-07-10T20:06:45.670Z","dependency_job_id":"6a5d0ef5-3760-4302-96d1-8e6c70da775b","html_url":"https://github.com/rabius-sunny/tasket","commit_stats":null,"previous_names":["rabius-sunny/tasket"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/rabius-sunny/tasket","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rabius-sunny%2Ftasket","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rabius-sunny%2Ftasket/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rabius-sunny%2Ftasket/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rabius-sunny%2Ftasket/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rabius-sunny","download_url":"https://codeload.github.com/rabius-sunny/tasket/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rabius-sunny%2Ftasket/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32628211,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-04T10:08:07.713Z","status":"ssl_error","status_checked_at":"2026-05-04T10:08:02.005Z","response_time":58,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bunjs","honojs","postgressql","task-management","typescript"],"created_at":"2025-07-13T04:01:47.457Z","updated_at":"2026-05-04T22:39:13.385Z","avatar_url":"https://github.com/rabius-sunny.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Tasket - Task Management API\n\nA minimal yet powerful task management platform built with Bun, Hono, Prisma ORM, and PostgreSQL. This application provides a complete project management solution with workspaces, boards, tasks, and advanced features like checklists, comments, and analytics.\n\n## Features\n\n- **Workspaces**: Create and manage workspaces with multiple members\n- **Boards**: Organize tasks within boards under workspaces\n- **Tasks**: Full-featured task management with drag-and-drop support\n- **Checklists**: Break down tasks into manageable checklist items\n- **Comments**: Collaborative commenting system for tasks\n- **User Management**: Secure authentication and user assignment\n- **Analytics**: Dashboard analytics for productivity insights\n- **Performance Optimized**: Database indexing and query optimization\n\nSee [DATABASE_OPTIMIZATION.md](DATABASE_OPTIMIZATION.md) for detailed technical information.\n\n## Quick Start\n\n1. **Clone and Setup**:\n\n   ```bash\n   git clone \u003crepository-url\u003e\n   cd Tasket\n   bun install\n   ```\n\n2. **Environment Setup**:\n\n   ```bash\n   cp .env.example .env\n   # Update .env with your database credentials\n   ```\n\n3. **Database Setup**:\n\n   ```bash\n   bun run migrate\n   bun run db:generate\n   ```\n\n4. **Start Development Server**:\n   ```bash\n   bun run dev\n   ```\n\n## API Endpoints\n\n### 🏠 System Routes\n\n| Method | Endpoint  | Description           |\n| ------ | --------- | --------------------- |\n| GET    | `/health` | Health check endpoint |\n\n### 🔐 Authentication Routes\n\n| Method | Endpoint             | Description         |\n| ------ | -------------------- | ------------------- |\n| POST   | `/api/auth/register` | Register a new user |\n| POST   | `/api/auth/login`    | User login          |\n\n### 🏢 Workspace Routes\n\n| Method | Endpoint                      | Description                               |\n| ------ | ----------------------------- | ----------------------------------------- |\n| POST   | `/api/workspaces`             | Create a new workspace                    |\n| GET    | `/api/workspaces`             | Get all workspaces for authenticated user |\n| GET    | `/api/workspaces/search`      | Search workspaces                         |\n| GET    | `/api/workspaces/:id`         | Get specific workspace with full data     |\n| PUT    | `/api/workspaces/:id`         | Update workspace details                  |\n| DELETE | `/api/workspaces/:id`         | Delete workspace                          |\n| POST   | `/api/workspaces/:id/members` | Add members to workspace                  |\n| DELETE | `/api/workspaces/:id/members` | Remove members from workspace             |\n\n### 📋 Board Routes\n\n| Method | Endpoint                                       | Description                     |\n| ------ | ---------------------------------------------- | ------------------------------- |\n| POST   | `/api/workspaces/:workspaceId/boards`          | Create a new board in workspace |\n| GET    | `/api/workspaces/:workspaceId/boards`          | Get all boards in workspace     |\n| GET    | `/api/workspaces/:workspaceId/boards/:boardId` | Get specific board with tasks   |\n| PUT    | `/api/workspaces/:workspaceId/boards/:boardId` | Update board details            |\n| DELETE | `/api/workspaces/:workspaceId/boards/:boardId` | Delete board                    |\n| GET    | `/api/boards/:boardId/analytics`               | Get board analytics data        |\n\n### 📝 Task Routes\n\n| Method | Endpoint                             | Description                               |\n| ------ | ------------------------------------ | ----------------------------------------- |\n| GET    | `/api/boards/:boardId/tasks`         | Get tasks for board (with filtering)      |\n| POST   | `/api/boards/:boardId/tasks`         | Create new task in board                  |\n| GET    | `/api/tasks/:taskId`                 | Get specific task with all relations      |\n| PUT    | `/api/tasks/:taskId`                 | Update task details                       |\n| DELETE | `/api/tasks/:taskId`                 | Delete task                               |\n| PATCH  | `/api/tasks/positions`               | Batch update task positions (drag \u0026 drop) |\n| GET    | `/api/users/:userId/tasks/overdue`   | Get overdue tasks for user                |\n| GET    | `/api/users/:userId/tasks/analytics` | Get task analytics for user               |\n\n## Request/Response Examples\n\n### Authentication\n\n**Register User**:\n\n```bash\nPOST /api/auth/register\n{\n  \"username\": \"john_doe\",\n  \"email\": \"john@example.com\",\n  \"password\": \"securepassword\"\n}\n```\n\n**Login**:\n\n```bash\nPOST /api/auth/login\n{\n  \"email\": \"john@example.com\",\n  \"password\": \"securepassword\"\n}\n```\n\n### Workspaces\n\n**Create Workspace**:\n\n```bash\nPOST /api/workspaces\n{\n  \"name\": \"My Project Workspace\"\n}\n```\n\n**Get Workspaces**:\n\n```bash\nGET /api/workspaces\n# Returns list of workspaces with board/member counts\n```\n\n**Add Member to Workspace**:\n\n```bash\nPOST /api/workspaces/1/members\n{\n  \"userIds\": [2, 3, 4]\n}\n```\n\n### Boards\n\n**Create Board**:\n\n```bash\nPOST /api/workspaces/1/boards\n{\n  \"title\": \"Sprint Planning Board\"\n}\n```\n\n**Get Board with Tasks**:\n\n```bash\nGET /api/workspaces/1/boards/1\n# Returns board with all tasks, checklists, and comments\n```\n\n### Tasks\n\n**Create Task**:\n\n```bash\nPOST /api/boards/1/tasks\n{\n  \"title\": \"Implement user authentication\",\n  \"description\": \"Add login/register functionality\",\n  \"labels\": [\"backend\", \"auth\"],\n  \"dueDate\": \"2025-07-15T10:00:00Z\",\n  \"assignedTo\": 2,\n  \"status\": \"todo\"\n}\n```\n\n**Get Tasks with Filtering**:\n\n```bash\nGET /api/boards/1/tasks?status=todo\u0026assignedTo=2\u0026search=auth\n# Supports filtering by status, assignee, search term, and overdue\n```\n\n**Update Task Positions (Drag \u0026 Drop)**:\n\n```bash\nPATCH /api/tasks/positions\n{\n  \"tasks\": [\n    { \"id\": 1, \"position\": 0, \"status\": \"todo\" },\n    { \"id\": 2, \"position\": 1, \"status\": \"in-progress\" }\n  ]\n}\n```\n\n**Get Task Analytics**:\n\n```bash\nGET /api/users/1/tasks/analytics?workspaceId=1\n# Returns task counts by status, upcoming tasks, completion rates\n```\n\n## Query Parameters\n\n### Task Filtering (`GET /api/boards/:boardId/tasks`)\n\n- `status` - Filter by task status (todo, in-progress, completed)\n- `assignedTo` - Filter by assigned user ID\n- `search` - Search in task title and description\n- `overdue` - Filter overdue tasks (true/false)\n\n### Workspace Search (`GET /api/workspaces/search`)\n\n- `q` - Search query for workspace names\n- `page` - Page number for pagination (default: 1)\n- `limit` - Results per page (default: 10)\n\n## Response Format\n\nAll API responses follow this structure:\n\n**Success Response**:\n\n```json\n{\n  \"id\": 1,\n  \"name\": \"Sample Data\",\n  \"createdAt\": \"2025-07-08T10:00:00Z\",\n  \"updatedAt\": \"2025-07-08T10:00:00Z\"\n}\n```\n\n**Error Response**:\n\n```json\n{\n  \"error\": \"Error message description\"\n}\n```\n\n## Development Scripts\n\n```bash\n# Development\nbun run dev              # Start development server with hot reload\nbun run build           # Build for production\nbun run start           # Start production server\n\n# Database\nbun run migrate         # Run database migrations\nbun run migrate:deploy  # Deploy migrations to production\nbun run db:generate     # Generate Prisma client\nbun run db:push         # Push schema changes to database\nbun run db:reset        # Reset database (development only)\n\n# Code Quality\nbun run lint           # Run ESLint\nbun run test           # Run tests\n```\n\n## Environment Variables\n\n```env\n# Database\nDATABASE_URL=\"postgresql://user:password@localhost:5432/tasket_db\"\n\n# Server\nPORT=3000\nNODE_ENV=development\n\n# Authentication\nJWT_SECRET=your-jwt-secret-key\n\n# Optional: Redis for caching\nREDIS_URL=redis://localhost:6379\n```\n\n## Architecture\n\n```\nsrc/\n├── controllers/       # Request handlers\n├── services/         # Business logic \u0026 optimized queries\n├── routes/           # API route definitions\n├── lib/              # Shared utilities (Prisma client)\n├── middleware/       # Authentication \u0026 validation\n└── types/            # TypeScript type definitions\n\nprisma/\n├── schema.prisma     # Database schema\n└── migrations/       # Database migrations\n```\n\n## Performance Features\n\n- **Database Indexing**: Comprehensive indexes on all query fields\n- **Query Optimization**: Efficient joins and selective loading\n- **Connection Pooling**: Optimized database connections\n- **Batch Operations**: Bulk updates for better performance\n- **Caching Ready**: Structured for Redis integration\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frabius-sunny%2Ftasket","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frabius-sunny%2Ftasket","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frabius-sunny%2Ftasket/lists"}