You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Task CRUD — Create, list, update, delete tasks with title, description, status, priority, due date
Search & Filter — Filter by status/priority, full-text search, sort by date/priority
Pagination — Configurable page size with smart windowed pagination
JWT Auth — Signup/login with bcrypt hashing, httpOnly cookie persistence
Real-time SSE — Live task updates pushed to connected clients
Optimistic UI — Instant state updates with rollback on server failure
Activity Log — Change history timeline per task
Admin RBAC — Admin role can view all users' tasks
Dark Mode — Persisted theme toggle (dark/light)
Docker Compose — One-command local setup
Tests — Go unit + integration tests; Jest frontend hook tests
CI Pipeline — GitHub Actions on push/PR
Quick Start (Docker Compose)
# Clone and enter directory
git clone <repo-url>cd task_manager
# (Optional) set a custom JWT secretexport JWT_SECRET="your-production-secret"# Start all services
docker-compose up --build
cd backend
# Unit tests only (no database needed)
go test ./tests/... -run "TestHash|TestGenerate" -v
# All tests (requires TEST_DATABASE_URL)
TEST_DATABASE_URL="postgres://..." go test ./tests/... -v
Frontend
cd frontend
npm test
Admin Access
The admin role must be set directly in the database:
UPDATE users SET role ='admin'WHERE email ='admin@example.com';