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 git
macOS 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 git
Linux 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 servernpm run dev
- Start development server with hot reloadnpm run build
- Create production buildnpm run build:prod
- Create production build with production environment
npm test
- Run tests in watch modenpm run test:coverage
- Run tests with coverage reportnpm run test:ci
- Run tests in CI mode (single run)
npm run lint
- Check code style issuesnpm run lint:fix
- Fix code style issues automaticallynpm run format
- Format code with Prettiernpm run format:check
- Check code formattingnpm run type-check
- Check TypeScript typesnpm run type-check:watch
- Check TypeScript types in watch mode
npm run analyze
- Analyze bundle size with source-map-explorernpm run clean
- Remove build directories and cachenpm run ci
- Run all checks (types, lint, tests) - used in CI
npm run storybook
- Start Storybook development servernpm run build-storybook
- Build static Storybook documentation
npm run prepare
- Install husky git hooksnpm 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
F1
orCtrl+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 clean
Port 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 docker
Node Modules Issues
# Inside the container
cd web/frontend
rm -rf node_modules package-lock.json
npm install
Dependency 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 start
cv-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:
/docs
endpoint - 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.