Targo Timesheet PWA — modernized UI fork
Add warning dialog when changes in an employee profile are unsaved. Move schedule preset buttons from side of selector to side of each option in select menu. optimize behavior of selector: will now switch to empty when deleting currently assigned preset, and will assign automatically any new or copied preset to current employee. |
||
|---|---|---|
| public | ||
| src | ||
| .gitignore | ||
| .npmrc | ||
| docker-compose.yaml | ||
| Dockerfile | ||
| eslint.config.js | ||
| index.html | ||
| package-lock.json | ||
| package.json | ||
| postcss.config.js | ||
| quasar.config.ts | ||
| README.md | ||
| tsconfig.json | ||
🌐 Targo 2.0 Frontend
A modern, scalable frontend for managing employees, timesheets, and time-off requests in a rural ISP environment — built with Vue 3 and Quasar Framework.
🚀 Tech Stack
| Layer | Technology |
|---|---|
| UI Framework | Quasar (Vue 3) |
| Router | Vue Router 4 |
| State | Pinia |
| HTTP | Axios |
| Auth | OAuth2/OIDC (popup-based) via backend |
| i18n | Vue I18n |
| Build Tools | Vite (default) |
| Testing | (Planned) Vitest, Cypress |
📁 Project Structure
src/
├── boot/ # Initialization scripts (e.g. axios, auth)
├── modules/ # Feature modules
│ ├── dashboard/ # Role-based dashboards (admin, technician, etc.)
│ ├── auth/ # Login popup, logout flow
│ ├── users/ # User management
│ ├── shared/ # Common components, services, etc.
│ ├── time-sheet/ # Create, validate, export timesheets and expenses
│ ├── router/ # Vue Router config
│ ├── validations/ # ??????
│ ├── i18n/ # Internationalization references
│ ├── pages/ # Route-level pages (fallbacks, misc)
│ ├── stores/ # Pinia stores
│ ├── layouts/ # App shell (toolbar, drawer)
│ ├── css/ # Stylesheets
│ ├── assets/ # Images, styles, icons
└── App.vue # Root component
⚙️ Setup Instructions
1. Install Dependencies
npm install
# or
pnpm install
2. Start the Dev Server
quasar dev
3. Build for Production
quasar build
🥪 Testing (Planned)
# Unit tests (Vitest)
npm run test:unit
# E2E tests (Cypress)
npm run test:e2e
📦 Recommended Quasar Extensions
quasar ext add @quasar/pwa # PWA mode
quasar ext add @quasar/testing # Testing utils
🧹 Linting & Formatting
npm run lint
npm run format
Pre-commit hooks are managed with:
🧠 Notes
- All routes are prefixed for internal navigation.
- Common services and components live in
modules/shared/. - Avoid placing OIDC or sensitive logic in the frontend — everything auth-related is delegated to the backend.
📄 License
This project is proprietary and internal to [Targo Communication].