{"id":31287819,"url":"https://github.com/c-elkins/it-asset-management","last_synced_at":"2025-09-24T11:21:37.675Z","repository":{"id":316338867,"uuid":"1062958900","full_name":"C-Elkins/IT-Asset-Management","owner":"C-Elkins","description":"IT asset management app (Spring Boot + React). Dockerized, CI, health checks, and E2E tests.","archived":false,"fork":false,"pushed_at":"2025-09-24T03:16:03.000Z","size":288,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-09-24T03:28:10.484Z","etag":null,"topics":["docker","github-actions","itam","react","spring-boot","vite"],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/C-Elkins.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-09-24T01:20:23.000Z","updated_at":"2025-09-24T03:16:07.000Z","dependencies_parsed_at":"2025-09-24T03:28:22.494Z","dependency_job_id":"01288e3a-5369-4f61-b7d1-a502ed6c7a86","html_url":"https://github.com/C-Elkins/IT-Asset-Management","commit_stats":null,"previous_names":["c-elkins/it-asset-management"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/C-Elkins/IT-Asset-Management","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/C-Elkins%2FIT-Asset-Management","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/C-Elkins%2FIT-Asset-Management/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/C-Elkins%2FIT-Asset-Management/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/C-Elkins%2FIT-Asset-Management/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/C-Elkins","download_url":"https://codeload.github.com/C-Elkins/IT-Asset-Management/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/C-Elkins%2FIT-Asset-Management/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":276737598,"owners_count":25695718,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-24T02:00:09.776Z","response_time":97,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","github-actions","itam","react","spring-boot","vite"],"created_at":"2025-09-24T11:21:32.194Z","updated_at":"2025-09-24T11:21:37.666Z","avatar_url":"https://github.com/C-Elkins.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# IT Asset Management System\n\nProduction-ready IT asset management app with a Spring Boot backend and a\nVite + React frontend.\n\n![CI](https://github.com/C-Elkins/IT-Asset-Management/actions/workflows/ci.yml/badge.svg)\n\n## Features\n\n- Asset inventory, categories, maintenance records\n- Auth flow with protected routes and inline errors\n- Robust error boundaries and guarded UI state\n- Stable JSON API with pagination-ready services\n- Dockerized stack (Postgres, backend, frontend) with health checks\n- CI for backend (Maven) and frontend (Node) + E2E smoke test (Playwright)\n\n## Project structure\n\n- `backend/` — Spring Boot (Java 17+, Maven) REST API\n- `frontend/` — React 19 (Vite) SPA served by nginx in prod\n- `docker-compose.yml` — Compose stack for DB + API + Web\n\n## Quick start\n\n1. Backend (dev)\n\n   - Requirements: Java 17+, Maven 3.9+\n   - Build and run:\n\n   ```bash\n   mvn spring-boot:run\n   ```\n\n2. Frontend (dev)\n\n   - Requirements: Node.js 20+\n   - Install and start:\n\n   ```bash\n   npm install\n   npm run dev\n   ```\n\n3. Docker (prod-like)\n\n   Build and run all services:\n\n   ```bash\n   docker compose up -d --build\n   ```\n\n   Services:\n\n   - Frontend: \u003chttp://localhost:3002\u003e (nginx serving Vite build)\n   - Backend: internal on 8080 in the Compose network\n   - Postgres: localhost:5432 (user/pass: iam/iam)\n\n   Health:\n\n   - Frontend: \u003chttp://localhost:3002/healthz\u003e\n   - Backend: \u003chttp://localhost:8080/api/v1/actuator/health\u003e (inside network)\n\n## Environment\n\n- Frontend dev proxy: `VITE_API_BASE=/api` (see `frontend/.env.development`)\n- Nginx runtime env: `BACKEND_ORIGIN` (defaults to `http://backend:8080`)\n\n## E2E smoke tests (Playwright)\n\nRun locally:\n\n```bash\ncd frontend\nnpm run build \u0026\u0026 npm run test:e2e\nnpm run test:e2e:report # optional\n```\n\n## Dev modes\n\n- Local dev (hot reload):\n  - Backend: `./mvnw spring-boot:run` in `backend`\n  - Frontend: `npm run dev` in `frontend` → \u003chttp://localhost:3001\u003e\n  - API proxied via Vite `/api` → \u003chttp://localhost:8080\u003e\n\n- Containerized dev:\n  - `docker compose up -d --build`\n  - Frontend → \u003chttp://localhost:3002\u003e\n  - Backend (Compose network) → `http://backend:8080`\n  - Nginx proxy uses BACKEND_ORIGIN env (default `http://backend:8080`)\n\n## VS Code tasks\n\nTasks are available under Terminal → Run Task:\n\n- dev:start backend — starts Spring Boot (scripted)\n- dev:start frontend — starts Vite dev server\n- dev:start all — runs both in parallel\n\n## CI\n\nCI builds:\n\n- Backend: Maven on Temurin 21\n- Frontend: Node 20 build + Playwright smoke tests\n- Triggers: push and PR to main\n\n## Contributing and Security\n\n- See [CONTRIBUTING.md](./CONTRIBUTING.md)\n- See [SECURITY.md](./SECURITY.md)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fc-elkins%2Fit-asset-management","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fc-elkins%2Fit-asset-management","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fc-elkins%2Fit-asset-management/lists"}