Resume Ranker
Brief Description of Your Project
Resume Ranker is a web application designed to rank resumes based on their content. It processes resumes and evaluates them based on specific criteria to provide a ranking score. This project leverages on analysis and ranking, with an intuitive FastAPI backend and PostgreSQL for data storage.
1. Clone the Repository
- Navigate to the project folder.
- To zip the project folder, use the following command:
zip -r project_name.zip .
2. Set up a Virtual Environment (Optional but recommended for Python projects)
- Create a virtual environment:
python3 -m venv venv
- Activate the virtual environment:
source venv/bin/activate # On Windows: venv\Scripts\activate
3. Install Dependencies
Install the necessary Python dependencies:
pip install -r requirements.txt
4. Set up Docker (Optional)
If you are using Docker, follow these steps to build and start the web application and the database:
docker-compose up --build
This will build the Docker images and start both the web application and the database.
5. Set up Environment Variables
Create a .env file in the root directory with the following variables:
postgres_user=your_db_user
postgres_password=your_db_password
postgres_db=your_db_name
DATABASE_URL=db_url
6. Access the App
Once everything is set up, you can access the app:
How to Run the App
Method 1: With Uvicorn (using a virtual environment)
- Activate the virtual environment (if using one).
- Run the FastAPI app with Uvicorn:
uvicorn app.main:app --reload
Or to bind to 0.0.0.0 on port 8000:
uvicorn app.main:app --host 0.0.0.0 --port 8000
This will start the app at http://localhost:8000.
Method 2: With Docker
To run the app with Docker, use the following command:
docker-compose up
This will start the application along with the PostgreSQL container. The app will be accessible at http://localhost:8000.
How to Run the Tests
To run the tests, follow these steps:
-
Install the test dependencies (if any):
pip install -r requirements.txt
-
Run the tests with pytest:
pytest
Or, for a custom environment:
PYTHONPATH=.:$PYTHONPATH pytest tests
This will execute the tests and show the results in the terminal.
Notes on What Works, What Doesn’t, and What You’d Improve with More Time
What Works:
- The FastAPI app is running and serving endpoints.
- PostgreSQL integration is set up using Docker.
- AI Model Integration: AI models are integrated with proper subscription keys and ensures that the AI evaluation can rank resumes more accurately. And also on implemented caching and performance improvements for the AI model calls.
- API documentation is accessible via Swagger UI at http://localhost:8000/docs.
Additional Notes
- Docker: Ensure Docker and Docker Compose are installed on your machine before attempting to use the Docker setup.