How faginr/job-tracker works
Job Tracker is a web app for organizing job and internship searches: users manage applications, contacts, and skills, including links between them and skill proficiency. The main flow is sign-in, browse or edit personal records in the React UI, send authenticated requests to the API, and persist changes in the datastore. The README also documents adding and searching records and linking contacts and skills to applications. Backend route wiring and application CRUD are sampled; other route behavior is inferred only at the capability level from the README and tree.
Main entry points: index.js Route mounting · model.js Datastore model · applications.js Application routes · App.js React app
Components 22
Web interface
- React app
react-frontend/src/App.js - Applications UI
react-frontend/src/pages/ApplicationPage.js - Edit application
react-frontend/src/pages/EditApplicationPage.js - Contacts UI
react-frontend/src/pages/ContactPage.js - Skills UI
react-frontend/src/pages/SkillPage.js - API requests
react-frontend/src/data_model/fetchRequests.js
Identity
- Auth provider
react-frontend/src/components/Auth0WithNavigate.js - Token helper
react-frontend/src/utils/Auth0Functions.js
Backend API
- HTTP server
datastore-backend/server.js - Route mounting
datastore-backend/index.js - Application routes
datastore-backend/routes/applications.js - Contact routes
datastore-backend/routes/contacts.js - Skill routes
datastore-backend/routes/skills.js - User skill routes
datastore-backend/routes/userSkills.js - App skill routes
datastore-backend/routes/userAppSkills.js - User routes
datastore-backend/routes/users.js - JWT verification
datastore-backend/routes/middleware/verifyUser.js
Persistence
- Datastore model
datastore-backend/model.js - Datastore client
datastore-backend/datastore.js - Persistent records
Other components
- Job seeker
- Auth0
Connections 26
- Job seeker → React app: uses
- React app → Applications UI: routes to
- React app → Contacts UI: routes to
- React app → Skills UI: routes to
- Job seeker → Auth provider: signs in
- Auth provider → Auth0: authenticates
- Token helper → Auth0: gets token
- Edit application → Token helper: requests token
- Edit application → Application routes: PATCH request
- API requests → Application routes: API requests
- HTTP server → Route mounting: mounts routes
- Route mounting → Application routes: mounts
- Route mounting → Contact routes: mounts
- Route mounting → User routes: mounts
- Route mounting → User skill routes: mounts
- Route mounting → App skill routes: mounts
- Route mounting → Skill routes: mounts
- Application routes → JWT verification: checks user
- Application routes → Datastore model: reads and writes
- Contact routes → Datastore model: reads and writes
- Skill routes → Datastore model: reads and writes
- User skill routes → Datastore model: reads and writes
- App skill routes → Datastore model: reads and writes
- User routes → Datastore model: reads and writes
- Datastore model → Datastore client: uses client
- Datastore client → Persistent records: persists data