JobTracker is a Java Application that helps users keep track of job applications for internship and full time positions! This application is intended for students and professionals at any stage of their career.
JobTracker.mp4
JobTracker is a personal Job board to add and track job applications in all their stages. This application allows users to provide information about jobs they have applied to, easily filter through applications and assign priorities to certain applications. JobTracker can also send reminder emails about applications with upcoming deadlines. Users can also use JobTracker's "Application Search" feature which allows users to search for job postings on LinkedIn and CareerOneStop within the program! The user can limit their search using keywords and JobTracker will display a list of associated jobs. The user can navigate to the original job posting, and easily add information about the application into JobTracker's system.
To start using JobTracker, a user must create an account. The system collects information about name, email, gender, age, experience, and keywords for the system to use when searching through LinkedIn and CareerOneStop. All of this information is stored locally in a CSV file, and is not used by JobTracker in any other way.
- Java 11
- Vaadin 23.2.2
- Spring boot 2.7.3
- Apache Maven 4.0.0
We also used Vaadin's "Building Modern Web Applications with Spring Boot and Vaadin" tutorial as a basic foundation for JobTracker. The source code can be found here. The starter was modified to fit our purposes and needs.
- Add, edit, and delete application information to/from the system.
- Search for applications by filtering by job application attributes or by searching by name.
- Send reminder emails for upcoming deadlines.
- Dashboard displaying applications by priority.
- Search for more jobs using APIs from supported platforms: CareerOneStop and Linkedin.
- Filter applications on the "Application Search" page by keywords.
You will need the following programs and packages installed on your local machine.
Programs:
- Java Development Kit
- Git
- Maven or Eclipse
- Clone the repository to your local machine
- Navigate to /JobTracker and run "mvn" on the command line
- Navigate to "localhost:8080" in your browser
- Press Ctr+c in the terminal to close the project
- Open Eclipse IDE. Install here if not already installed.
- Clone the project from GitHub Repo
- Cloning using EGit: Click On File > Import > Git > Projects From Git > Clone Uri > Paste HTTPS Repository Url > Select J2EE Branch > Next > Next > Finish
- Cloning using Git Bash:
git clone https://github.com/smarota17/JobTracker.git Click on File > Import > Existing Maven Project > Select Local Directory > Finish
- Right click on the Project Directory > Maven > Update Project
- Right Click on the Project Directory > Run As > Maven Clean \
- Right Click on the Project Directory > Run As > Maven Build
If the run configuration doesn't appear, use the following steps:- Right Click on the Project Directory > Run As > Run Configuration > Maven Build > Main > \
- select Base directory as "${project_loc:jobTracker}" \
- select Goals "spring-boot:run"
- Navigate to "localhost:8080" in your browser.
Note: In order to use the "Send Mail" functionality for this project, your team must set up an Outlook email account, and add the username and password to the SendMail.java class. You cannot use Gmail for this feature because Google set up a new restriction this year that doesn't allow third-party apps to send emails from Gmail accounts.
This project is a refactoring of the WolfTrack project from 2021, which uses Python as it's codebase. Besides changing the code structure from Python to Java, we have added several additional functionalities.
- The video comparing this project to the previous year's project with a similar project idea can be found here.
- The video showing the new functionalites of the Job tracker project in comparison to the previous year project here.
In order to learn more about how to run JobTracker and use its features, check out our USAGE.md file!
This project uses JavaDoc to document the source code. The JavaDoc can be accessed by clicking the JavaDoc badge or by navigating to the "javadoc" branch. The "javadoc" branch hosts all documentation, which is generated by the "Deploy javadoc" GitHub action.
JobTracker uses JaCoCo to generate the code coverage of the source code. Additionally, we use blackbox tests on the UI to supplement the coverage and ensure that the functionality works as expected.
While JobTracker is ready for users, there are several enhancements that could be made to amplify user experience. Below, we have listed several scopes of future improvements to JobTracker with a brief description.
- Database integration: Use a database system to persist data for each user. Currently, JobTracker saves all data in a CSV file (one for each user).
- Deployment server: Use Tomcat, Heroku, AWS, or a different cloud server for deployment to improve usability and make maintenance easier when fixing issues.
- Chart-based analysis: Introduce a quantitative or qualitative analysis for comparing jobs based on different charts. For example, a user could create a bar chart to compare jobs they have added based on salary insights.
- Chrome extension: Create a Chrome extension for JobTracker so users can add applications to the system from their browser.
- Link to other employment sites: Consider using other employment services such as Indeed and Glassdor to generate the list of jobs on the "Application Search" page. Currently, JobTracker is only connected to LinkedIn and CareerOneStop.
- Chatbot: Implement Chatbot capability that allows users to communicate effortlessly with the bot and learn about various elements of JobTracker.
- SMS notifications: Implement SMS notifications to supplement the email notification feature when reminding users of upcoming deadlines.
Please see the CONTRIBUTING.md for instructions on how to contribute to our repository.
This project is licensed under the Apache License 2.0.
The team members who developed JobTracker are:
- Huang-Xing (Jesse) Chen
- Landon Gaddy
- Li-Chia (Jerry) Chang
- Saminur (Sami) Islam
- Shruti Marota
We communicated via Discord and through weekly in-person meetings.
