# Project Tasks - [x] [Task 1] Global Message Component, API Encapsulation, and Login/Logout Integration - [x] Check/Implement Global Message Component - [x] Install axios - [x] Create `src/service/request/index.ts` - [x] Create `src/service/api/auth.ts` - [x] Update `src/stores/user.ts` (Pinia + Persistence) - [x] Integrate Login/Logout in `TheNavigation.vue` - [x] Install crypto-js and types - [x] Configure API secret in environment variables - [x] Update Axios request interceptor with signature logic - [x] Fix CORS by updating VITE_API_BASE_URL - [x] Refactor vite.config.ts to use loadEnv for dynamic proxy configuration - [x] Update .env.development with VITE_API_PROXY_TARGET - [x] Prioritize backend error message in Axios response interceptor - [x] Check TheNavigation.vue for reactive user state usage - [x] Update TheNavigation.vue template to toggle Login/User info based on store state - [x] [Task 2] Score API Encapsulation and Business Integration - [x] Create `src/service/api/score.ts` with types - [x] Create `src/stores/score.ts` - [x] Integrate Get Score in `TheNavigation.vue` - [x] Integrate Save Score in `ScoreForm.vue` - [x] [Task 3] Enhance WMessage Component - [x] Add position support to `src/utils/message.ts` (top/bottom/left/right/center) - [x] [Task 4] Implement Fullscreen Loading - [x] Create `src/components/ui/WLoading.vue` - [x] Create `src/utils/loading.ts` logic - [x] Update `src/service/request/index.ts` to handle `showLoading` parameter - [x] [Task 5] Improve Sidebar and Add Legal Pages - [x] Improve empty sidebar layout in `src/pages/index.vue` - [x] Create `src/pages/agreement.vue` with content - [x] Create `src/pages/privacy-policy.vue` with content - [x] Update legal pages with company info from `Task3.md`