feat: Complete Smart Resume Formatter with R2 and Gemini AI integration
Some checks failed
Profile Linker Docker Build / Build and push Docker image (push) Failing after 3s

- Integrated Cloudflare R2 for template storage and converted file management
- Added Google Gemini AI for resume parsing and HTML generation
- Created backend API endpoints for templates, conversion, and history
- Refactored frontend to use real API instead of mock data
- Fixed Docker networking issues (IPv6/IPv4) for R2 connectivity
- Added resumeService.ts for frontend API integration
- Updated Vite configuration for proper asset serving in Docker
- Successfully tested with 13 templates from R2 bucket
This commit is contained in:
Laxmi Khilnani
2025-10-14 21:43:41 +05:30
parent ee030b70bc
commit cda50356b4
34 changed files with 2604 additions and 360 deletions

View File

@@ -12,7 +12,7 @@ class Settings:
"""
APP_NAME: str = os.getenv("APP_NAME", "ResumeFormatter")
API_V1_STR: str = f"/{APP_NAME}/api"
PROJECT_NAME: str = "Profile Linker API"
PROJECT_NAME: str = "Smart Resume Formatter API"
# CORS settings
BACKEND_CORS_ORIGINS: List[str] = ["*"]
@@ -20,6 +20,15 @@ class Settings:
# Database settings - using in-memory database by default
# In a production environment, you would use a real database connection string
DATABASE_URL: Optional[str] = None
# Gemini AI settings
GEMINI_API_KEY: str = os.getenv("GEMINI_API_KEY", "")
# Cloudflare R2 settings
R2_ENDPOINT: str = os.getenv("R2_ENDPOINT", "")
R2_ACCESS_KEY_ID: str = os.getenv("R2_ACCESS_KEY_ID", "")
R2_SECRET_ACCESS_KEY: str = os.getenv("R2_SECRET_ACCESS_KEY", "")
R2_BUCKET_NAME: str = os.getenv("R2_BUCKET_NAME", "e-teams")
settings = Settings()