# ๐ŸŒ 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](https://vuejs.org/) and [Quasar Framework](https://quasar.dev/). --- ## ๐Ÿš€ Tech Stack | Layer | Technology | | ------------ | ------------------------------------- | | UI Framework | [Quasar (Vue 3)](https://quasar.dev/) | | 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 ```bash 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 ```bash npm install # or pnpm install ``` ### 2. Start the Dev Server ```bash quasar dev ``` ### 3. Build for Production ```bash quasar build ``` --- ## ๐Ÿฅช Testing (Planned) ```bash # Unit tests (Vitest) npm run test:unit # E2E tests (Cypress) npm run test:e2e ``` --- ## ๐Ÿ“ฆ Recommended Quasar Extensions ```bash quasar ext add @quasar/pwa # PWA mode quasar ext add @quasar/testing # Testing utils ``` --- ## ๐Ÿงน Linting & Formatting ```bash npm run lint npm run format ``` Pre-commit hooks are managed with: * [husky](https://github.com/typicode/husky) * [lint-staged](https://github.com/okonet/lint-staged) --- ## ๐Ÿง  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]**.