Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
64 changes: 64 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
name: CI

on:
push:
branches: [main, dev]
pull_request:
branches: [main, dev]

concurrency:
group: ci-${{ github.ref }}-${{ github.workflow }}
cancel-in-progress: true

jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [18.x, 20.x]

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: yarn
cache-dependency-path: yarn.lock

- name: Install dependencies
run: yarn install --frozen-lockfile

- name: Check vue-tsc availability
id: check_vuetsc
run: |
node -e "const p=require('./package.json'); process.exit(p.devDependencies && p.devDependencies['vue-tsc'] || p.dependencies && p.dependencies['vue-tsc'] ? 0 : 1)"
continue-on-error: true

- name: Type check
if: steps.check_vuetsc.outcome == 'success'
run: yarn vue-tsc --noEmit

- name: Check lint script availability
id: check_lint
run: |
node -e "const p=require('./package.json'); process.exit(p.scripts && p.scripts['lint'] ? 0 : 1)"
continue-on-error: true

- name: Lint
if: steps.check_lint.outcome == 'success'
run: yarn lint

- name: Build
env:
CI: true
run: yarn build

- name: Upload build artifact (PR only)
if: ${{ github.event_name == 'pull_request' }}
uses: actions/upload-artifact@v4
with:
name: dist-${{ matrix.node-version }}
path: dist
85 changes: 85 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
# Changelog

All notable changes to this project will be documented in this file.

## [Unreleased] - 2025-12-03

### Updated

- **Vuetify**: Upgraded from 3.5.6 to 3.11.0 (latest version)
- **Vue**: Updated to 3.5.13 with latest Composition API features
- **Vite**: Upgraded to 6.0.1 for improved build performance
- **TypeScript**: Updated to 5.7.2
- **Pinia**: Updated to 2.2.8
- **Vue Router**: Updated to 4.4.5
- **Vue I18n**: Updated to 10.0.5
- All other dependencies updated to their latest stable versions

### Added

- **Composables** (DRY Principle):
- `useDrawer`: Reusable drawer state management
- `useApi`: Generic API call handler with loading/error states
- `useFormValidation`: Common form validation rules
- Centralized composables export in `src/composables/index.ts`

- **Theme Constants**: Extracted theme colors and variables to `src/plugins/vuetify/constants.ts` for better maintainability

- **Documentation**:
- Enhanced README with modern project structure
- Added tech stack section
- Added browser support information
- Added Star History chart
- Improved getting started guide
- Added configuration documentation

### Changed

- **Vuetify Plugin**:
- Removed manual component imports (using auto-import)
- Switched to VuetifyDateAdapter (built-in)
- Added explicit 'vuetify/styles' import
- Cleaner plugin configuration

- **Main.ts**:
- Reorganized plugin registration order
- Added comments for better code organization
- Grouped style imports

- **Vite Config**:
- Updated to use `node:url` import (Node.js best practice)
- Added build optimization with manual chunks
- Configured modern SCSS compiler API
- Improved code splitting strategy
- Better dependency optimization

- **AppSidebar**:
- Refactored to use `useDrawer` composable
- Cleaner computed properties
- Improved code readability
- Fixed register route bug

- **Theme Configuration**:
- Refactored to use constants (DRY principle)
- Reduced code duplication
- Easier to maintain and customize

### Best Practices Applied

- ✅ Composition API with `<script setup>`
- ✅ TypeScript strict mode
- ✅ DRY (Don't Repeat Yourself) principle
- ✅ Separation of concerns
- ✅ Reusable composables
- ✅ Modern ES modules
- ✅ Tree-shaking optimization
- ✅ Code splitting for better performance
- ✅ Centralized configuration

### Performance Improvements

- Optimized Vite build configuration
- Manual chunk splitting for better caching
- Modern SCSS compiler for faster builds
- Removed unnecessary component imports
- Better tree-shaking with latest dependencies
Loading
Loading