فهرست منبع

Add requirements and root page

Pranshu Raj 1 سال پیش
والد
کامیت
12fe77c6a4

+ 37 - 0
Quine Package Quests/Job-finder/README.md

@@ -0,0 +1,37 @@
+# Job Tracker
+
+This project sources jobs from various job boards to recommend jobs to users based on their preferences. This project arose from the need to automate job searches and filter out irrelevant jobs during my internship search and scores jobs to find the most relevant jobs according to many criteria.
+
+
+## How to run
+
+Clone the repository and change directory into the project directory.
+
+Ensure that all dependencies are installed by executing 
+`pip install -r requirements.txt`
+
+Run main.py by executing 
+`python main.py` 
+on the terminal in the project's root directory.
+
+
+## Project Structure
+
+1. pages - It contains all non-root pages of the webapp made using Taipy. There's also a stylesheet for the jobs.py file.
+
+2. src - Contains most of the code for this tool. The scrapers are stored in the scrapers directory, only grab_indeed.py and yc.py are used for now. The processing.py and aggregate.py files are for processing and aggregation of data respectively.
+
+3. Other files present in the root dir - main.py contains code for the root page of the multi page taipy app, others are irrelevant to the normal functioning of the tool(except requirements.txt and README.md).
+
+A video demonstration of some of the features of this app is available [here](https://drive.google.com/file/d/1c0blZZL1eIHh5n8_6OFFAVL34rNM6wwm/view?usp=sharing).
+
+## Implemented features - 
+- Scrapers for indeed and ycombinator - gets jobs using Selenium and BeautifulSoup.
+- Crawlers for getting job descriptions of the jobs scraped. 
+- Processing pipelines - scripts to modify the raw data to make meaningful recommendations. Currently implemented in python using domain knowledge.
+- A user interface implemented in Taipy, to show and filter the ranked jobs.
+
+## Future Enhancements - 
+- Improve the description processing pipeline, connect all the scripts using Airflow pipelines.
+- Implement better scoring methods such as the BM25 model, along with some query generation mechanism.
+- Gather user feedback on each job card (through upvote and downvote buttons) to affect the job's ranking - this way incorrect rankings may get corrected, also paves the way for model weights to stay relevant with drift.

+ 22 - 0
Quine Package Quests/Job-finder/main.py

@@ -0,0 +1,22 @@
+from taipy import Gui
+from taipy.gui import builder as tgb
+from pages.home import home_page 
+from pages.jobs import link_part as data_page
+from pages import jobs
+from pages.analysis import analysis_page
+
+with tgb.Page() as root_page:
+    tgb.navbar()
+    #tgb.text('Home page', class_name='h1')
+
+pages = {"/": root_page,
+         'home':home_page,
+         "data": data_page,
+         "analysis":analysis_page}
+
+def on_init(state):
+    jobs.simulate_adding_more_links(state)
+    jobs.filter_data(state)
+
+if __name__ =='__main__':
+    Gui(pages=pages).run(debug=False)

+ 7 - 0
Quine Package Quests/Job-finder/requirements.txt

@@ -0,0 +1,7 @@
+flask==3.0.0
+taipy==3.1.0
+plotly==5.9.0
+pandas==2.0.3
+numpy==1.24.3
+nltk==3.8.1
+kaleido==0.2.1