How anang-programmer/pilar-submission works
PILAR is a role-based academic article review system. Participants submit articles and revisions; reviewers handle assigned reviews and recommendations; administrators monitor the workflow and manage its people and academic configuration. Frontend role pages call a shared API client, while the FastAPI application dispatches to role-specific routes and Supabase-backed services. The tree and sampled excerpts support the broad role capabilities, but most route implementations and frontend API bindings were not inspected, so those detailed links are omitted.
Main entry points: api.ts API client · deps.py Auth dependencies · main.py FastAPI application · reviewer.py Reviewer routes
Components 23
Web application
- Login
frontend/app/login/page.tsx - Role protection
frontend/components/Protected.tsx - API client
frontend/lib/api.ts - Admin workspace
frontend/app/admin/page.tsx - Participant workspace
frontend/app/peserta/page.tsx - Reviewer workspace
frontend/app/reviewer/layout.tsx - Article monitoring
frontend/app/admin/artikel/page.tsx
API and access
- FastAPI application
backend/app/main.py - Authentication routes
backend/app/routes/auth.py - Administration routes
backend/app/routes/admin.py - Participant routes
backend/app/routes/peserta.py - Reviewer routes
backend/app/routes/reviewer.py - Auth dependencies
backend/app/deps.py - Token security
backend/app/security.py - API schemas
backend/app/schemas.py
Article workflow
- Submit and revise
frontend/app/peserta/upload-artikel/page.tsx - Assigned review
backend/app/routes/reviewer.py - Workflow monitoring
frontend/app/admin/monitoring-review/page.tsx
Identity and persistence
- Supabase client
backend/app/supabase.py - Supabase Auth
frontend/lib/supabase.ts - Supabase data
- Article storage
Other components
- User
Connections 27
- User → Login: signs in
- Login → API client: resolves username
- Login → Supabase Auth: authenticates
- Role protection → Supabase Auth: checks session
- Role protection → API client: loads identity
- Admin workspace → API client: requests admin data
- Participant workspace → API client: requests participant data
- Reviewer workspace → API client: prefetches review data
- Article monitoring → API client: requests article data
- API client → FastAPI application: sends API requests
- FastAPI application → Authentication routes: dispatches
- FastAPI application → Administration routes: dispatches
- FastAPI application → Participant routes: dispatches
- FastAPI application → Reviewer routes: dispatches
- Authentication routes → Auth dependencies: depends on
- Administration routes → Auth dependencies: depends on
- Participant routes → Auth dependencies: depends on
- Reviewer routes → Auth dependencies: depends on
- Auth dependencies → Token security: uses
- Auth dependencies → Supabase client: obtains service client
- Authentication routes → Supabase client: queries users
- Reviewer routes → Supabase client: loads and saves reviews
- Reviewer routes → Article storage: creates signed links
- Supabase client → Supabase data: queries
- Submit and revise → Participant routes: submits articles
- Assigned review → Reviewer routes: handles assignments
- Workflow monitoring → Administration routes: monitors workflow