How yconghua/grad-studio works
grad-studio is an offline-first Electron desktop platform for research-group administration and collaboration. The main workflow is role-based login and group selection, then daily work across meetings, projects/tasks, logs/reports, literature/knowledge, degree milestones, and outcomes; mentors and group administrators review and comment, while super administrators manage users/groups and inspect platform-wide data. Renderer requests cross the preload/IPC boundary into services and repositories backed by MySQL. The README documents these domain capabilities, but not every feature handler was sampled, so some internal connections are omitted rather than inferred.
Main entry points: pages Research workspaces · router/index.js Role routing · ipc/index.js IPC dispatch · BaseRepository.js Repository base
Components 26
Desktop client
- Login and setup
src/pages/auth/LoginView.vue - Role routing
src/router/index.js - Role navigation
src/layouts/HomeLayout.vue - Group context
src/composables/useGroupContext.js - Local session
src/composables/useSession.js - Research workspaces
src/pages - Renderer API
src/api/index.js - Secure bridge
electron/preload.js
Application services
- Electron runtime
electron/main.js - IPC dispatch
electron/ipc/index.js - Identity service
electron/services/authService.js - Domain services
electron/services - Global search
electron/services/searchService.js
Research workflows
- Group and user admin
src/pages/platform - Meetings and reports
src/pages/meeting - Projects and tasks
src/pages/subject - Logs and weekly reviews
src/pages/research-record - Literature and knowledge
src/pages/literature - Degree milestones
src/pages/degree - Research outcomes
src/pages/achievement - Group communication
src/pages/chat - Platform overview
src/pages/platform/overview
Persistence
- DB connection
electron/db/connection.js - Repository base
electron/db/repositories/BaseRepository.js - MySQL database
Other components
- Research staff
Connections 28
- Research staff → Login and setup: signs in
README.md - Login and setup → Role routing: enters app
src/router/index.js - Role routing → Local session: checks session
src/router/index.js - Role routing → Group context: loads groups
src/router/index.js - Role routing → Role navigation: routes to
src/router/index.js - Role navigation → Research workspaces: renders workspace
- Group context → Renderer API: requests groups
src/composables/useGroupContext.js - Research workspaces → Renderer API: requests data
src/api/index.js - Renderer API → Secure bridge: invokes bridge
src/api/index.js - Secure bridge → IPC dispatch: sends IPC
- Electron runtime → IPC dispatch: registers routes
electron/main.js - IPC dispatch → Identity service: dispatches auth
- IPC dispatch → Domain services: dispatches domain calls
- Identity service → Repository base: queries users
electron/services/authService.js - Domain services → Repository base: uses repositories
- Repository base → DB connection: acquires connection
electron/db/repositories/BaseRepository.js - DB connection → MySQL database: executes SQL
electron/db/connection.js - Domain services → Global search: includes search
electron/services/searchService.js - Global search → Repository base: queries search data
- Research workspaces → Group and user admin: includes administration
- Research workspaces → Meetings and reports: includes
- Research workspaces → Projects and tasks: includes
- Research workspaces → Logs and weekly reviews: includes
- Research workspaces → Literature and knowledge: includes
- Research workspaces → Degree milestones: includes
- Research workspaces → Research outcomes: includes
- Research workspaces → Group communication: includes
- Research workspaces → Platform overview: includes