An intelligent interview preparation and analysis tool powered by AI. This application helps users prepare for interviews, analyze job descriptions, manage resumes, and get AI-powered feedback on their interview performance.
- Interview Management: Create, track, and analyze interview sessions
- Job Analysis: Upload and analyze job descriptions
- Resume Management: Store and manage multiple resumes
- AI Analysis: Get AI-powered insights on interview performance and job fit
- Dashboard: Overview of all your preparation progress
- Authentication: Secure user authentication and session management
- React 18 with TypeScript
- Vite for fast build and HMR
- Tailwind CSS for styling
- Electron for desktop application
- React Router for navigation
- FastAPI (Python) for REST API
- SQLAlchemy for ORM
- Google Gemini AI for analysis
- SQLite for database
βββ src/ # Frontend source code
β βββ main/ # Electron main process
β βββ preload/ # Electron preload scripts
β βββ renderer/ # React application
β βββ src/
β β βββ components/ # Reusable React components
β β βββ pages/ # Page components
β β βββ api/ # API client functions
β β βββ auth/ # Authentication context and helpers
β β βββ utils/ # Utility functions
β βββ index.html
βββ backend/ # Backend source code
β βββ app/
β βββ main.py # FastAPI application entry point
β βββ models.py # SQLAlchemy models
β βββ schemas.py # Pydantic schemas
β βββ crud.py # Database operations
β βββ routers/ # API route handlers
β βββ services/ # Business logic (Gemini AI, etc.)
β βββ core/ # Configuration and security
βββ package.json # Frontend dependencies
βββ tsconfig.json # TypeScript configuration
βββ electron-builder.yml # Electron build configuration
βββ README.md # This file
- Node.js (v16 or higher)
- npm or yarn
- Python 3.8+
- pip
- Google Gemini API Key (get one at https://aistudio.google.com/)
git clone https://github.com/trc0214/TKU-InterviewAssistant-v2.git
cd TKU-InterviewAssistant-v2# Install dependencies
npm install
# Copy environment file and update with your settings
cp .env.example .env.localcd backend
# Create a virtual environment
python -m venv venv
# Activate virtual environment
# On Windows:
venv\Scripts\activate
# On macOS/Linux:
source venv/bin/activate
# Install dependencies
pip install -r requirements.txt
# Create .env file with your configuration
cp env.example .envUpdate backend/.env with your settings:
DATABASE_URL=sqlite:///./app.db
GOOGLE_API_KEY=your_gemini_api_key_here
SECRET_KEY=your_secret_key_here
cd backend
source venv/bin/activate # or venv\Scripts\activate on Windows
python -m uvicorn app.main:app --reload --host 0.0.0.0 --port 8000The API will be available at http://localhost:8000
npm run devThe application will open at http://localhost:5173
npm run buildnpm run build:win # Windows
npm run build:mac # macOS
npm run build:linux # LinuxOnce the backend is running, visit:
- Swagger UI: http://localhost:8000/docs
- ReDoc: http://localhost:8000/redoc
We welcome contributions! Here's how you can help:
git clone https://github.com/YOUR_USERNAME/TKU-InterviewAssistant-v2.git
cd TKU-InterviewAssistant-v2git checkout -b feature/your-feature-name- Follow the existing code style
- Add comments for complex logic
- Test your changes locally
git commit -m "feat: add your feature description"Use conventional commit messages:
feat:for new featuresfix:for bug fixesdocs:for documentationstyle:for code style changesrefactor:for code refactoringtest:for test additionschore:for maintenance tasks
git push origin feature/your-feature-nameThen create a pull request on GitHub.
- Frontend: Use functional components with hooks, TypeScript for type safety
- Backend: Follow PEP 8, use type hints, write docstrings
- Database: Keep migrations organized, use SQLAlchemy ORM
- Git: Commit frequently with clear messages
- Ensure the backend is running on
http://localhost:8000 - Check
backend/.envhas correct configuration - Verify GOOGLE_API_KEY is set correctly
- Delete
node_modulesandpackage-lock.json, then runnpm install - Clear Vite cache:
rm -rf distand retry
- Reset database: Delete
backend/app.dband restart the backend - Run migrations if applicable
This project is open source. Please check the LICENSE file for details.
- Project Lead: @trc0214
For questions, suggestions, or issues:
- Open an Issue
- Submit a Pull Request
Happy Interviewing! π€β¨