Skip to content

boyan1001/resume-analysis

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Resume Analysis System

React Flask Docker sqlite Firebase
This is a web application we developed in DevJam (a hackathon hold by GDG). It can analyze resumes and provide feedback by Gemini AI.

✨ Overview

  • Developed a web application using Flask and React, allowing users to upload resumes and receive feedback.
  • Implemented Gemini AI to analyze resumes and provide suggestions for improvement.
  • Use RAG (RetrievalAugmented Generation) to enhance the accuracy of resume analysis.
  • With online mock interview mode, you can practice and improve your interview performance.

🧑‍💻 Teams

erichung9060 : Project Manager / Back-end / General Codes / mock interview / Gemini api

weng__0721 : Front-end / mock interview interface design

boyan1001 : Back-end / resume analysis pipeline design / Gemini api / prompt engineering / Deploy  

noyapoyo : Front-end / resume analysis interface design

🧱 Project Structure

resume-analysis
├── /backend/                  # Flask app
│  ├── Dockerfile              
│  ├── interview_results.db    # Database
│  └── ...
├── /backend/                  # Next.js app
│  ├── Dockerfile
│  └── ...
├── docker-compose.yml 
├── .gitignore
├── LICENSE
└── README.md

🖥️ Requirements

To run the program successfully, please check the following:

  • Node.js 18+ / pnpm (for frontend)
  • Python 3.12+ / uv (for backend)
  • Docker % docker-compose (you can also deploy by Docker)

🐳 Run by Docker

First enter your gemini api key and firebase config

echo 'GOOGLE_API_KEY=<your_gemini_api_key>  
NEXT_PUBLIC_FIREBASE_API_KEY=<your_firebase_api_key>  
NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=<your_firebase_auth_domain>  
NEXT_PUBLIC_FIREBASE_PROJECT_ID=<your_firebase_id>  
NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET=<your_firebase_storage_bucket>  
NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=<your_firebase_messaging_sender_id> 
NEXT_PUBLIC_FIREBASE_APP_ID=<your_firebase_app_id> 
NEXT_PUBLIC_FIREBASE_MEASUREMENT_ID=<your_firebase_measurement_id>' > .env

Build and start the containers:

docker compose up --build

Then access the services:

💻 Local Development (without Docker)

First enter your gemini api key and firebase config

echo 'GOOGLE_API_KEY=<your_gemini_api_key>  
NEXT_PUBLIC_FIREBASE_API_KEY=<your_firebase_api_key>  
NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=<your_firebase_auth_domain>  
NEXT_PUBLIC_FIREBASE_PROJECT_ID=<your_firebase_id>  
NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET=<your_firebase_storage_bucket>  
NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=<your_firebase_messaging_sender_id> 
NEXT_PUBLIC_FIREBASE_APP_ID=<your_firebase_app_id> 
NEXT_PUBLIC_FIREBASE_MEASUREMENT_ID=<your_firebase_measurement_id>' > .env

Backend

Use uv to install dependencies the backend app need:

cd backend
uv sync
uv run app.py

Your backend app runs at http://localhost:3001

Frontend

Then use pnpm to runs frontend:

cd frontend
pnpm install
pnpm dev

Your frontend runs at http://localhost:3000

About

This is a web application we developed in DevJam (a hackathon hold by GDG). It can analyze resumes and provide feedback by Gemini AI.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • TypeScript 52.9%
  • Python 23.9%
  • HTML 20.2%
  • Dockerfile 2.5%
  • JavaScript 0.5%