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.
Containerizing the application with docker has helped us achieve 2 prominent things
- Significantly increasing the speed in which one would be able to setup the project on their machines.
- Automation of the entire run of the application including running the tests!
- Upload Resume versions
- Bookmark option for the job recommendations
- Enhanced Search to fetch latest job opportunities
- Updated country list that now supports 120+ countries
- Updated skills list so that you can present your profile without missing on any skill
- Refactorization of Class components into functional components which makes the code more maintainable
- Undefined profile image.
- Authentication into the application randomly not working.
- Unable to load matched jobs
- Application screen throwing null pointer randomly
merged_comp.mp4
- Basic Design
- Samples
- New Features In Phase 3
- Future Scope
- Explanation
- Technologies Used
- Installation
- Hosting the Database
- License
- How to Contribute
- Team Members
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: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.
The interface through which a user is able to search for specific jobs and apply on them through the 'Apply' button.
- Navigate to Job search page, search for particular Job.
- Click on Details button to see the Job Details
- Click on Apply button which will redirect to the Job Apply link.
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.
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.
- Include deadline reminders for the application and interview.
- Add a feature that allows users to attach these reminders to their Google calendar.
- Incorporate notifications for upcoming deadlines.
- Include a link to the university’s career fair page.
- Direct connection to Linkedin, allowing for the addition of job opportunities to the wishlist.
- An option to maintain separate profiles for job tracking.
- Integrate the database into docker
Currently, we have four fundamental steps in our project:
- The SearchPage where users can search about the Job Postings
- The MatchesPage where users get recommendation about the jobs according to their preferences
- 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
- 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
- Python
- Node.Js
- Flask
- MongoDB
- React
- Docker
- 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)
-
Clone the Repository
- Use the command
git clone https://github.com/jashgopani/application-tracking-system.git
to clone the repository.
- Use the command
-
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.
-
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 .
- Navigate to the backend folder and build the image for the API using the following command:
-
Run Docker Compose
- Finally, run the following command to start the application:
docker-compose up
- Finally, run the following command to start the application:
- Download MongoDB Community Server
- Follow the Installion Guide
- In app.py set 'host' string to 'localhost'
- Run the local database:
mongodb
- Recommended: Use a GUI such as Studio 3T to more easily interact with the database
- Create account for MongoDB
- If current MongoDB Atlas owner adds your username/password to the cluster, skip to step 4 *
- Follow MongoDB Atlas Setup Guide to create a database collection for hosting applications
- 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>
- In app.py set 'host' string to your MongoDB Atlas connection string. Replace the username and password with {username} and {password} respectively
- 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:
The project is licensed under the MIT license.
Please see our CONTRIBUTING.md for instructions on how to contribute to the repository and assist us in improving the project.
- Akhilesh Neeruganti
- Jash Gopani
- Hemil Mehta
- Rohan Ajmera
For any questions, please email neerua08@gmail.com.