Skip to content

trc0214/TKU-InterviewAssistant-v2

Repository files navigation

TKU Interview Assistant v2

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.

🎯 Features

  • 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

πŸ› οΈ Tech Stack

Frontend

  • React 18 with TypeScript
  • Vite for fast build and HMR
  • Tailwind CSS for styling
  • Electron for desktop application
  • React Router for navigation

Backend

  • FastAPI (Python) for REST API
  • SQLAlchemy for ORM
  • Google Gemini AI for analysis
  • SQLite for database

πŸ“ Project Structure

β”œβ”€β”€ 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

πŸš€ Getting Started

Prerequisites

Installation

1. Clone the Repository

git clone https://github.com/trc0214/TKU-InterviewAssistant-v2.git
cd TKU-InterviewAssistant-v2

2. Frontend Setup

# Install dependencies
npm install

# Copy environment file and update with your settings
cp .env.example .env.local

3. Backend Setup

cd 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 .env

Update backend/.env with your settings:

DATABASE_URL=sqlite:///./app.db
GOOGLE_API_KEY=your_gemini_api_key_here
SECRET_KEY=your_secret_key_here

πŸƒ Running the Application

Development Mode

Terminal 1 - Backend API

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 8000

The API will be available at http://localhost:8000

Terminal 2 - Frontend Development

npm run dev

The application will open at http://localhost:5173

Building for Production

Build Frontend

npm run build

Build Electron App

npm run build:win    # Windows
npm run build:mac    # macOS
npm run build:linux  # Linux

πŸ“š API Documentation

Once the backend is running, visit:

🀝 Contributing

We welcome contributions! Here's how you can help:

1. Fork and Clone

git clone https://github.com/YOUR_USERNAME/TKU-InterviewAssistant-v2.git
cd TKU-InterviewAssistant-v2

2. Create a Feature Branch

git checkout -b feature/your-feature-name

3. Make Your Changes

  • Follow the existing code style
  • Add comments for complex logic
  • Test your changes locally

4. Commit Your Changes

git commit -m "feat: add your feature description"

Use conventional commit messages:

  • feat: for new features
  • fix: for bug fixes
  • docs: for documentation
  • style: for code style changes
  • refactor: for code refactoring
  • test: for test additions
  • chore: for maintenance tasks

5. Push and Create a Pull Request

git push origin feature/your-feature-name

Then create a pull request on GitHub.

πŸ“– Development Guidelines

  • 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

πŸ› Troubleshooting

Backend Connection Issues

  • Ensure the backend is running on http://localhost:8000
  • Check backend/.env has correct configuration
  • Verify GOOGLE_API_KEY is set correctly

Frontend Build Issues

  • Delete node_modules and package-lock.json, then run npm install
  • Clear Vite cache: rm -rf dist and retry

Database Issues

  • Reset database: Delete backend/app.db and restart the backend
  • Run migrations if applicable

πŸ“ License

This project is open source. Please check the LICENSE file for details.

πŸ‘₯ Maintainers

πŸ“§ Contact & Support

For questions, suggestions, or issues:


Happy Interviewing! 🎀✨

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors