Science Score: 54.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
    Links to: zenodo.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (10.5%) to scientific vocabulary
Last synced: 6 months ago · JSON representation ·

Repository

Basic Info
  • Host: GitHub
  • Owner: smarota17
  • License: apache-2.0
  • Language: Java
  • Default Branch: main
  • Size: 2.26 MB
Statistics
  • Stars: 0
  • Watchers: 2
  • Forks: 2
  • Open Issues: 0
  • Releases: 1
Created over 3 years ago · Last pushed over 3 years ago
Metadata Files
Readme Contributing License Code of conduct Citation

README.md

JobTracker

DOI License java size lang contrib issue op issue cl pull pull_closed Coverage Javadoc GitHub Workflow Status

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.

https://user-images.githubusercontent.com/70153150/194409299-52adb84c-05f5-48d2-a237-0f302becfe2b.mp4

Description

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.

Technologies

java react spring js

  • 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.

Features

  • 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.

Installation

You will need the following programs and packages installed on your local machine.

Programs:

  • Java Development Kit
  • Git
  • Maven or Eclipse

Setup Option 1: Command Line (Requires Maven)

  1. Clone the repository to your local machine
  2. Navigate to /JobTracker and run "mvn" on the command line
  3. Navigate to "localhost:8080" in your browser
  4. Press Ctr+c in the terminal to close the project

Setup Option 2: Eclipse (Requires Eclipse)

  1. Open Eclipse IDE. Install here if not already installed.
  2. 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
  3. Right click on the Project Directory > Maven > Update Project
  4. Right Click on the Project Directory > Run As > Maven Clean \
  5. 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"
  6. 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.

Documentation

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.

Use Cases

In order to learn more about how to run JobTracker and use its features, check out our USAGE.md file!

JavaDoc

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.

Code Coverage

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.

Future Features

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.

Contribution

Please see the CONTRIBUTING.md for instructions on how to contribute to our repository.

License

This project is licensed under the Apache License 2.0.

Team Members

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.
Screenshot (531)

Owner

  • Name: Shruti Marota
  • Login: smarota17
  • Kind: user

Citation (CITATION.cff)

# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!

cff-version: 1.2.0
title: Job Tracker
message: >-
  If you use this software, please cite it using the
  metadata from this file.
type: software
authors:
  - given-names: Shruti
    family-names: Marota
    email: smarota@ncsu.edu
    affiliation: North Carolina State University
  - given-names: Landon
    family-names: Gaddy
    email: rlgaddy@ncsu.edu
    affiliation: North Carolina State University
  - given-names: Huangxing
    family-names: Chen
    affiliation: North Carolina State University
  - given-names: Saminur
    family-names: Islam
    email: sislam8@ncsu.edu
    affiliation: North Carolina State University
  - given-names: ' Li-Chia'
    family-names: Chang
    affiliation: North Carolina State University
version: 1.0.0
date-released: 10-06-2022
doi: 10.5281/zenodo.7154376
url: https://github.com/smarota17/JobTracker

GitHub Events

Total
Last Year

Dependencies

package.json npm
  • @rollup/plugin-replace 3.1.0 development
  • @rollup/pluginutils 4.1.0 development
  • async 3.2.2 development
  • glob 7.2.3 development
  • mkdirp 1.0.4 development
  • rollup-plugin-brotli 3.1.0 development
  • transform-ast 2.4.4 development
  • typescript 4.7.4 development
  • vite v3.0.9 development
  • vite-plugin-checker 0.4.9 development
  • workbox-build 6.5.0 development
  • workbox-core 6.5.0 development
  • workbox-precaching 6.5.0 development
  • @polymer/iron-icon 3.0.1
  • @polymer/iron-iconset-svg 3.0.1
  • @polymer/iron-list 3.1.0
  • @polymer/iron-meta 3.0.1
  • @polymer/iron-resizable-behavior 3.0.1
  • @polymer/polymer 3.5.1
  • @vaadin/accordion 23.2.0
  • @vaadin/app-layout 23.2.0
  • @vaadin/avatar 23.2.0
  • @vaadin/avatar-group 23.2.0
  • @vaadin/bundles 23.2.0
  • @vaadin/button 23.2.0
  • @vaadin/checkbox 23.2.0
  • @vaadin/checkbox-group 23.2.0
  • @vaadin/combo-box 23.2.0
  • @vaadin/common-frontend 0.0.17
  • @vaadin/component-base 23.2.0
  • @vaadin/context-menu 23.2.0
  • @vaadin/custom-field 23.2.0
  • @vaadin/date-picker 23.2.0
  • @vaadin/date-time-picker 23.2.0
  • @vaadin/details 23.2.0
  • @vaadin/dialog 23.2.0
  • @vaadin/email-field 23.2.0
  • @vaadin/field-base 23.2.0
  • @vaadin/field-highlighter 23.2.0
  • @vaadin/flow-frontend ./build/flow-frontend
  • @vaadin/form-layout 23.2.0
  • @vaadin/grid 23.2.0
  • @vaadin/horizontal-layout 23.2.0
  • @vaadin/icon 23.2.0
  • @vaadin/icons 23.2.0
  • @vaadin/input-container 23.2.0
  • @vaadin/integer-field 23.2.0
  • @vaadin/item 23.2.0
  • @vaadin/list-box 23.2.0
  • @vaadin/lit-renderer 23.2.0
  • @vaadin/login 23.2.0
  • @vaadin/menu-bar 23.2.0
  • @vaadin/message-input 23.2.0
  • @vaadin/message-list 23.2.0
  • @vaadin/multi-select-combo-box 23.2.0
  • @vaadin/notification 23.2.0
  • @vaadin/number-field 23.2.0
  • @vaadin/password-field 23.2.0
  • @vaadin/polymer-legacy-adapter 23.2.0
  • @vaadin/progress-bar 23.2.0
  • @vaadin/radio-group 23.2.0
  • @vaadin/router 1.7.4
  • @vaadin/scroller 23.2.0
  • @vaadin/select 23.2.0
  • @vaadin/split-layout 23.2.0
  • @vaadin/tabs 23.2.0
  • @vaadin/text-area 23.2.0
  • @vaadin/text-field 23.2.0
  • @vaadin/time-picker 23.2.0
  • @vaadin/upload 23.2.0
  • @vaadin/vaadin-accordion 23.2.0
  • @vaadin/vaadin-app-layout 23.2.0
  • @vaadin/vaadin-avatar 23.2.0
  • @vaadin/vaadin-button 23.2.0
  • @vaadin/vaadin-checkbox 23.2.0
  • @vaadin/vaadin-combo-box 23.2.0
  • @vaadin/vaadin-context-menu 23.2.0
  • @vaadin/vaadin-custom-field 23.2.0
  • @vaadin/vaadin-date-picker 23.2.0
  • @vaadin/vaadin-date-time-picker 23.2.0
  • @vaadin/vaadin-details 23.2.0
  • @vaadin/vaadin-development-mode-detector 2.0.5
  • @vaadin/vaadin-dialog 23.2.0
  • @vaadin/vaadin-form-layout 23.2.0
  • @vaadin/vaadin-grid 23.2.0
  • @vaadin/vaadin-icon 23.2.0
  • @vaadin/vaadin-icons 23.2.0
  • @vaadin/vaadin-item 23.2.0
  • @vaadin/vaadin-list-box 23.2.0
  • @vaadin/vaadin-list-mixin 23.2.0
  • @vaadin/vaadin-login 23.2.0
  • @vaadin/vaadin-lumo-styles 23.2.0
  • @vaadin/vaadin-material-styles 23.2.0
  • @vaadin/vaadin-menu-bar 23.2.0
  • @vaadin/vaadin-messages 23.2.0
  • @vaadin/vaadin-notification 23.2.0
  • @vaadin/vaadin-ordered-layout 23.2.0
  • @vaadin/vaadin-overlay 23.2.0
  • @vaadin/vaadin-progress-bar 23.2.0
  • @vaadin/vaadin-radio-button 23.2.0
  • @vaadin/vaadin-select 23.2.0
  • @vaadin/vaadin-split-layout 23.2.0
  • @vaadin/vaadin-tabs 23.2.0
  • @vaadin/vaadin-template-renderer 23.2.0
  • @vaadin/vaadin-text-field 23.2.0
  • @vaadin/vaadin-themable-mixin 23.2.0
  • @vaadin/vaadin-time-picker 23.2.0
  • @vaadin/vaadin-upload 23.2.0
  • @vaadin/vaadin-usage-statistics 2.1.2
  • @vaadin/vaadin-virtual-list 23.2.0
  • @vaadin/vertical-layout 23.2.0
  • @vaadin/virtual-list 23.2.0
  • construct-style-sheets-polyfill 3.1.0
  • date-fns 2.28.0
  • lit 2.3.0
.github/workflows/build.yml actions
  • MathieuSoysal/Javadoc-publisher.yml v2.0.4 composite
  • actions/cache v2 composite
  • actions/checkout v2 composite
  • actions/setup-java v1 composite
  • actions/upload-artifact v2 composite
  • cicirello/jacoco-badge-generator v2 composite
Dockerfile docker
  • maven 3-openjdk-17-slim build
  • openjdk 17-jdk-slim build
pom.xml maven
  • com.vaadin:vaadin-bom 23.2.2 import
  • com.h2database:h2
  • com.sun.mail:javax.mail 1.5.0-b01
  • com.vaadin:vaadin
  • com.vaadin:vaadin-spring-boot-starter
  • org.springframework.boot:spring-boot-devtools
  • org.springframework.boot:spring-boot-starter-data-jpa
  • org.springframework.boot:spring-boot-starter-security
  • org.springframework.boot:spring-boot-starter-validation
  • org.vaadin.artur.exampledata:exampledata 3.4.0
  • com.vaadin:vaadin-testbench test
  • io.github.bonigarcia:webdrivermanager 3.8.1 test
  • org.junit.vintage:junit-vintage-engine test
  • org.springframework.boot:spring-boot-starter-test test
package-lock.json npm
  • 559 dependencies
requirements.txt pypi
  • ApacheMaven *
  • Eclipse *
  • Java *
  • Springboot *
  • Vaadin23 *