Skip to content

vincentanu04/CV-builder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

213 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CV-builder

Live site: https://cv-builder.fly.dev/

image

Enter your personal details in order to get a personalized CV printed as a PDF! Supports export and import as JSON.

Current deployment:

  • FE & BE: Fly.io (1 app)
  • DB: Supabase

Design Document

Core Features

1. User Accounts and Resume Storage

  • User Registration: Enable new users to create an account with email and password.
  • User Login: Authenticate users using email and password.
  • Resume Management:
    • Save: Allow users to upload or create resumes and store them securely.
    • Retrieve: Provide access to previously saved resumes.
    • Update: Allow edits to existing resumes.
    • Delete: Enable users to remove resumes they no longer need.

2. Resume Templates

  • Template Selection: Offer a variety of pre-designed templates.
    • Resume Creation: Allow template selection when creating a resume.
    • Resume Editing: Allow template selection when editing a resume.

3. Resume Review Service

AI-Powered Resume Suggestions

  • Grammar and ATS Compliance Checks: Integrate language processing tools to check grammar and suggest ATS-friendly formats.
  • Enhanced Suggestions: Provide actionable feedback on resumes such as suggesting better phrasing, metrics, weak action verbs and structure for resume entries.
  • Highlight Missing Sections: High light missing or incomplete sections of the resume (e.g., experience, education).

Peer Review System

  • Resume Sharing:
    • Allow users to share their resumes with others for feedback.
  • Reviewer Feedback:
    • Allow reviewers to add comments and give structured feedback on specific sections.
    • Include options for ratings (e.g., 1-5 stars for each section).
  • History Tracking:
    • Maintain a record of feedback history for users to revisit.

Architecture

1. Backend

  • Language: Go

  • Database: MySQL

    • Users Table:
    CREATE TABLE users (
      id INT AUTO_INCREMENT PRIMARY KEY,
      email VARCHAR(255) UNIQUE NOT NULL,
      password VARCHAR(255) NOT NULL,
    );
    • Resume Metadata Table:
    CREATE TABLE resume_metadatas (
      id INT AUTO_INCREMENT PRIMARY KEY,
      title VARCHAR(255) NOT NULL,
      resume_id INT NOT NULL,
      user_id INT NOT NULL,
      created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
      updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
      FOREIGN KEY (resume_id) REFERENCES resumes (id) ON DELETE CASCADE,
      FOREIGN KEY (user_id) REFERENCES users (id) ON DELETE CASCADE,
    );
    • Resumes Table:
    CREATE TABLE resumes (
      id INT AUTO_INCREMENT PRIMARY KEY,
      template_name VARCHAR(255) NOT NULL,
      data TEXT NOT NULL,
      created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
      updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    );
    • Feedback Table (for Peer Review): id, resume_id, reviewer_id, comments (JSON), ratings (JSON), created_at
  • AI Service: Python-based microservice integrated using REST/gRPC for grammar checks and ATS analysis.

2. Frontend

  • Framework: React

  • Key Components:

    • Form Component: For creating/updating resumes.
    • Template Selector: Displays available templates.
    • User Resumes: Displays a user's resumes.
    • Review Feedback: Interface for peer review and AI suggestions.
  • Template Storage:

    • Resume templates are stored in the frontend as stylesheets and CV components.

API Endpoints

User Management

  • POST /register: Register a new user.
  • POST /login: Authenticate user and issue a token.

Resume Management

  • POST /resumes: Create a new resume.
  • GET /resume_metadatas: Retrieve all resumes metadatas for the authenticated user.
  • PATCH /resume_metadatas/{id}/title: Update resume metadata title.
  • GET /resumes/{id}: Retrieve a specific resume.
  • PATCH /resumes/{id}: Update a specific resume.
  • DELETE /resumes/{id}: Delete a specific resume.

Resume Review

  • POST /reviews/{resume_id}: Submit peer feedback for a resume.
  • GET /reviews/{resume_id}: Retrieve all reviews for a specific resume.
  • POST /ai/review: Submit a resume for AI-powered analysis.

About

Enter your details in order to get a personalized CV printed as a PDF! Has additional functionality of downloading and importing from JSON.Built with React and Go.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors