A full-stack application for analyzing and managing resumes using AI-powered insights. Built with Spring Boot, MongoDB, and integrated with Google Gemini AI.
check your ats score here : https://resume-analyzer-jade-zeta.vercel.app/
- π User Authentication - JWT-based secure login and registration
- π Resume Upload & Analysis - Upload resumes and get AI-powered insights
- π€ AI Integration - Google Gemini API for intelligent resume analysis
- πΎ Cloud Database - MongoDB Atlas for scalable data storage
- π Security - BCrypt password hashing and Spring Security
- π³ Containerized - Docker support for easy deployment
- Framework: Spring Boot 3.5.5
- Language: Java 21
- Database: MongoDB Atlas
- Security: Spring Security + JWT
- AI/ML: Google Gemini API
- Build Tool: Maven
- Spring Boot Starter Web
- Spring Boot Starter Data MongoDB
- Spring Security
- JWT (io.jsonwebtoken)
- Apache Tika (Document processing)
- Lombok
- Validation API
- Java 21 or higher
- Maven 3.9+
- MongoDB Atlas account
- Docker (optional, for containerized deployment)
- Google Gemini API key
git clone https://github.com/yourusername/resume-analyzer.git
cd resume-analyzerCreate application.properties in src/main/resources/:
server.port=8081
# MongoDB Atlas Connection
spring.data.mongodb.uri=mongodb+srv://username:password@cluster0.xxxxx.mongodb.net/resumeanalyzer?retryWrites=true&w=majority
# JWT Configuration
jwt.secret=your_jwt_secret_key_here
jwt.expiration=360000
# Google Gemini API
gemini.api.key=your_gemini_api_key_here
# CORS Configuration (Optional)
frontend.url=http://localhost:5173mvn clean installmvn spring-boot:runThe application will start on http://localhost:8081
docker build -t resume-analyzer:latest .docker-compose up -d- Application: http://localhost:8081
- MongoDB: localhost:27017
- Mongo Express: http://localhost:8082 (admin/admin123)
POST /api/auth/register
Content-Type: application/json
{
"userName": "John Doe",
"email": "john@example.com",
"password": "SecurePass123"
}POST /api/auth/login
Content-Type: application/json
{
"email": "john@example.com",
"password": "SecurePass123"
}Response:
{
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"message": "Login Successful",
"email": "john@example.com"
}GET /api/health{
"_id": "ObjectId",
"userName": "String",
"email": "String (unique, indexed)",
"password_hashed": "String (BCrypt)",
"_class": "com.Project.ResumeAnalyzer.Model.ResumeEntity"
}- Connect GitHub Repository to Render
- Set Environment Variables in Render Dashboard
- Configure Build Settings:
- Build Command:
mvn clean install - Start Command:
java -jar target/*.jar
- Build Command:
- Create a cluster on MongoDB Atlas
- Create database user with read/write permissions
- Whitelist IP addresses (0.0.0.0/0 for all IPs)
- Get connection string and add to environment variables
Register:
curl -X POST http://localhost:8081/api/auth/register \
-H "Content-Type: application/json" \
-d '{
"userName": "Test User",
"email": "test@example.com",
"password": "Test@123"
}'Login:
curl -X POST http://localhost:8081/api/auth/login \
-H "Content-Type: application/json" \
-d '{
"email": "test@example.com",
"password": "Test@123"
}'Import the API endpoints and test with the provided examples.
resume-analyzer/
βββ src/
β βββ main/
β β βββ java/com/Project/ResumeAnalyzer/
β β β βββ Config/ # JWT & Security configs
β β β βββ Controller/ # REST endpoints
β β β βββ DTO/ # Data Transfer Objects
β β β βββ Model/ # MongoDB entities
β β β βββ Repo/ # MongoDB repositories
β β β βββ Service/ # Business logic
β β β βββ ResumeAnalyzerApplication.java
β β βββ resources/
β β βββ application.properties
β βββ test/
βββ Dockerfile
βββ docker-compose.yml
βββ pom.xml
βββ README.md
- β Password Hashing - BCrypt with salt rounds
- β JWT Authentication - Stateless token-based auth
- β Spring Security - Endpoint protection
- β Input Validation - Jakarta Validation
- β CORS Configuration - Controlled cross-origin access
- β MongoDB Security - Atlas network access control
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add 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.
Abhishek Dodwad
- Spring Boot Team
- MongoDB Atlas
- Google Gemini AI
- Apache Tika
For support, email dodwadabhishek@gmail.com or open an issue in the GitHub repository.
β Star this repo if you find it helpful! β
Made with β€οΈ using Spring Boot and MongoDB