How raniel-roque/doctask works
DocTask is a role-based academic project and document workflow application: instructors manage users and groups, students work in teams and submit task documents, and advisers review and approve those documents. Convex provides application data and image storage; Clerk handles identity, while Liveblocks enables authorized real-time document collaboration. The tree also shows backup/restore, account administration, logs, profiles, and email-related routes. The README is only the default Next.js template, and sampled source is partial, so uncertain page-to-backend wiring is omitted.
Main entry points: liveblocks-auth/route.ts Collaboration authorization · convex-client.ts Convex client · upload-image/route.ts Profile and images · convex Backup and restore APIs
Components 20
Identity and access
- Sign-in UI
src/app/(auth)/login/page.tsx - Account APIs
src/app/api/clerk - Profile and images
src/app/api/upload-image/route.ts
Role workspaces
- Instructor workspace
src/app/(pages)/instructor/[instructorId] - Student workspace
src/app/(pages)/student/[studentId] - Adviser workspace
src/app/(pages)/adviser/[adviserId]
Documents and collaboration
- Document editor
src/app/editor - Collaboration authorization
src/app/api/liveblocks-auth/route.ts
Application backend
- Convex client
src/lib/convex-client.ts - Queries
convex/fetch.ts - Mutations
convex/mutations.ts - Image storage
convex/images.ts - Restore operations
convex/restore.ts - Data schema
convex/schema.ts - Backup and restore APIs
src/app/api/convex
External services
- Clerk identity
- Liveblocks rooms
- Email routes
src/app/api/resend - Resend email
Other components
- User
Connections 21
- User → Sign-in UI: signs in
- Sign-in UI → Clerk identity: authenticates
- User → Instructor workspace: manages users
- User → Student workspace: works on tasks
- User → Adviser workspace: reviews work
- Account APIs → Clerk identity: manages accounts
- Account APIs → Convex client: updates records
- Profile and images → Clerk identity: checks identity
- Profile and images → Convex client: checks membership
- Profile and images → Image storage: uploads image
- Image storage → Data schema: stores metadata
- Document editor → Collaboration authorization: requests access
- Collaboration authorization → Clerk identity: checks session
- Collaboration authorization → Convex client: checks document access
- Collaboration authorization → Liveblocks rooms: authorizes room
- Backup and restore APIs → Convex client: reads backup data
- Backup and restore APIs → Restore operations: restores records
- Backup and restore APIs → Clerk identity: manages accounts
- Queries → Data schema: reads data
- Mutations → Data schema: writes data
- Email routes → Resend email: sends email