Skip to content

A simple job application tracker. Written in Java, exposes API to track your job application. No UI is provided at the moment

License

Notifications You must be signed in to change notification settings

motnip/job-application-tracker

Repository files navigation

Job Application Tracker

Description

The "Job application tracker" is a software helping me keep track of the job application i sent. Here I can record different information about the job, the most relevant are:

  • The day the application has been sent
  • The name of the company
  • When company replaied
  • If the process went further than the first HR interview

Technical note

The code is in Java with Spring Boot. The database is in-memory database HD. The database will be migrated to Postgresql and Docker file will be added.

Note

This project continuously evolve. Time to time there will be changes, improvements and new features. Scope of the project is to illustrate the way I work and develop software.

Application state

A job application process is described by states. The state of the application follows a state-machine, listed in the next paragraph.

The application states

  • WAITING : the application has been sent and waiting for a message from the company you applied for
  • IN_PROGRESS: the company replied positively and the interview process is going on
  • CONFIRMED : the application processes ended successfully. Offered accepted
  • REJECTED : The application ended unsuccessfully in any steps of the process.
  • CANCELED : The application has been ended by the applicant
  • EXPIRED : The company did not provide any answer

Application state machine

    graph TD;
        WAITING -->EXPIRED;
        WAITING --> REJECTED;
        WAITING --> IN_PROGRESS;
        IN_PROGRESS --> REJECTED;
        IN_PROGRESS --> CONFIRMED;
        IN_PROGRESS --> CANCELLED; 
Loading

API Reference

The Job application tracker answers to: http://localhost:8080/

Detailed API documentation can be find at: http://localhost:8080/swagger-ui/index.html

Job application APIs

List of API to handle application

Create new application

  POST /application
Body request
{
    "companyName": [String],
    "applicationDate":[String - yyyy-mm-dd],
    "description":[String - job description or link to it],
    "note":[String]
}

Update job application status with the date when the company reply

  PATCH /application/{{applicationId}}/firstContact-date
Parameter Type Description
applicationId Number application's ID
Body request
{
  "fistContactDate":[String - yyyy-mm-dd]
  "state": [REJECTED|IN_PROGRESS]
}

Change state of an existing application

  PATCH /application/{{applicationId}}/state?newstate=IN_PROGRES
Body request
Parameter Type Description
applicationId Number application's ID
newstate String EXPIRED,REJECTED,IN_PROGESS, CONFIRMED, CANCELLED

List all the application

  GET /application

Note about a job application APIs

List of API to handle note about an application

Add note to an existing application

  POST /application/{{applicationId}}/notes
Parameter Type Description
applicationId Number application's ID
{
    "text": [String]
}

List note of the give note

  GET /application/{{applicationId}}/notes
Parameter Type Description
applicationId Number application's ID

Run Locally

IN PROGRESS...

Clone the project

  git clone https://link-to-project

Go to the project directory

  cd my-project

🔗 Links

linkedin Medium Stack Overflow

About

A simple job application tracker. Written in Java, exposes API to track your job application. No UI is provided at the moment

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages