- Backend: Bun + Elysia + Drizzle ORM + PostgreSQL - Frontend: React + Vite + TailwindCSS + Zustand - Auth: better-auth with invite-only system - Features: Tasks, Projects, Sections, Labels, Comments - Hammer API: Dedicated endpoints for AI assistant integration - Unit tests: 24 passing tests - Docker: Compose file for deployment
64 lines
1.3 KiB
Markdown
64 lines
1.3 KiB
Markdown
# Todo App
|
|
|
|
A Todoist-inspired task management app with API access for Hammer (AI assistant).
|
|
|
|
## Tech Stack
|
|
|
|
### Backend (apps/api)
|
|
- **Runtime**: Bun
|
|
- **Framework**: Elysia
|
|
- **Database**: PostgreSQL + Drizzle ORM
|
|
- **Auth**: better-auth (invite-only)
|
|
- **Jobs**: pg-boss (reminders, notifications)
|
|
- **Email**: Resend
|
|
|
|
### Frontend (apps/web)
|
|
- **Framework**: React + Vite
|
|
- **Styling**: TailwindCSS + shadcn/ui
|
|
- **Data**: TanStack Query
|
|
- **Routing**: React Router
|
|
- **State**: Zustand
|
|
|
|
## Features
|
|
|
|
- ✅ Tasks with priorities, due dates, descriptions
|
|
- ✅ Projects and sections
|
|
- ✅ Sub-tasks
|
|
- ✅ Labels (cross-project tagging)
|
|
- ✅ Recurring tasks
|
|
- ✅ Reminders
|
|
- ✅ Comments with attachments
|
|
- ✅ Custom filters
|
|
- ✅ Today / Upcoming / Board views
|
|
- ✅ Invite-only user management
|
|
- ✅ Hammer API (AI assistant integration)
|
|
|
|
## Development
|
|
|
|
```bash
|
|
# Install dependencies
|
|
cd apps/api && bun install
|
|
cd apps/web && bun install
|
|
|
|
# Start API
|
|
cd apps/api && bun run dev
|
|
|
|
# Start Web
|
|
cd apps/web && bun run dev
|
|
```
|
|
|
|
## Deployment
|
|
|
|
- Domain: todo.donovankelly.xyz
|
|
- Server: Hostinger VPS
|
|
|
|
## API Endpoints
|
|
|
|
### Hammer API
|
|
```
|
|
POST /api/hammer/tasks - Create task assigned to Hammer
|
|
GET /api/hammer/tasks - Get Hammer's assigned tasks
|
|
PATCH /api/hammer/tasks/:id - Update/complete task
|
|
POST /api/hammer/webhook - Register notification webhook
|
|
```
|