Targo Timesheet PWA — modernized UI fork
Timesheet: fix UI spaces with scrolling, change ui to not show preset apply if no preset set to employee. Layout Drawer: fix display of options according to user permissions, fix highlight of menu item to match current route name. Employee list: add functionality to prevent users without user management permissions to see or edit user info and prevent seeing inactive users, add remote to shifts for preset editor, add hover effect to employee items when management mode to visually hint at clickable item. |
||
|---|---|---|
| public | ||
| src | ||
| .gitignore | ||
| .npmrc | ||
| 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].