Targo Timesheet PWA — modernized UI fork
add field for extension in employee list, but will need to be manually entered from Facturation, current DB does not contain extensions. |
||
|---|---|---|
| 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].