A React web application for tracking job applications, organizing target companies, prioritizing preferred roles, and monitoring progress through dashboards.
The main project is located in the job-tracker folder.
- Job application tracking with search, filters, pagination, and statuses.
- Analytics dashboard with charts.
- Company management by category.
- Preferred role ranking by priority.
- Excel import and export.
- French and English interface.
- Light/dark theme.
- Local persistence by default through
localStorage.
- React 19
- Vite
- Tailwind CSS
- Recharts
- Lucide React
- XLSX
Install the following tools before running the project:
- Node.js
20.19.0or newer, or Node.js22.12.0or newer - npm
- Git
You can check your versions with:
node --version
npm --version
git --versionClone the repository, then install the application dependencies:
git clone <repository-url>
cd job-application-tracking-spreadsheet/job-tracker
npm installIf you are working from a ZIP archive, open a terminal in the project folder, move into job-tracker, then run npm install.
The project uses Vite environment variables. An example file is already available:
cp .env.example .env.localRecommended configuration for running the application without a backend:
VITE_DATA_SOURCE=local
VITE_API_URL=http://localhost:8000With VITE_DATA_SOURCE=local, data is stored in the browser's localStorage. This is the simplest mode for testing or using the application locally.
The api mode also exists, but it requires a backend compatible with the following routes:
GET /api/applicationsGET /api/applications/:idPOST /api/applicationsPUT /api/applications/:idDELETE /api/applications/:idPUT /api/applicationsGET /api/company-categoriesPUT /api/company-categories
In that case, configure:
VITE_DATA_SOURCE=api
VITE_API_URL=http://localhost:8000From the job-tracker folder, run:
npm run devVite will print a local URL, usually:
http://localhost:5173
Open that URL in your browser.
All commands below must be run from job-tracker.
npm run devStarts the Vite development server.
npm run buildBuilds the production version into the dist folder.
npm run previewStarts a local server to preview the production build.
npm run lintChecks the code with ESLint.
npm run secrets:checkScans for committed secrets with Gitleaks.
In local mode, applications and company categories are saved in the browser under these localStorage keys:
job-tracker/applicationsjob-tracker/company-categories
Data remains available after a page reload, but it depends on the browser and user profile. To avoid losing data, regularly use the built-in Excel export.
The application can export applications to Excel and import a file later. This is useful for:
- creating a local backup;
- moving data to another browser;
- restoring data after clearing
localStorage.
job-application-tracking-spreadsheet/
├── README.md
├── TODO.md
└── job-tracker/
├── public/
├── src/
│ ├── data/
│ ├── features/jobApplications/
│ ├── styles/
│ └── utils/
├── package.json
└── vite.config.js
If npm install fails, check your Node.js version, delete node_modules, then run the installation again.
If the page is blank or data does not load, make sure VITE_DATA_SOURCE=local is defined in .env.local.
If port 5173 is already in use, Vite will automatically suggest another port in the terminal.
If you use api mode, make sure the backend is running, VITE_API_URL points to the correct URL, and the server accepts requests with cookies if authentication is enabled.
This project is distributed under the MIT license. See LICENSE for more information.