Skip to content

idmcalculus/cvflo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

6 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

CVFlo

A modern, full-stack CV builder application that allows users to create professional CVs with multiple templates and export them as PDF files.

๐Ÿš€ Features

  • Modern UI: Clean, responsive interface built with React 19 and Tailwind CSS
  • Multiple Templates: Choose from Classic, Modern, and Academic CV templates
  • Real-time Preview: See your CV update in real-time as you edit
  • Rich Text Editor: Quill-powered editor for detailed descriptions
  • PDF Export: High-quality PDF generation with professional formatting
  • Auto-save: Automatic persistence of your work
  • Section Management: Toggle CV sections on/off for customization
  • Form Validation: Comprehensive input validation and error handling

๐Ÿ› ๏ธ Tech Stack

Frontend

  • React 19 with TypeScript
  • Tailwind CSS 4.x for styling
  • Zustand for state management
  • Quill for rich text editing
  • Vite for development and building

Backend

  • Express.js with TypeScript
  • Bun runtime for performance
  • Puppeteer for PDF generation
  • Winston for logging
  • Helmet for security

๐Ÿ“ Project Structure

cvflo/
โ”œโ”€โ”€ client/                 # React frontend
โ”‚   โ”œโ”€โ”€ src/
โ”‚   โ”‚   โ”œโ”€โ”€ components/     # React components
โ”‚   โ”‚   โ”œโ”€โ”€ store/          # Zustand store
โ”‚   โ”‚   โ””โ”€โ”€ types/          # TypeScript definitions
โ”‚   โ””โ”€โ”€ ...
โ”œโ”€โ”€ server/                 # Express backend
โ”‚   โ”œโ”€โ”€ src/
โ”‚   โ”‚   โ”œโ”€โ”€ controllers/    # API controllers
โ”‚   โ”‚   โ”œโ”€โ”€ services/       # Business logic
โ”‚   โ”‚   โ”œโ”€โ”€ middleware/     # Express middleware
โ”‚   โ”‚   โ””โ”€โ”€ utils/          # Utility functions
โ”‚   โ””โ”€โ”€ templates/          # PDF templates
โ””โ”€โ”€ README.md

๐Ÿš€ Getting Started

Prerequisites

  • Bun (latest version)
  • Git

Installation

  1. Clone the repository:
git clone <repository-url>
cd cvflo
  1. Install dependencies:
# Install server dependencies
cd server
bun install

# Install client dependencies
cd ../client
bun install
  1. Set up environment variables:
# In server directory
cp .env.example .env
# Edit .env with your configuration
  1. Start development servers:
# Option 1: Full-stack development (recommended)
cd server
bun run dev:full

# Option 2: Separate terminals
# Terminal 1 - Backend
cd server
bun run dev

# Terminal 2 - Frontend
cd client
bun run dev
  1. Open your browser:
    • Application: http://localhost:3000
    • API: http://127.0.0.1:8000

๐Ÿ“ฆ Available Scripts

Server Scripts

bun run dev          # Start development server with hot reload
bun run start        # Start production server
bun run build        # Build TypeScript
bun run test         # Run tests
bun run dev:full     # Build client + start server (full-stack dev)
bun run start:full   # Build client + start production server

Client Scripts

bun run dev          # Start development server
bun run build        # Build for production
bun run lint         # Run ESLint
bun run preview      # Preview production build

๐Ÿš€ Deployment

Railway (Recommended)

  1. Install Railway CLI:
npm install -g @railway/cli
  1. Deploy:
cd server
railway login
railway init
railway up

Other Platforms

  • Vercel: Deploy from /server directory
  • Render: Use Docker with Bun runtime
  • Google Cloud Run: Containerized deployment

๐Ÿงช Testing

Run the test suite:

cd server
bun run test           # Run all tests
bun run test:watch     # Run tests in watch mode
bun run test:coverage  # Run tests with coverage

๐Ÿ“„ API Documentation

Endpoints

  • POST /api/generate-pdf - Generate PDF from CV data
  • GET /api/health - Health check endpoint

Request Format

{
  "personalInfo": {
    "fullName": "John Doe",
    "email": "john@example.com",
    "phone": "+1234567890"
  },
  "workExperience": [...],
  "education": [...],
  "skills": [...],
  "template": "modern-0"
}

๐Ÿ”ง Configuration

Environment Variables

Variable Description Default
PORT Server port 5001
NODE_ENV Environment development
CLIENT_URL Frontend URL for CORS http://localhost:3000
RATE_LIMIT_WINDOW_MS Rate limit window 900000
RATE_LIMIT_MAX Max requests per window 100

๐Ÿค Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Development Guidelines

  • Follow TypeScript best practices
  • Use existing code patterns and conventions
  • Add tests for new features
  • Ensure linting passes before committing
  • Update documentation as needed

๐Ÿ“ License

This project is licensed under the MIT License - see the LICENSE file for details.

๐Ÿ™ Acknowledgments

๐Ÿ› Issues and Support

If you encounter any issues or have questions:

  1. Check the Issues page
  2. Create a new issue with detailed information
  3. Include steps to reproduce the problem

๐Ÿ”ฎ Roadmap

  • User authentication and accounts
  • Template customization
  • Multiple CV management
  • Export to different formats (Word, HTML)
  • Social media integration
  • Advanced analytics

Built with โค๏ธ using Bun, React, and TypeScript

About

A modern, full-stack CV builder application that allows users to create professional CVs with multiple templates and export them as PDF files.

Topics

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors