Skip to content

Full-stack web app. Create a professional, ATS-friendly resume with an intuitive CVbuilder. Real-time preview, instant PDF export, and beautiful formatting. Tech Stack Java Spring Boot, MongoDB, React.js, TypeScript, Spring Security, JWT-authentication.

Notifications You must be signed in to change notification settings

AlberthMartin/cv-builder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 

Repository files navigation

CV Builder Full Stack Web App

Build Your Perfect CV in Minutes. Create a professional, ATS-friendly resume with this intuitive CV builder. Real-time preview, instant PDF export, and beautiful formatting.

Features:

  • Real-time Preview (See your changes instantly as you type. What you see is exactly what you get in your final PDF)
  • Professional Layout (Clean, modern design that hiring managers love. Perfect A4 formatting optimized for ATS systems)
  • Instant PDF Export (Download your CV as a professional PDF with one click. Ready to send to employers immediately)
  • Auto-Save (Never lose your work. Your CV is automatically saved as you type, keeping your data secure.)

Preview

  1. Landing Page:
image
  1. CV Builder page preview.
image
  1. PDF format of the CV i built with this app.
image
  1. Settings Page (functionallity not yet implemented)
image

Tech Stack

  • Backend : Java Spring Boot (Maven, Spring Security, JWT-authentication)
  • Frontend : React.js, TypeScript, Vite
  • Database : MongoDB
  • Other : IntelliJ IDEA, Postman Api Testing, Git

Project Structure

cv-builder/
├── backend/  Spring Boot API (Java + Maven)
│ ├── src/
│ ├── pom.xml
│ └── ...
├── frontend/  React (Vite) client
│ ├── src/
│ ├── package.json
│ └── ...
└── .gitignore

Backend folder structure:

image

Frontend folder structure:

image

Project setup Instructions

1. Clone the Repo

git clone https://github.com/AlberthMartin/cv-builder.git

2. IntelliJ setup

  • Open the root foler in IntelliJ IDEA.
  • IDEA will auto detect backend as a Maven project and frontend as a Node.js project.
  • You'll get both Spring Boot run configs and npm run scripts in the same IDE window
  • You can now open two terminals inside IntelliJ, one in backend/ and one in frontend/

3. Backend Setup (Spring Boot)

cd backend
mvn clean install
mvn spring-boot:run

There is an application.properties.example, remember to create an application.properties file and fill in the needed information.

spring.application.name=cvbuilder

# Server Port
server.port = 8080

# MongoDB Connection String
spring.data.mongodb.uri = MONGODB_CONNECTION_STRING_HERE

# API Base Path
api.prefix = /api/v1

## 1 hour
auth.token.expirationInMils = 3600000

## JWT Secret Key
auth.token.jwtSecret = your_jwt_secret_key_here

4. Frontend Setup (vite + React)

In a new terminal window/tab:

cd frontend
npm install
npm run dev
  • Default URL: http://localhost:5173, it needs to be this port for it to be able to communicate with the backend

  • If you configured your backend to run on an other port than 8081, you need to change this in vite.config.ts.

System Architecture

  • Frontend (Vite + React + TypeScript) handles UI, routing, and API calls.
  • Backend (Spring Boot) exposes REST endpoints for authentication and data persistence.
  • Database (MongoDB) stores user and CV data.

API Endpoints

Authentication

Method Endpoint Description Auth Required
POST /api/v1/auth/login Log in and receive JWT token no
POST /api/v1/auth/logout Log in and receive JWT token no
POST /api/v1/user/register Register a new user no

User data Management

Method Endpoint Description Auth Required
GET /api/v1/user/me Get current user details including CV Data and settings yes
PUT /api/v1/user/me Update CV Data yes

Data Model User Object (MongoDB)

{
  "_id": "123",
  "email": "alberth.martin01@gmail.c",
  "password": "ENCRYPTED",
  "cvData": {
    "personalInfo": {
      "name": "Alberth Martin",
      "CVemail": "alberth.martin01@gmail.comv",
      "title": "Master’s Student in Computer Engineering",
      "phone": "+358401915419",
      "location": "Turku, Finland",
      "linkedin": "www.linkedin.com/in/alberth-martin-36aa47261",
      "github": "https://github.com/AlberthMartin",
      "website": "https://portfolio-website-2v0x.onrender.com/"
    },
    "summary": "Core computer science combined with engineering courses has strengthened my problem-solving skills and teamwork abilities during...",
    "education": [
      {
        "_id": "1762079090653",
        "degree": "Bachelor’s Degree in Computer Engineering with Honours",
        "institution": "Åbo Akademi",
        "fromDate": "Sep 2022",
        "toDate": "Jun 2025",
        "gpa": "4.06/ 5",
        "description": "Algorithms & Data Structures, Software Engineering & Requirements Analysis, Object Oriented Design and Databases.\nMost of my university coursework was carried out in Java, often in collaborative team settings.\nThesis on \"Using Convolutional Neural Networks for Network Intrusion Detection” Graded (5/5)"
      },
      {
        "_id": "1762079746843",
        "degree": "Master’s Degree in Computer Engineering",
        "institution": "Åbo Akademi",
        "fromDate": "Sep 2025",
        "toDate": "Present",
        "description": "Planned coursework includes: Software Engineering (Testing, Quality, Security), Scalable Software Systems (Cloud Computing (AWS), Parallel & GPU Programming) and Cyber Security."
      }
    ],
    "projects": [
      {
        "_id": "1762079866703",
        "title": "Training Management System",
        "description": "Full-stack web app with authentication for managing personalized workouts, logging sessions, and tracking completed workouts and statistics.",
        "techStack": "Node.js, MongoDB, React.js, ChakraUI, JWT-authentication, Express, Git",
        "link": "https://youtu.be/xExpPqn2YX4"
      },
      {
        "_id": "1762090206544",
        "title": "Parking Rental App (Startup) — Backend Developer",
        "description": "Developing a Java Spring Boot API backend with MySQL database for an AirBnB-like parking rental platform.\nTesting API via Postman and collaborating in a team environment.",
        "techStack": "Java Spring Boot, Spring Security, MySQL, JWT-authentication, REST API, Postman, Git",
        "link": "https://github.com/Forsander/Parking-Group-Project"
      }
    ],
    "experience": [
      {
        "_id": "1762091599696",
        "name": "Software Developer (Freelance)",
        "description": "Built a professional website for a law firm from the ground up. (https://bouppteckning.fi/)\nDelivered a smart home automation system using Home Assistant, integrating over 50 smart\ndevices (lights, sensors, speakers, switches) into an intuitive dashboard.",
        "skills": "React.js, Home Assistant, Requirements Engineering, Client Collaboration",
        "fromDate": "Apr 2025",
        "toDate": "Aug 2025"
      }
    ],
    "skills": [
      {
        "_id": "1762079207624",
        "category": "Programming Languages",
        "skills": "Java, Javascript, Python"
      },
      {
        "_id": "1762091866299",
        "category": "Databases:",
        "skills": "MySQL, MongoDB"
      }
    ]
  },
  "_class": "cvbuilder.cvbuilder.model.User"
}

More features coming...

  • CV theme settings
  • Customize sections
  • Improved formatting on CV...

About

Full-stack web app. Create a professional, ATS-friendly resume with an intuitive CVbuilder. Real-time preview, instant PDF export, and beautiful formatting. Tech Stack Java Spring Boot, MongoDB, React.js, TypeScript, Spring Security, JWT-authentication.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published