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
Flowcus - Productivity and Task Management Application
Flowcus is a comprehensive cross-platform productivity and task management system designed to help users organize their time, execute deep focus sessions, schedule weekly timetables, and monitor real-time productivity. The system integrates a robust ASP.NET Core 8 backend, a modern Angular 19 web application, a full-featured React Native Android mobile client, and a PostgreSQL database.
Task Lifecycle: Dedicated is_completed boolean column and PATCH /api/tasks/{id}/toggle-complete endpoint. Task completion does not soft-delete the record, preserving full analytics and audit history.
Categorization & Subtypes: Tasks can be organized under global administrative categories and customized personal subtypes with hex colors and icons.
Flexible Scheduling: Start and end timestamps support zero-duration events (end_time >= start_time), enabling instantaneous check-ins and milestones alongside scheduled blocks.
Priority & Filtering: Priority levels (1-5) and multi-state status filters (All, Active, Completed).
2. Focus Sessions & Mobile Productivity
Background-Safe Focus Timer: Android client features a robust timer driven by epoch math (targetEndTime - Date.now()), impervious to Android OS background throttling and pause drift.
Auto-Logging: Completed focus sessions automatically synchronize to the backend as logged tasks.
Native Android Screen Time Integration: Kotlin ScreenTimeModule queries device usage stats in background threads with 64x64 icon downsampling, eliminating UI thread stutters.
3. Timetable & Weekly Scheduling
Weekly Routines: Users can configure up to 5 non-deleted timetables with single-active enforcement per user.
Concurrency Protection: PostgreSQL advisory transaction locks (pg_advisory_xact_lock(user_id)) prevent race conditions when creating timetables or subtypes up to the limit of 5.
Overlap Detection: Database and service-level validation prevents overlapping time blocks within the same timetable and day.
Timezone Synchronization: Requests pass local timezone offset (X-Timezone-Offset header or timezoneOffset query parameter), ensuring schedule items align with local user calendar days.
4. Authentication, Security & Progressive Lockout
Progressive Account Lockout: Protects accounts against brute-force attacks via tiered lockouts:
Tier 1 (Attempts 1–3): 5-minute lockout upon 3 consecutive failures.
Tier 2 (Attempts 4–6): 15-minute lockout upon 3 additional failures.
Tier 3+ (Attempts 7+): 60-minute lockout repeating on each subsequent failure until successful authentication resets both failed_attempts and lockout_count to 0.
Stateless JWT with Token Caching: Secure JWT bearer tokens accompanied by a 120-second IMemoryCache lookup during token validation, preventing database overload on high-throughput authenticated requests.