This project is part of the data science group for Labs project Quick Hire. Quick hire is a one stop job app portal for specifically for Lambda School students.
You can find the live project at QuickHire.dev
This repository holds code for the Flask app (migration to FastAPI pending) and database functions for the Data Science portion of Quick Hire. It also includes documentation for the code until the migration to FastAPI with its automatically generated documentation is complete. It will also include tests from Starlette (comes with FastAPI) once migration is complete.
- Web Scraping
- Machine Learning
- Predictive Modeling
- Deep Learning (to be implemented)
- Code Coverage/Automated Testing (to be implemented)
- Python
- Pandas, Jupyter
- FastAPI
- Starlette
- Selenium
- PostgresSQL
- AWS Elastic Beanstalk
- AWS Lambda Functions
- AWS RDS
The database (PostgreSQL) is hosted on AWS RDS (database-1). A summary of the structure can be found at docs/db_structure/db_structure.md, and schema details at docs/db_structure/awsrds.schema.
The web app is hosted on AWS elastic beanstalk. The documentation can be found here: https://github.com/Lambda-School-Labs/Job-Funnel-ds-API/blob/master/docs/api/reference.md until migration to FastAPI is complete.
Test Suite not implemented yet but to be updated here.
Documentation for this API can be found [here] (https://github.com/Lambda-School-Labs/Job-Funnel-ds-API/tree/master/docs) for:
- project architecture
- database structure and schema
- API/ / reference (until migration to FastAPI is complete)
- project status (pending, may move here)
- lambda functions deployed to AWS.
See Backend Documentation for details on the backend of our project. See Frontend Documentation for details on the frontend of our project.
See architecture.md for details on the current project state.
There is not currently any code coverage.
No models are currently available on the /search endpoint. This is somewhat unacceptable - using the models to improve search is a crucial part of the project. There is a hacky start to an implementation on the ds-Data/serve-models
and ds-API/skills
branches, which serves the models over the ds-Data
utility API, and provides a /check_fresh to reload the models if they're more than an hour out of date.
Note that model results should be provided via the relevance
parameter on jobs returned from the API's /search
endpoint.
In the aforementioned hacky methodology, the models are shared between ds-Data
and ds-API
over HTTP. This is not a good way of doing this. Amazon EFS is likely the simplest solution, but further investigation may be warranted.
- Improve API efficiency
- Currently, the API gets a list of results, then iterates through each to get the details. This is an artifact of prior API design (where full details were not returned by /search), and is inefficient. Rebuild the queries to fix this.
- Implement Hireability score
- One of the primary value points of the project, the hireability score is a value that assesses how relevant a job is to Lambda graduates, based on a classification model trained on historical grads (and what jobs they found).
- If you can't get data from Lambda, might want to scrape LinkedIn for people associated with Lambda School, and what jobs they have.
- Add tests
- There's not currently any test coverage.
- The
quickhire-api-dev
CodePipeline does not automatically pull changes from GitHub. You have to manually release changes.
NOTE: Master branch of this code is already running live on AWS. If you are the next Lambda School Team to build on, you will inherit the AWS instances and also be given lectures on how to use the various AWS services.
Nonetheless, if you want to work on this locally:
-
Clone this repo.
-
Clone the other repo which has the web scraper and models: https://github.com/Lambda-School-Labs/Job-Funnel-ds-Data
-
Create your own database and login credentials setup since the .gitignore has our live database credentials. Install any libraries from requirements of both repos that weren't added. If you are Lambda Labs students, your TL should give you the AWS DB credentials or .env files. Else you can find them by DM'ing previous team members.
-
Run the scraper in the other repo to begin populating the data base.
To be updated
Full Name: Github : Slack Handle
Please note we have a code of conduct. Please follow it in all your interactions with the project.
If you are having an issue with the existing project code, please submit a bug report under the following guidelines:
- Check first to see if your issue has already been reported.
- Check to see if the issue has recently been fixed by attempting to reproduce the issue using the latest master branch in the repository.
- Create a live example of the problem.
- Submit a detailed bug report including your environment & browser, steps to reproduce the issue, actual and expected outcomes, where you believe the issue is originating from, and any potential solutions you have considered.
We would love to hear from you about new features which would improve this app and further the aims of our project. Please provide as much detail and information as possible to show us why you think your new feature should be implemented.
If you have developed a patch, bug fix, or new feature that would improve this app, please submit a pull request. It is best to communicate your ideas with the developers first before investing a great deal of time into a pull request to ensure that it will mesh smoothly with the project.
Remember that this project is licensed under the MIT license, and by submitting a pull request, you agree that your work will be, too.
- Ensure any install or build dependencies are removed before the end of the layer when doing a build.
- Update the README.md with details of changes to the interface, including new plist variables, exposed ports, useful file locations and container parameters.
- Ensure that your code conforms to our existing code conventions and test coverage.
- Include the relevant issue number, if applicable.
- You may merge the Pull Request in once you have the sign-off of two other developers, or if you do not have permission to do that, you may request the second reviewer to merge it for you.
These contribution guidelines have been adapted from this good-Contributing.md-template.
https://github.com/Lambda-School-Labs/Job-Funnel-ds-API/tree/master/docs