Skip to content

Conversation

@msrishav-28
Copy link

🚀 Complete Migration from Streamlit to React + FastAPI

Overview

This PR completely rewrites Agragrati from a Streamlit application to a modern React + FastAPI architecture, providing better performance, scalability, and user experience.

🎯 Major Changes

Frontend (React + TypeScript + Vite)

  • UI Framework: React 18 with TypeScript
  • Build Tool: Vite for fast development and optimized builds
  • Styling: Tailwind CSS + shadcn/ui components
  • Animations: Framer Motion throughout the UI
  • State Management: Zustand for global state
  • Routing: React Router DOM v6

Backend (FastAPI + Python)

  • Framework: FastAPI with async support
  • AI Integration: Groq API with Llama 3.3 70B
  • Performance: Caching with TTL, timeout handling, retry logic
  • Database: Optional Supabase integration

✨ Features Implemented (16 Total)

Feature Description
📄 Resume Analyzer ATS scoring with detailed feedback
🔍 Job Search Multi-provider search (LinkedIn, Indeed, etc.)
✉️ Cover Letter Generator AI-powered personalized cover letters
🎤 Interview Preparation Practice questions with AI evaluation
📊 Career Insights Salary, trends, progression analysis
📝 Resume Builder Section enhancement with AI
📋 Application Tracker Track job applications (Supabase)
🔖 Bookmarks Save favorite jobs
💼 Job Match Match resume to job descriptions
🌙 Dark Mode Theme toggle support
⌨️ Keyboard Shortcuts Power user navigation
📱 PWA Support Installable as app
🎬 Smooth Animations Framer Motion transitions
📤 PDF Export Export results to PDF
⚡ Error Boundaries Graceful error handling
📊 Skeleton Loaders Better loading UX

🛠️ Backend Improvements

  • SimpleCache: TTL-based caching for expensive operations
  • Timeout Handling: Configurable timeouts with retry logic
  • Structured Logging: Better debugging and monitoring
  • Health Check: /health endpoint for deployment platforms

📦 Deployment Ready

  • Vercel: Frontend configuration included
  • Railway: Backend config files (railway.json, Procfile, nixpacks.toml)
  • Render: Backend config (render.yaml)
  • Docker: Full Docker Compose support

📚 Documentation

  • README.md - Complete project documentation
  • DEPLOYMENT.md - Multi-platform deployment guide
  • API_SETUP.md - API key setup instructions
  • DEVELOPMENT.md - Local development guide
  • CONTRIBUTING.md - Contribution guidelines
  • Separate README files for frontend and backend

🏗️ Tech Stack

Layer Technologies
Frontend React, TypeScript, Vite, Tailwind, shadcn/ui, Framer Motion, Zustand
Backend FastAPI, Python 3.11, Pydantic, Groq API
Database Supabase (optional)
Deployment Vercel, Railway, Render, Docker

📋 Testing Instructions

  1. Clone the repository
  2. Copy .env.example to .env and add your Groq API key
  3. Backend: cd backend && pip install -r requirements.txt && uvicorn main:app --reload
  4. Frontend: cd frontend && npm install && npm run dev
  5. Visit http://localhost:5173

🔄 Migration Notes

  • Original Streamlit code preserved in job_search.py for reference
  • All 16 features from Streamlit version implemented
  • Enhanced with modern UI/UX patterns

Author: @msrishav-28

Major Changes:
- Frontend: React 18 + TypeScript + Vite + Tailwind CSS + shadcn/ui
- Backend: FastAPI with async support
- Added Framer Motion animations throughout UI
- Implemented all 16 features from original Streamlit app

New Features:
- Resume Analyzer with ATS scoring
- Job Search with multiple providers (LinkedIn, Indeed, etc.)
- Cover Letter Generator
- Interview Preparation with AI evaluation
- Career Insights dashboard
- Resume Builder with section enhancement
- Application Tracker with Supabase integration

Backend Improvements:
- SimpleCache with TTL for expensive operations
- Timeout handling with retry logic for AI calls
- Structured logging
- Health check endpoint

Deployment Ready:
- Vercel configuration for frontend
- Railway and Render configs for backend
- Docker Compose support
- Comprehensive documentation (README, DEPLOYMENT, API_SETUP, etc.)

Tech Stack:
- Frontend: React, TypeScript, Vite, Tailwind, shadcn/ui, Framer Motion, Zustand
- Backend: FastAPI, Python 3.11, Groq API (Llama 3.3 70B)
- Database: Supabase (optional)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant