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
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.
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.
A job application process is described by states. The state of the application follows a state-machine, listed in the next paragraph.
- 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
graph TD;
WAITING -->EXPIRED;
WAITING --> REJECTED;
WAITING --> IN_PROGRESS;
IN_PROGRESS --> REJECTED;
IN_PROGRESS --> CONFIRMED;
IN_PROGRESS --> CANCELLED;
The Job application tracker answers to: http://localhost:8080/
Detailed API documentation can be find at: http://localhost:8080/swagger-ui/index.html
List of API to handle application
POST /application
{
"companyName": [String],
"applicationDate":[String - yyyy-mm-dd],
"description":[String - job description or link to it],
"note":[String]
}
PATCH /application/{{applicationId}}/firstContact-date
Parameter | Type | Description |
---|---|---|
applicationId | Number | application's ID |
{
"fistContactDate":[String - yyyy-mm-dd]
"state": [REJECTED|IN_PROGRESS]
}
PATCH /application/{{applicationId}}/state?newstate=IN_PROGRES
Parameter | Type | Description |
---|---|---|
applicationId | Number | application's ID |
newstate | String | EXPIRED,REJECTED,IN_PROGESS, CONFIRMED, CANCELLED |
GET /application
List of API to handle note about an application
POST /application/{{applicationId}}/notes
Parameter | Type | Description |
---|---|---|
applicationId | Number | application's ID |
{
"text": [String]
}
GET /application/{{applicationId}}/notes
Parameter | Type | Description |
---|---|---|
applicationId | Number | application's ID |
IN PROGRESS...
Clone the project
git clone https://link-to-project
Go to the project directory
cd my-project