A modern, AI-powered resume analysis application built with React frontend and Flask backend. Get intelligent insights and recommendations to optimize your resume for better job opportunities.
- AI-Powered Analysis: Uses OpenAI GPT-4 for intelligent resume analysis
- PDF Processing: Advanced PDF text extraction using PyMuPDF
- Modern UI: Beautiful React frontend with Tailwind CSS and Framer Motion
- Drag & Drop: Easy file upload with drag and drop functionality
- Responsive Design: Works perfectly on desktop, tablet, and mobile
- Real-time Feedback: Get instant analysis and recommendations
- LinkedIn Integration: Pull LinkedIn profiles (coming soon)
- React 18 - Modern React with hooks
- Tailwind CSS - Utility-first CSS framework
- Framer Motion - Smooth animations and transitions
- React Router - Client-side routing
- Axios - HTTP client for API calls
- React Dropzone - File upload with drag and drop
- Lucide React - Beautiful icons
- Flask - Python web framework
- OpenAI GPT-4 - AI-powered analysis
- PyMuPDF - PDF text extraction
- Python-dotenv - Environment variable management
- gunicorn - Python development web framework
- Node.js (v16 or higher)
- Python (v3.8 or higher)
- npm or yarn
-
Clone the repository and navigate to it
git clone <repository-url> cd group_project_python
repository-url is https://github.com/ChrisAnz19/group_project_python.git
-
Create a virtual environment
Choose either conda or python to create your virutal environment.
conda create -n group_project_python python=3.11 # create new environment in cond conda activate group_project_python # activate the environment in conda
python -m venv group_project_python # create virtual environment in python source group_project_python/bin/activate # activate virutal envrionment in python (On Windows: group_project_python\Scripts\activate)
-
Install Python dependencies
pip install -r requirements.txt
-
Set up environment variables Create a
.envfile in the root directory:OPENAI_API_KEY=your_openai_api_key_here
See section on Configuration for further details on how to set up the file.
-
Run the Flask backend
FLASK_APP=web_app FLASK_RUN_PORT=5001 flask run --host=localhost
The backend will run on
http://localhost:5001
-
Install Node.js dependencies
npm install
-
Start the React development server
npm start
The frontend will run on
http://localhost:3000
-
Open the application in your browser at
http://localhost:3000 -
Choose your input method:
- Upload PDF: Drag and drop or click to upload a PDF resume
- Paste Text: Copy and paste your resume text directly
-
Get analysis: The AI will analyze your resume and provide recommendations for:
- Education section
- Experience section
- Skills section
- General formatting and optimization
-
Review results: View detailed feedback and actionable recommendations
While at the root directory, use the following command to run the tests:
pytest # find all Python tests and run them
npm test -- --watchAll=false # find and run all JS testsCreate a .env file in the root directory with the following variables:
# OpenAI API Key for GPT-4 analysis
OPENAI_API_KEY=sk-your-openai-api-key
# Flask configuration
FLASK_ENV=development
FLASK_DEBUG=TrueThe Flask backend provides the following endpoints:
POST /result- Analyze resume textPOST /result_pdf- Analyze uploaded PDF fileGET /- Home pageGET /about- About pageGET /trending-jobs- Trending Jobs pageGET /leadership- Leadership page
The application uses Tailwind CSS for styling. You can customize the design by:
- Modifying
tailwind.config.jsfor theme customization - Updating
src/index.cssfor custom styles - Changing component styles in individual React components
-
Build the production version:
npm run build
-
Deploy the
buildfolder to your hosting service (Netlify, Vercel, etc.)
- Deploy the Gunicorn
OPENAI_API_KEY=your_openai_api_key_here gunicorn --bind 0.0.0.0:5001 "web_app:app" # binds to all 5001 ports - Update the proxy configuration in
package.jsonto point to your deployed backend URL
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.