How tobby888/photolib works
PhotoLib is a campus photography operations platform: users create projects and photo requests, contributors accept requests and upload images, and managers organize and adopt photos before confirming work hours and exporting statistics. The README also documents recruitment, featured collections, surveys, messaging, administration, backups, and MCP access, so these appear as distinct capability branches. The tree and excerpts establish component boundaries, while some subsystem links rely on documented behavior rather than sampled implementation; uncertain internal calls are omitted.
Main entry points: App.tsx Web application · PhotoController.java Photo management · PhotoProcessingService.java Image processing · ObjectStorageService.java Object storage
Components 23
Photo workflow
- Projects and requests
backend/src/main/java/cn/photolib/project/ProjectController.java - Request fulfillment
backend/src/main/java/cn/photolib/request/RequestController.java - Photo management
backend/src/main/java/cn/photolib/photo/PhotoController.java - Batch upload
backend/src/main/java/cn/photolib/photo/batch/BatchUploadController.java - Image processing
backend/src/main/java/cn/photolib/photo/PhotoProcessingService.java - Native image engine
backend/native/src/vips_bridge.c - Adoption records
backend/src/main/java/cn/photolib/adoption/AdoptionController.java - Work hours
backend/src/main/java/cn/photolib/worklog/WorklogController.java
People and collaboration
- Campus directory
backend/src/main/java/cn/photolib/campus/CampusController.java - Notifications
backend/src/main/java/cn/photolib/notification/NotificationController.java
Operations
- Statistics and export
backend/src/main/java/cn/photolib/statistics/StatisticsController.java - Member recruitment
backend/src/main/java/cn/photolib/recruitment/RecruitmentPublicController.java - Featured collections
backend/src/main/java/cn/photolib/featured/FeaturedCollectionController.java - Surveys
backend/src/main/java/cn/photolib/survey/SurveyController.java - Administration
backend/src/main/java/cn/photolib/admin/AdminController.java - Database backup
backend/src/main/java/cn/photolib/backup/DatabaseBackupController.java
Platform services
- Object storage
backend/src/main/java/cn/photolib/storage/ObjectStorageService.java - Authentication and MFA
backend/src/main/java/cn/photolib/auth/AuthController.java
AI integration
- MCP service
mcp/photolib_mcp/server.py - MCP authorization
backend/src/main/java/cn/photolib/mcp/McpAuthorizationService.java
Other components
- Department users
- Web application
src/App.tsx - Aliyun OSS
Connections 27
- Department users → Web application: uses
- Web application → Projects and requests: manages projects
- Web application → Request fulfillment: fulfills requests
- Web application → Photo management: manages photos
- Request fulfillment → Photo management: submits images
- Web application → Batch upload: uploads batches
- Batch upload → Image processing: dispatches uploads
- Photo management → Image processing: processes images
- Image processing → Native image engine: decodes and encodes
- Photo management → Object storage: stores objects
- Image processing → Object storage: writes previews
- Object storage → Aliyun OSS: stores objects
- Web application → Campus directory: uses directory
- Web application → Adoption records: records adoption
- Web application → Work hours: submits hours
- Web application → Statistics and export: requests exports
- Web application → Member recruitment: publishes applications
- Web application → Featured collections: manages collections
- Web application → Surveys: manages surveys
- Web application → Notifications: sends messages
- Notifications → Aliyun OSS: delivers via
- Web application → Authentication and MFA: authenticates
- Web application → Administration: administers system
- Administration → Database backup: manages backups
- Department users → MCP service: requests AI actions
- MCP service → MCP authorization: requests authorization
- MCP authorization → Authentication and MFA: uses identity