Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
8db1bec
feat: migrate from react context to zustand
dimastriann Apr 28, 2026
eb26d28
feat: added additional fields
dimastriann May 9, 2026
8d9a4c2
feat: improve view style
dimastriann May 13, 2026
7a635db
feat: lint and formatting
dimastriann May 13, 2026
5c034bc
feat: implement project homepage, auth pages, and UI layout with them…
dimastriann May 16, 2026
82f41fc
feat: implement comprehensive frontend theme
dimastriann May 16, 2026
8682966
feat: implement premium select option, improve native html
dimastriann May 16, 2026
6a8c6de
ref: consolidate security, infrastructure, soft deletes, and migrate …
dimastriann May 25, 2026
577c642
feat(dashboard): extend analytics DTO and service with aggregation qu…
dimastriann May 26, 2026
d2848a5
feat(dashboard): add recharts widgets — KPI cards, charts, deadline a…
dimastriann May 26, 2026
34525b7
feat(calendar): add FullCalendar page with drag-reschedule and event …
dimastriann May 26, 2026
865af71
feat(gantt): add custom CSS Grid timeline with zoom, today line, and …
dimastriann May 26, 2026
11c45fb
feat: add global command palette (Ctrl+K) with fuzzy search
dimastriann May 26, 2026
1117ce7
feat: add persistent timer widget with auto-timesheet creation
dimastriann May 26, 2026
358f9e3
chore: wire calendar, timeline routes, timer, and command palette int…
dimastriann May 26, 2026
3cb3a7a
feat: global exception, depth limit, end validation
dimastriann May 26, 2026
5bcd137
refactor(typesafety): resolve all typescript and eslint warnings/errors
dimastriann May 27, 2026
97806ea
test: fix frontend form unit tests, add Select testability, and clean…
dimastriann May 29, 2026
2266e09
fix(backend): resolve TypeScript TS2367 build error in exception filt…
dimastriann May 29, 2026
3310300
fix: fix context type
dimastriann May 29, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
77 changes: 77 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
name: CI/CD Pipeline

on:
push:
branches: [ main, master, dev ]
pull_request:
branches: [ main, master, dev ]

jobs:
backend-lint-test-build:
name: Backend CI
runs-on: ubuntu-latest

steps:
- name: Checkout Repository
uses: actions/checkout@v4

- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'
cache-dependency-path: backend/package-lock.json

- name: Install System Dependencies
run: sudo apt-get update && sudo apt-get install -y build-essential

- name: Install Backend Dependencies
working-directory: ./backend
run: npm ci

- name: Generate Prisma Client
working-directory: ./backend
run: npx prisma generate

- name: Run Eslint
working-directory: ./backend
run: npm run lint

- name: Run Backend Tests
working-directory: ./backend
run: npm run test -- --passWithNoTests

- name: Build Backend
working-directory: ./backend
run: npm run build

frontend-lint-test-build:
name: Frontend CI
runs-on: ubuntu-latest

steps:
- name: Checkout Repository
uses: actions/checkout@v4

- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'
cache-dependency-path: frontend/package-lock.json

- name: Install Frontend Dependencies
working-directory: ./frontend
run: npm ci

- name: Run Eslint
working-directory: ./frontend
run: npm run lint

- name: Run Frontend Tests
working-directory: ./frontend
run: npm run test run

- name: Build Frontend
working-directory: ./frontend
run: npm run build
4 changes: 2 additions & 2 deletions backend/eslint.config.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import tseslint from 'typescript-eslint';

export default tseslint.config(
{
ignores: ['eslint.config.mjs'],
ignores: ['eslint.config.mjs', '**/*.spec.ts', '**/*.test.ts'],
},
eslint.configs.recommended,
...tseslint.configs.recommendedTypeChecked,
Expand All @@ -28,7 +28,7 @@ export default tseslint.config(
rules: {
'@typescript-eslint/no-explicit-any': 'off',
'@typescript-eslint/no-floating-promises': 'warn',
'@typescript-eslint/no-unsafe-argument': 'warn'
'@typescript-eslint/no-unsafe-argument': 'warn',
},
},
);
299 changes: 299 additions & 0 deletions backend/eslint_errors.txt

Large diffs are not rendered by default.

42 changes: 39 additions & 3 deletions backend/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 5 additions & 1 deletion backend/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@
"@nestjs/passport": "^11.0.5",
"@nestjs/platform-express": "^11.0.1",
"@nestjs/platform-socket.io": "^11.1.12",
"@nestjs/throttler": "^6.2.1",
"@nestjs/websockets": "^11.1.12",
"@prisma/adapter-pg": "^7.2.0",
"@prisma/client": "^7.2.0",
Expand All @@ -44,14 +45,17 @@
"class-validator": "^0.14.3",
"cookie-parser": "^1.4.7",
"graphql": "^16.11.0",
"graphql-subscriptions": "^3.0.0",
"graphql-upload-ts": "^2.1.3",
"helmet": "^8.0.0",
"link-preview-js": "^4.0.0",
"passport": "^0.7.0",
"passport-jwt": "^4.0.1",
"pg": "^8.16.3",
"reflect-metadata": "^0.2.2",
"rxjs": "^7.8.1",
"socket.io": "^4.8.3"
"socket.io": "^4.8.3",
"xss": "^1.0.15"
},
"devDependencies": {
"@eslint/eslintrc": "^3.2.0",
Expand Down
Loading
Loading