Targo Timesheet PWA — modernized UI fork
fix issue with mobile version of expense dialog where select menu for expense type was refusing to show on screen due to z-index behavior. switch q-select options dialog to menu behavior instead of dialog fix issue with timesheet presets not applying correctly due to user email being sent as query param on timesheet inadvertedly, which is a route reserved for timesheet approval module |
||
|---|---|---|
| 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].