A modern, full-stack application for creating and managing professional CVs with both web and desktop interfaces.
- Features
- System Requirements
- Quick Start
- Development Setup
- Project Structure
- Common Issues
- Contributing
- Documentation
- License
- Bilingual support (English and Spanish) 🌎
- Real-time CV preview 👀
- Multiple export formats:
- HTML 🌐
- PDF 📑
- Markdown ⬇️
 
- Save/load CV data (JSON) 💾
- Customizable sections:
- Personal Information 👤
- Professional Experience 💼
- Academic Experience 🎓
- Skills 🛠️
- Certificates 🏆
 
- Profile photo support 🖼️
- Modern tech stack:
- Frontend: React + TypeScript + Material-UI
- Backend: FastAPI + Python
- Cache: Redis
- Containers: Docker
 
- Advanced functionality:
- Multiple CV templates
- Form validation
- Multi-language (i18n)
- Real-time preview
 
- Python 3.11.5
- Node.js 18+
- Docker 20.10.0+
- Docker Compose 2.0.0+
- wkhtmltopdf 0.12.6+
- 4GB RAM minimum
- 10GB free disk space
Windows Setup
# Install WSL2 if not installed
wsl --install
# Install Chocolatey (PowerShell as Admin)
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
# Install dependencies
choco install python nodejs docker-desktop wkhtmltopdf gitmacOS Setup
# Install Homebrew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# Install dependencies
brew install python@3.11 node docker wkhtmltopdf gitLinux Setup
# Update and install
sudo apt update
sudo apt install -y python3.11 nodejs docker.io docker-compose wkhtmltopdf git- 
Clone and setup: git clone https://github.com/yourusername/cv-generator.git cd cv-generator
- 
Configure environment: cp web/backend/.env.example web/backend/.env cp web/frontend/.env.example web/frontend/.env 
- 
Start development environment: chmod +x dev.sh # Unix-like systems ./dev.sh start
# Backend (.env)
API_HOST=0.0.0.0
API_PORT=8000
DEBUG=True
REDIS_HOST=172.19.0.2
REDIS_PORT=6379
# Frontend (.env)
REACT_APP_API_URL=http://localhost:8000- 
Code Quality - Linting: npm run lint
- Formatting: npm run format
- Type checking: npm run type-check
 
- Linting: 
- 
Testing - Run tests: npm test
- Coverage: npm run test:coverage
 
- Run tests: 
- 
Build and Analysis - Production build: npm run build
- Bundle analysis: npm run analyze
 
- Production build: 
# Install core type definitions
npm install --save-dev @types/react @types/react-dom @types/node
npm install --save-dev @types/axios @types/i18next
npm install --save-dev @types/jest @types/testing-library__react
# Verify installations
npm ls | grep "@types"- npm start- Start development server
- npm run dev- Start development server with hot reload
- npm run build- Create production build
- npm run build:prod- Create production build with production environment
- npm test- Run tests in watch mode
- npm run test:coverage- Run tests with coverage report
- npm run test:ci- Run tests in CI mode (single run)
- npm run lint- Check code style issues
- npm run lint:fix- Fix code style issues automatically
- npm run format- Format code with Prettier
- npm run format:check- Check code formatting
- npm run type-check- Check TypeScript types
- npm run type-check:watch- Check TypeScript types in watch mode
- npm run analyze- Analyze bundle size with source-map-explorer
- npm run clean- Remove build directories and cache
- npm run ci- Run all checks (types, lint, tests) - used in CI
- npm run storybook- Start Storybook development server
- npm run build-storybook- Build static Storybook documentation
- npm run prepare- Install husky git hooks
- npm run precommit- Run pre-commit checks (automatically run by husky)
# Start development
npm run dev
# Run tests with coverage
npm run test:coverage
# Check and fix code style
npm run lint:fix
npm run format
# Prepare for production
npm run build:prod
# Run all checks before committing
npm run ci- Visual Studio Code
- "Dev Containers" extension in VS Code
- Docker Desktop (Windows/Mac) or Docker Engine (Linux)
- Git
- 
Initial Setup # Clone the repository git clone https://github.com/yourusername/cv-generator.git cd cv-generator # Copy environment files cp web/backend/.env.example web/backend/.env cp web/frontend/.env.example web/frontend/.env 
- 
Open in DevContainer - Open VS Code
- Press F1orCtrl+Shift+P
- Type "Dev Containers: Open Folder in Container"
- Select the project folder
 
- 
Wait for Build - Container will build automatically
- VS Code will reconnect to container
- Extensions will install automatically
 
- 
Start Services # Grant execution permissions to dev script (if needed) chmod +x dev.sh # Start all services ./dev.sh start 
- 
Verify Execution - Backend API: http://localhost:8000
- Frontend: http://localhost:3000
- API Documentation: http://localhost:8000/docs
 
# Restart services
./dev.sh restart
# View logs
./dev.sh logs
# Stop services
./dev.sh stop
# Run tests
./dev.sh test
# Clean containers and cache
./dev.sh cleanPort Issues
# Check ports in use
sudo lsof -i :8000
sudo lsof -i :3000
# Kill processes if needed
sudo kill -9 <PID>Docker Permission Issues
# Add user to docker group (Linux)
sudo usermod -aG docker $USER
newgrp dockerNode Modules Issues
# Inside the container
cd web/frontend
rm -rf node_modules package-lock.json
npm installDependency Updates
# Rebuild container
./dev.sh rebuild# Clone the repository
git clone https://github.com/yourusername/cv-generator.git
cd cv-generator
# Copy environment files
cp web/backend/.env.example web/backend/.env
cp web/frontend/.env.example web/frontend/.env
# Start development environment
chmod +x dev.sh
./dev.sh startcv-generator/
├── web/
│   ├── frontend/          # React application
│   │   ├── src/
│   │   │   ├── components/
│   │   │   ├── services/
│   │   │   ├── i18n/
│   │   │   └── types/
│   │   └── public/
│   └── backend/          # FastAPI application
├── shared/              # Shared utilities
├── docker/             # Docker configuration
└── tests/              # Test suites
TypeScript/Linter Issues
- Missing module declarations:
rm -rf node_modules package-lock.json npm install 
- Type checking errors:
npm run type-check npm run lint:fix 
Docker Issues
- Permission errors:
sudo usermod -aG docker $USER # Linux/macOS 
- Cache problems:
docker system prune -a docker-compose build --no-cache 
Development Server Issues
- Hot reload not working:
npm run dev # Or with Docker ./dev.sh restart
- Fork and clone
- Create feature branch
- Make changes
- Run tests and linting
- Submit pull request
For detailed guidelines, see CONTRIBUTING.md
- API Documentation: /docsendpoint
- Frontend Documentation: Generated with Storybook
- Code Documentation: Inline documentation and type hints
This project is licensed under the MIT License - see the LICENSE file for details.