SoftwareEngineering-HomeWork / application-tracking-system

Application Tracking System, Phase 3
MIT License
0 stars 0 forks source link

J-Tracker - Your Job Tracking Assistant

GitHub license DOI codecov GitHub issues Github closes issues GitHub top language

The process of applying for jobs and internships is not a cakewalk. Managing job applications is a time-consuming process. Due to the referrals and deadlines, the entire procedure can be stressful. Our application allows you to track and manage your job application process, as well as regulate it, without the use of cumbersome Excel spreadsheets.

Our application keeps track of the jobs you've added to your wish list. It also keeps track of the companies you've already applied to and keeps a list of any rejections. Rather than having the user browse each company's site for potential prospects, our application allows the applicant to search for them directly using basic keywords. Any prospective work offers can then be added to the applicant's wishlist.

New Features in Phase 3

🎥Phase-3 Demo Video

⭐ Highlight of Phase 3 ⭐

Dockerization 🗃️

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

  1. Significantly increasing the speed in which one would be able to setup the project on their machines.
  2. Automation of the entire run of the application including running the tests!

Other new features

  1. Upload Resume versions
  2. Bookmark option for the job recommendations
  3. Enhanced Search to fetch latest job opportunities
  4. Updated country list that now supports 120+ countries
  5. Updated skills list so that you can present your profile without missing on any skill
  6. Refactorization of Class components into functional components which makes the code more maintainable

Bug fixes

  1. Undefined profile image.
  2. Authentication into the application randomly not working.
  3. Unable to load matched jobs
  4. Application screen throwing null pointer randomly

Application Demo video

https://user-images.githubusercontent.com/89501363/144725439-5d9191f8-df13-4814-aa15-99cd752ab0cc.mp4

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.

SearchPage

The interface through which a user is able to search for specific jobs and apply on them through the 'Apply' button.

  1. Navigate to Job search page, search for particular Job.
  2. Click on Details button to see the Job Details
  3. Click on Apply button which will redirect to the Job Apply link.

ApplicationPage

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

MatchesPage

On this page, user can see different jobs that would be recommended to them based on their profile and their preferences. User can apply for that position from this page too.

Future Scope:

Explanation:

Currently, we have four fundamental steps in our project:

  1. The SearchPage where users can search about the Job Postings
  2. The MatchesPage where users get recommendation about the jobs according to their preferences
  3. The ApplicationsPage where users can add and see the position they applied to and can update/delete the the information. Any details in any table can be modified at any time during the process
  4. The ProfilePage where user can add his skills, experience level and preffered location. This information is used to recommend user jobs that require similar skillsets

Technologies Used:

Installation:

Requirements:

Steps to follow for the installation:

  1. Clone the Repository

    • Use the command git clone https://github.com/jashgopani/application-tracking-system.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

Hosted database with MongoDB Atlas:

  1. Create account for MongoDB
  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

Contact Info

For any questions, please email neerua08@gmail.com.