How stephenwu433/planflow-app works
PlanFlow is a team project-portfolio and scheduling product with a Next.js interface, FastAPI API, Neon-backed persistence, and Clerk authentication. The principal workflow is to join or create a team, create and schedule projects, manage project tasks, and record daily progress and hours; team and portfolio views surface that work across projects. The tree documents additional schedule, workload, reporting, and notification capabilities. Some routes and API helpers were not sampled, so their links are shown only where filenames and documented product structure support them.
Main entry points: main.py FastAPI entry · api-client.ts HTTP client · db.py Database access · page.tsx Project workspace
Components 27
Web interface
- Teams and projects
planflow/app/teams/[teamId]/page.tsx - Workbench shell
planflow/components/WorkbenchShell.tsx - Portfolio
planflow/app/portfolio/page.tsx - Project workspace
planflow/app/teams/[teamId]/projects/[projectId]/page.tsx - Daily work views
planflow/app/my-day/page.tsx - Team day
planflow/app/team-day/page.tsx - Workload view
planflow/app/workload/page.tsx
API client
- HTTP client
planflow/lib/api-client.ts - Team and project APIs
planflow/lib/projects-api.ts - Task APIs
planflow/lib/tasks-api.ts - Daily work APIs
planflow/lib/daily-tasks-api.ts - Team daily API
planflow/lib/team-daily-api.ts - Workload API
planflow/lib/workload-api.ts - Schedule and reports
planflow/lib/cycle-schedule-api.ts - Notifications API
planflow/lib/notifications-api.ts
API services
- FastAPI entry
backend/app/main.py - Teams and projects
backend/app/routers/teams.py - Project tasks
backend/app/routers/tasks.py - Daily tasks and time
backend/app/routers/daily_tasks.py - Daily and workload views
backend/app/routers/team_daily.py - Schedules and reports
backend/app/routers/cycle_schedule.py - Notifications
backend/app/routers/notifications.py
Identity and storage
- JWT authentication
backend/app/auth.py - Database access
backend/app/db.py
Other components
- Team user
- Neon PostgreSQL
- Clerk identity
Connections 39
- Team user → Teams and projects: manages teams
- Team user → Portfolio: views portfolio
- Team user → Project workspace: works on projects
- Team user → Daily work views: records progress
- Team user → Team day: reviews team
- Team user → Workload view: reviews workload
- Teams and projects → Team and project APIs: creates and schedules
- Workbench shell → Team and project APIs: loads portfolio
- Portfolio → Team and project APIs: loads projects
- Project workspace → Task APIs: manages tasks
- Daily work views → Daily work APIs: logs hours
- Daily work views → Task APIs: updates status
- Team day → Team daily API: loads team board
- Workload view → Workload API: loads workload
- Project workspace → Schedule and reports: uses schedules and reports
- Project workspace → Notifications API: views notifications
- Team and project APIs → HTTP client: sends requests
- Task APIs → HTTP client: sends requests
- Daily work APIs → HTTP client: sends requests
- Team daily API → HTTP client: sends requests
- Workload API → HTTP client: sends requests
- Schedule and reports → HTTP client: sends requests
- Notifications API → HTTP client: sends requests
- HTTP client → FastAPI entry: calls API
- FastAPI entry → Teams and projects: dispatches routes
- FastAPI entry → Project tasks: dispatches routes
- FastAPI entry → Daily tasks and time: dispatches routes
- FastAPI entry → Daily and workload views: dispatches routes
- FastAPI entry → Schedules and reports: dispatches routes
- FastAPI entry → Notifications: dispatches routes
- FastAPI entry → JWT authentication: authenticates requests
- JWT authentication → Clerk identity: verifies JWT
- Teams and projects → Database access: reads and writes
- Project tasks → Database access: reads and writes
- Daily tasks and time → Database access: reads and writes
- Daily and workload views → Database access: reads data
- Schedules and reports → Database access: reads and writes
- Notifications → Database access: reads and writes
- Database access → Neon PostgreSQL: queries