Skip to content

ncsu-csc-510/Project2

 
 

J-Tracker - Your Job Tracking Assistant

Python GitHub license DOI codecov GitHub issues Github closes issues GitHub top language Test Status GitHub Tag GitHub forks GitHub stars GitHub contributors GitHub commit activity

Collaborators Documentation Badge Documentation Badge

The internship application and job application process is no picnic. Job application management is time-consuming. With the referrals and deadlines, the whole process can get daunting. Our app enables you to track and organize your job application process, and manage it, without the inconvenience of clunky Excel spreadsheets.

Our software maintains a record of the work you have wish-listed. It records those companies that you have applied for and records any rejections. Instead of making the user visit each company's website for prospects, our software enables the applicant to look for them directly using simple keywords. Any possible offer of work may then be wish-listed by the applicant.

New Features in Project2

🎥Project2 Demo Video

⭐ Highlight of Project2 ⭐

Dockerization 🗃️

Containerizing the application with docker has helped us achieve 2 significant things

  1. Dramatically boosting the speed at which one would be able to configure the project in their machines.
  2. Automation of the entire run of the application including running the tests!

⭐ New AI Features and Updates!

  1. Improved scalability and maintainability with optimized querying and restructured user entity fields.
  2. AI-driven job matching system leveraging user profiles and resumes for better recommendations.
  3. Enhanced profile updates and better resume parsing for accurate job-fit analysis.
  4. AI integration for personalized career path suggestions and top opportunity highlights.

Bug fixes

  1. OAuth Restoration
  2. Docker Restoration Repair
  3. Authentication into the application randomly not working.
  4. Resolved profile update errors and improved system stability and efficiency

Table of contents

Basic Design:

Basic Design

Samples:

Login Page / Signup Page

The introductory visual interface displayed from which a user is able to register and log into the application. User can also login or sign up through Google Authorization.

The Google Authorization Login:

HomeScreen - Profile Page

After Logging In, the Profile page of the user is displayed where the user details such as Name, Institution, email, phone number, address, skills, and more are shown. Users can add or update information to their profile, such as their personal information, skills, preferred job locations, and their experience level.

JobSearchPage

  1. A past analyses column has been added to the dashboard. Here the users will get a summarized version of the comparison between their resume and the job they would like to apply to.

  2. Another feature has been added for ease of use by mentioning a summary of the applications made by each user. The dashboard now shows a count of all the applications as well as the category- Applied, Rejected, Wish List and Waiting for Referral.

  3. In the earlier versions of the software the skills were not saved for when the user logs in again. We have solved this bug. Now the users can see their previous preferences after logging in again. They can then update these without any hassle. We have made sure that our database and our code takes care of managing this

  4. We have incorporated an AI model to recommend jobs to the user. Instead of just fetching jobs from google, our code will now based off the preferences of the user, their skills, their experience will curate job opportunities for the user. In this way, the user is only recommended jobs that fit their application requirements and they don’t have to waste time reading the job description thoroughly

ApplicationPage

The user is able to see different saved applications - Waitlisted applications, Waiting for Refereals, Applied Jobs, Application Status. The user is also able to add more jobs to track using this screen.

MatchesPage

Here, user is able to see different jobs which would be recommended to them according to their profile and also their interest. User can apply for that job from this page as well.

FinalViewOfDashboard

Future Scope:

  • AI Job Matching: Advanced AI predicts best-fit jobs and offers real-time market insights based on user skills.
  • Automated Tracking: AI tracks application statuses via parsing and updates progress from job portals.
  • Interview Prep: AI-driven mock interviews with real-time feedback and role-specific questions.
  • Multi-Platform Sync: Syncs with LinkedIn, job boards, and ATS; mobile app for real-time updates.

Technologies Used:

  • Python
  • Node.Js
  • Flask
  • MongoDB
  • React
  • Docker

Installation:

Requirements:

  • Python (recommended >= 3.8)
  • pip (Latest version 21.3 used as of 11/3)
  • npm (Latest version 6.14.4 used as of 11/3)
  • Docker-Desktop (Latest version as of 11/27)

Steps to follow for the installation:

  1. Clone the Repository

    • Use the command git clone https://github.com/ncsu-csc-510/Project2.git to clone the repository.
  2. Start the Docker Engine

    • Ensure that Docker is installed on your system. If not, you can download it from the official Docker website.
    • Start the Docker engine on your machine. The command varies based on your operating system.
  3. Build Images

    • Navigate to the backend folder and build the image for the API using the following command:
      docker build -f dockerfile.api -t ats-api .
      
    • Similarly, navigate to the frontend folder and build the image for the client using the following command:
      docker build -f dockerfile.client -t ats-client .
      
  4. Run Docker Compose

    • Finally, run the following command to start the application:
      docker-compose up
      

Hosting the Database:

Local MongoDB:

  1. Download MongoDB Community Server
  2. Follow the Installion Guide
  3. In app.py set 'host' string to 'localhost'
  4. Run the local database:

mongodb

  • Recommended: Use a GUI such as Studio 3T to more easily interact with the database

Hosted database with MongoDB Atlas:

  1. Create account for MongoDB
  • If current MongoDB Atlas owner adds your username/password to the cluster, skip to step 4 *
  1. Follow MongoDB Atlas Setup Guide to create a database collection for hosting applications
  2. Create application.yml in the backend folder with the following content:
    GOOGLE_CLIENT_ID : <Oauth Google ID>
    GOOGLE_CLIENT_SECRET : <Oauth Google Secret>
    CONF_URL : https://accounts.google.com/.well-known/openid-configuration
    SECRET_KEY : <Any Secret You Want>
    USERNAME : <MongoDB Atlas Username>
    PASSWORD : <MongoDB Atlas Password>
    CLUSTER_URL : <MongoDB Cluster URL>
    
  3. In app.py set 'host' string to your MongoDB Atlas connection string. Replace the username and password with {username} and {password} respectively
  4. For testing through CI to function as expected, repository secrets will need to be added through the settings. Create individual secrets with the following keys/values:

MONGO_USER: MONGO_PASS:

License

The project is licensed under the MIT license.

How to Contribute?

Please see our CONTRIBUTING.md for instructions on how to contribute to the repository and assist us in improving the project.

Team Members

  • Anchal Kakadia
  • Aniruddha Kulkarni
  • Aranya Venugopal

About

J-TRACKER an Application Tracking System

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • JavaScript 56.2%
  • Python 38.1%
  • CSS 3.4%
  • HTML 1.3%
  • Shell 1.0%