62 lines
2.1 KiB
Markdown
62 lines
2.1 KiB
Markdown
# Job Tracker
|
|
|
|
Job Tracker (Jobjakt) is a self-hosted workspace for managing job applications, companies, correspondence, follow-ups, attachments, career profiles, CVs, and optional local/private AI assistance.
|
|
|
|
## Stack
|
|
|
|
- Next.js 16 / React 19 / TypeScript / MUI frontend
|
|
- ASP.NET Core 9 / EF Core 9 API
|
|
- MariaDB across development, integration testing, CI and production; SQLite retained only during staged retirement
|
|
- FastAPI document/AI service with optional Ollama, Gemini, or Groq CV routing
|
|
- Docker Compose + nginx; Gitea Actions deployment
|
|
|
|
## Quick start
|
|
|
|
Prerequisites: .NET SDK 9, Node.js 24/npm, and Docker Compose for the full stack.
|
|
|
|
For Docker, copy `.env.example` to `.env`, fill required values, then run:
|
|
|
|
```powershell
|
|
docker compose -f docker-compose.yml -f docker-compose.dev.yml up --build
|
|
```
|
|
|
|
Open `http://localhost:3000`. The API is available at `http://localhost:5202` in local process development.
|
|
|
|
For local processes, start the separate persistent development database first:
|
|
|
|
```powershell
|
|
docker compose -f docker-compose.database.yml up -d --wait mariadb-dev
|
|
```
|
|
|
|
Then run the API/UI below. Development settings use only the loopback `jobtracker_dev` database;
|
|
startup applies the existing migrations. [MariaDB setup and qualification](docs/database/mariadb-standardisation/README.md)
|
|
documents the pinned server, disposable integration lane, credentials and data-preservation rules.
|
|
|
|
```powershell
|
|
cd JobTrackerApi
|
|
dotnet restore --locked-mode
|
|
dotnet run
|
|
|
|
cd ..\job-tracker-ui
|
|
npm ci
|
|
npm run dev
|
|
```
|
|
|
|
## Quality checks
|
|
|
|
```powershell
|
|
dotnet test JobTrackerApi.Tests/JobTrackerApi.Tests.csproj --no-restore
|
|
python scripts/mariadb-integration.py
|
|
cd job-tracker-ui
|
|
npm run lint
|
|
npm test -- --runInBand
|
|
npm run typecheck
|
|
npm run build
|
|
```
|
|
|
|
Run browser tests with `npx playwright install chromium` once, followed by `npm run test:e2e` from `job-tracker-ui/`.
|
|
|
|
## Documentation
|
|
|
|
Start at [docs/README.md](docs/README.md) for architecture, configuration, frontend/backend guides, AI, database, security, infrastructure, testing, and remaining work. Production/external blockers remain in [BLOCKERS.md](BLOCKERS.md).
|