video_demo.mp4
Job Tracker is a small full stack application for managing and tracking job applications.
The idea behind the project is to have a single place where I can save interesting job offers, track the status of each application, and keep useful information such as salary range, contract type, recruiter contact, job post link, and personal notes.
I built this project to learn how to create full stack applications and to become more confident with C#, ASP.NET Core, and API development connected to a modern frontend.
The app allows users to manage job opportunities through a simple web interface.
For each job offer, it is possible to store:
- company
- role
- location
- minimum and maximum salary range
- contract type
- application status
- application date
- contact person
- job post link
- personal notes
The goal is to simulate a small real-world management application: more complete than a basic todo app, but still simple enough to build step by step.
The project currently includes the main CRUD features:
- view the list of job offers
- add a new job offer
- edit an existing job offer
- delete a job offer
- confirmation before deleting an offer
- basic form validation
- immediate list update after creating, editing, or deleting an offer
- frontend-backend connection check
Edit and delete actions are available directly on each job card. The action buttons appear when hovering over a job application card.
Backend:
- C#
- ASP.NET Core Web API
- .NET 10
- Entity Framework Core
- PostgreSQL
Frontend:
- Modern Angular
- TypeScript
- Reactive Forms
- SCSS
- Bootstrap
Tools:
- Angular CLI
- npm
- dotnet-ef
- Vitest for frontend tests
This is an initial working version focused on validating the complete application flow:
Angular frontend -> HTTP request -> ASP.NET Core backend -> Entity Framework Core -> PostgreSQL -> JSON response -> UI update
Job applications are persisted in PostgreSQL through Entity Framework Core. The backend includes migrations that create and update the job_applications table.
Planned next steps include:
- filters by status, contract type, and company
- text search
- sorting job applications
- user authentication
- dashboard with statistics
- notes and reminders connected to job applications
jobtraci/
├── JobTracker.Api/ ASP.NET Core backend
├── frontend/ Angular frontend
├── JobTracker.slnx
└── README.md
You need:
- .NET SDK 10
- Node.js
- npm
- Angular CLI
- PostgreSQL
- dotnet-ef
You can check your installations with:
dotnet --version
node -v
npm -v
ng version
dotnet ef --version
psql --versionCreate a local PostgreSQL database and user matching the development connection string:
sudo -u postgres psqlInside psql:
CREATE USER jobtracker_user WITH PASSWORD 'devpassword';
CREATE DATABASE jobtracker_dev OWNER jobtracker_user;
\qThe development connection string is defined in JobTracker.Api/appsettings.Development.json:
Host=localhost;Port=5432;Database=jobtracker_dev;Username=jobtracker_user;Password=devpassword
This is only a local development setup. Use a different password or environment-specific configuration for anything outside local development.
From the repository root:
dotnet restore JobTracker.slnxThen install the frontend dependencies:
cd frontend
npm installApply the Entity Framework migration:
cd ..
dotnet ef database update --project JobTracker.Api/JobTracker.Api.csproj --startup-project JobTracker.Api/JobTracker.Api.csprojFrom the repository root:
dotnet run --project JobTracker.Api/JobTracker.Api.csprojThe backend will be available at:
http://localhost:5000
In a second terminal:
cd frontend
npm startThe frontend will be available at:
http://localhost:4200
If Angular starts on http://127.0.0.1:4200, that is fine too: the backend is already configured to accept that origin.
Build backend:
dotnet build JobTracker.slnxBuild frontend:
cd frontend
npm run buildRun frontend tests:
cd frontend
npm test -- --watch=falseAdd a new Entity Framework migration after changing backend models:
dotnet ef migrations add MigrationName --project JobTracker.Api/JobTracker.Api.csproj --startup-project JobTracker.Api/JobTracker.Api.csproj --output-dir MigrationsThis project is a work in progress and was mainly created as a practical exercise to learn full stack development with C#, ASP.NET Core, and Angular.