ResumeSpyWeb is the front-end of the Resume Manager platform, built with Vue 3, Vuetify, and Vite. It allows users to interact with resumes, manage multiple versions, and create customized resumes for job descriptions (JDs).
- Resume Display: View and manage resumes in multiple languages.
- Resume Creation: Create and customize resumes tailored to job descriptions.
- Version Control Interface: Compare different versions of resumes and revert to previous versions.
- Multi-language Support: Switch between different languages for resume management.
- End-to-End Testing: Full testing using Cypress.
- Front-End: Vue 3 with Vuetify
- State Management: Pinia
- Routing: Vue Router
- API Communication: Axios
- Build Tool: Vite
- TypeScript: For type safety
- Testing: Vitest (unit tests), Cypress (e2e tests)
This repository uses GitHub Actions for Continuous Integration (CI) and Vercel for Continuous Deployment (CD).
- CI: GitHub Actions validates code quality (lint, type-check, build, tests)
- CD: Vercel handles all deployments automatically via GitHub integration
CI runs automatically on:
- Pull Requests: Validates code quality before merging
- Push to master/release: Ensures production-ready code
- Checkout - Clone the repository
- Install Dependencies - Run
npm ci - Lint - Check code style with ESLint
- Type Check - Validate TypeScript types
- Build - Build the production bundle
- Unit Tests - Run Vitest tests
This project uses Vercel for continuous deployment. Vercel automatically deploys the application based on Git branch activity.
| Environment | Branch | API Endpoint | Vercel Type | Auto-Deploy |
|---|---|---|---|---|
| Production | master |
PROD API | Production | ✅ Yes |
| Preview | PR branches | DEV API | Preview | ✅ Yes |
| Local Dev | - | Local backend | - | Manual |
When you create or update a Pull Request:
-
GitHub CI runs automatically:
- Installs dependencies
- Runs linting
- Runs type checking
- Builds the application
- Runs unit tests
-
Vercel automatically:
- Detects the PR
- Builds the application using
.env.development(DEV API) - Generates a unique preview URL (e.g.,
https://resumespyweb-pr-123.vercel.app) - Posts the preview URL as a comment on the PR
- Updates the preview on every new commit to the PR
-
You can:
- Click the preview URL to test changes in a real environment
- Share the preview URL with team members for review
- Verify that the DEV API integration works correctly
Preview deployments use the DEV API configured in .env.development.
When you merge a PR to master:
-
GitHub CI validates the code again on
master -
Vercel automatically:
- Detects the push to
master - Builds the application using
.env.production(PROD API) - Deploys to the production domain (e.g.,
https://resumespy.comorhttps://resumespyweb.vercel.app) - The deployment typically completes in 1-2 minutes
- Detects the push to
Production deployments use the PROD API configured in .env.production.
-
Install Vercel GitHub App:
- Go to Vercel
- Sign in with your GitHub account
- Click "Import Project"
- Select
feifeijin/ResumeSpyWebrepository - Vercel will auto-detect Vite settings
-
Configure Environment Variables in Vercel (if needed):
- Go to Vercel Dashboard → Your Project → Settings → Environment Variables
- For Production, set:
VITE_API_BASE_URL=https://your-actual-prod-api.com/
- For Preview, set:
VITE_API_BASE_URL=https://your-actual-dev-api.com/
Note: Environment variables in Vercel override values in
.env.developmentand.env.productionif set. Use Vercel environment variables for sensitive or environment-specific URLs. -
Configure Production Domain (optional):
- Go to Vercel Dashboard → Your Project → Settings → Domains
- Add your custom domain (e.g.,
app.resumespy.com) - Vercel provides automatic HTTPS certificates
- Open the PR on GitHub
- Wait for the Vercel bot to comment with the preview URL
- Click the preview URL
- Open browser DevTools → Network tab
- Verify API calls go to the DEV API endpoint
- Test the application functionality
- After merging to
master, go to the Vercel Dashboard - Wait for the deployment to complete (watch the Deployments tab)
- Visit your production URL
- Open browser DevTools → Network tab
- Verify API calls go to the PROD API endpoint
- Perform smoke tests on critical features
| File | Purpose | Committed? | Used By |
|---|---|---|---|
.env.development |
DEV API configuration | ✅ Yes | PR previews & local dev |
.env.production |
PROD API configuration | ✅ Yes | Production deployments |
.env.local |
Local overrides (optional) | ❌ No (gitignored) | Local development only |
.env.example |
Template for contributors | ✅ Yes | Documentation |
If a production deployment has issues:
-
Instant Rollback (Vercel Dashboard):
- Go to Vercel Dashboard → Deployments
- Find the last stable deployment
- Click "..." → "Promote to Production"
-
Git Rollback:
- Revert the problematic commit on
master - Push to
master - Vercel will automatically redeploy
- Revert the problematic commit on
- Check that the Vercel GitHub App has access to the repository
- Verify Vercel project settings include the correct branch configuration
- Check Vercel deployment logs for build errors
- Verify
.env.developmentand.env.productionhave correct values - Check Vercel environment variable overrides in the dashboard
- Inspect network requests in browser DevTools to confirm the API base URL
- Check Vercel deployment logs for specific error messages
- Ensure
package.jsonscripts are correct (build,build-only) - Verify that all dependencies are listed in
package.json - Test the build locally:
npm run build
- CI (GitHub Actions): Validates code quality (lint, type-check, test, build)
- CD (Vercel): Handles deployment to hosting infrastructure
- GitHub Actions does NOT deploy - it only validates
- Vercel handles all deployment operations automatically
This separation ensures:
- Fast CI feedback (no deployment overhead)
- Reliable deployments managed by Vercel's infrastructure
- Clear separation of concerns