JobTrackr is a production-grade full-stack MERN platform engineered to organize, monitor, and visualize both your job application search pipeline and your software project engineering portfolio.
From tracking interview stages to managing multi-component project architectures, environment variables (.env files), dual-hosted endpoints (Frontend & Backend URLs), and real-time recruitment analytics, JobTrackr delivers a modern, high-performance developer experience with dark/light mode support and instant reactivity.
- Multi-Component Architecture: Track complex projects composed of Frontend, Backend, Mobile Apps, Microservices, SDKs, or Custom CLI tools.
- Dual Hosted URLs (FE & BE): Track separate live deployment endpoints for Frontend (
https://my-app.vercel.app) and Backend API (https://api.render.com), or a single hosted URL. - Architecture Blueprints: One-click preset blueprints (BE & FE, Monolith, Pure Mobile, FE+BE+Mobile, Microservices, SDK).
- Environment Variable (
.env) Vault:- Component-level
.envblock management. - One-click secret masking/revealing toggle.
- Copy
.envto clipboard or download.envfile directly. - Support for shared
.envindicators and API consumption notes.
- Component-level
- Project Duplication: Instantly clone projects and architecture components.
- Multi-Format Exporting: Export project portfolios as JSON, CSV, or formatted Markdown reports.
- Pipeline Management: Create, edit, and track job applications with status, job location, company, and contract type (
full-time,part-time,internship). - Status Pills: Visual indicators for
Pending(Amber),Interview(Purple),Accepted(Green), andDeclined(Red).
- Space-Efficient Top Toolbars: Redesigned filter bars taking ~60% less screen height with micro-labels and 38px controls.
- One-Click Animated Reset: Animated refresh/reset icon button (
<FiRotateCcw />) for instant filter clearing. - Debounced Live Search: Real-time keyword filtering across project titles, descriptions, stack tags, company names, and repository URLs.
- Responsive Layouts: Seamless multi-column grid scaling across Desktop, Tablet, and Mobile smartphones.
- Zero-Delay Cache Invalidation: Adding, editing, or deleting projects/jobs immediately invalidates the React Query cache and updates the UI without page reloads.
- Tab Navigation Sync: Configured with
staleTime: 0andrefetchOnMount: 'always', ensuring navigating between sidebar tabs always fetches fresh data from the server.
- Platform Analytics: Interactive application velocity trend charts with toggleable Area Charts and Bar Charts.
- Status Distribution: Real-time Recharts Doughnut breakdown for job applications and project status metrics.
- System Administration Dashboard (Admin Only):
- System candidate roster & live platform application feed.
- Top target companies & top application locations leaderboards.
- One-click printable executive reports.
- Dark & Light Mode: Persistent slate palette themes with smooth transitions.
- JWT & HTTP-Only Cookies: Secure authentication flow with hashed passwords (
bcryptjs) and request validation.
- Framework: React 18 with Vite
- Styling: Styled Components + Modern CSS3 Tokens
- State & Query Cache: @tanstack/react-query
- Routing: React Router DOM v6 (Loaders & Actions)
- Data Visualizations: Recharts
- Icons: React Icons (Feather, FontAwesome, HiIcons)
- Notifications & Utilities: React Toastify, Day.js
- Runtime & Server: Node.js & Express.js
- Database: MongoDB via Mongoose ODM
- Auth & Security: JWT, bcryptjs, Helmet, express-validator
- File & Media Handling: Multer (with 5MB content-length safety limits), Cloudinary, Datauri
- Node.js (v18.0 or higher recommended)
- MongoDB (Local instance or MongoDB Atlas cluster connection URI)
git clone https://github.com/Timothy970/Job-Tracker.git
cd Job-Tracker# Install root (backend) dependencies
cmd /c npm install
# Install client (frontend) dependencies
cmd /c npm --prefix client installnpm run setup-projectCreate a .env file in the root directory:
cp .env.example .envConfigure .env settings:
PORT=5100
NODE_ENV=development
MONGO_URL=mongodb+srv://<username>:<password>@cluster.mongodb.net/JobTrackr?retryWrites=true&w=majority
JWT_SECRET=your_super_secret_jwt_key
JWT_EXPIRES_IN=1d
CLOUD_NAME=your_cloudinary_name
CLOUD_API_KEY=your_cloudinary_key
CLOUD_API_SECRET=your_cloudinary_secretLaunch both backend API server and frontend development server with hot reloading:
# Windows
cmd /c npm run dev
# macOS / Linux
npm run dev- Frontend Application: http://localhost:5173
- Backend API Server: http://localhost:5100
To build the optimized client bundle and serve via Express:
# Windows
cmd /c npm run setup-production-app
cmd /c npm start
# macOS / Linux
npm run setup-production-app
npm startAccess the application at http://localhost:5100.
| Method | Endpoint | Description | Access |
|---|---|---|---|
POST |
/api/v1/auth/register |
Register candidate account | Public |
POST |
/api/v1/auth/login |
Authenticate & issue JWT cookie | Public |
GET |
/api/v1/auth/logout |
Clear auth token cookie | Authenticated |
GET |
/api/v1/users/current-user |
Get profile details | Authenticated |
PATCH |
/api/v1/users/update-user |
Update profile info & avatar | Authenticated |
GET |
/api/v1/users/admin/app-stats |
Platform analytics & roster | Admin Only |
| Method | Endpoint | Description | Access |
|---|---|---|---|
GET |
/api/v1/projects |
List projects (paginated & filtered) | Authenticated |
POST |
/api/v1/projects |
Create new project & components | Authenticated |
GET |
/api/v1/projects/:id |
Get single project architecture | Authenticated |
PATCH |
/api/v1/projects/:id |
Update project & live URLs | Authenticated |
DELETE |
/api/v1/projects/:id |
Remove project | Authenticated |
GET |
/api/v1/projects/export |
Export portfolio (JSON/CSV/Markdown) | Authenticated |
GET |
/api/v1/projects/stats |
Project type & tech stack metrics | Authenticated |
| Method | Endpoint | Description | Access |
|---|---|---|---|
GET |
/api/v1/jobs |
List job applications (filtered) | Authenticated |
POST |
/api/v1/jobs |
Create job application | Authenticated |
GET |
/api/v1/jobs/:id |
Get single job details | Authenticated |
PATCH |
/api/v1/jobs/:id |
Update job application | Authenticated |
DELETE |
/api/v1/jobs/:id |
Remove job application | Authenticated |
GET |
/api/v1/jobs/stats |
Monthly application trends | Authenticated |
This project is licensed under the ISC License.