A production-ready Trello-inspired Kanban task management frontend built with Angular 19, connecting to the FlowBoard microservices backend.
- Node.js 18+
- Angular CLI 19+
- Backend API Gateway running on
http://localhost:8080
cd flowboard-frontend
npm install
npm startApp opens at http://localhost:4200
src/app/
βββ core/
β βββ guards/ # AuthGuard
β βββ interceptors/ # AuthInterceptor (JWT cookies + refresh)
β βββ models/ # TypeScript interfaces (User, Board, Card, etc.)
β βββ services/ # API services (auth, workspace, board, card, comment)
βββ features/
β βββ auth/ # Login + Register (lazy-loaded)
β β βββ login/
β β βββ register/
β βββ dashboard/ # Homepage with workspace grid
β βββ workspace/ # Workspace detail + board list
β βββ board/ # Kanban board + drag-and-drop
β β βββ card-detail/ # Card modal (comments, labels, attachments)
β βββ profile/ # User profile & password change
β βββ admin/ # Admin panel (placeholder analytics)
βββ shared/
β βββ shell/ # App layout: sidebar + topbar
βββ environments/ # Dev / prod API URLs
| Service | Base Path |
|---|---|
| Auth | POST /api/auth/login, POST /api/auth/register, POST /api/auth/logout |
| Profile | GET/PUT /api/auth/profile, PUT /api/auth/change-password |
| Workspaces | GET/POST /api/workspaces, GET /api/workspaces/my |
| Boards | GET/POST /api/boards, GET /api/boards/workspace/:id |
| Lists | POST /api/boards/:id/lists, PATCH /api/boards/:id/lists/:id/reorder |
| Cards | GET/POST /api/cards, PUT /api/cards/:id/move |
| Comments | GET/POST /api/comments/cards/:id/comments |
Authentication uses HttpOnly JWT cookies β no token handling in localStorage.
- Auth: Login / Register / Logout / OAuth buttons (Google/GitHub UI)
- Dashboard: Workspace grid with stats
- Workspace: Board list with create/delete/close/reopen
- Kanban Board: Drag-and-drop cards between lists (HTML5 DnD API)
- Card Detail Modal: Title, description, priority, status, due date, comments (threaded), attachments, cover color
- Dark Mode: Toggle in sidebar
- Notifications: UI placeholder (notification service not implemented in backend)
- Admin Panel: User management table + analytics placeholders
Dev (src/environments/environment.ts):
apiUrl: 'http://localhost:8080'Production (src/environments/environment.prod.ts):
apiUrl: 'http://54.206.167.226:8080'npm run build # Development build
npm run build -- --configuration=production # Production build| Feature | Status |
|---|---|
| Notification service | |
| Admin analytics | |
| OAuth (Google/GitHub) | β UI links to `/oauth2/authorization/google |
| Label service | β
/api/labels/** route exists β UI can be extended |
- Standalone components with lazy loading for all routes
- Angular Signals for reactive state management
- HTTP Interceptor handles
withCredentials+ auto refresh on 401 - Optimistic UI: Card drag-and-drop updates UI instantly, rolls back on API error
- All field names match backend DTOs exactly (
cardId,boardId,workspaceId, etc.)