This project is a CV Builder API built using Java Spring Boot and JPA Hibernate. The system allows users to create and manage their CVs, including sections and content within those sections. The project is designed to be scalable and flexible, allowing for customization through templates.
- Java Spring Boot: For building the RESTful API.
- JPA Hibernate: For ORM (Object-Relational Mapping) and database interactions.
- PostgreSQL: For the database to store user, CV, section, section content, and template data.
- Spring Security: For securing the application with authentication and authorization mechanisms.
- Java Development Kit (JDK) 17 or higher.
- Maven 3.8.6 or higher.
- PostgreSQL database.
Ensure you have the following installed:
git clone https://github.com/wastech/cv-builder-api.git
cd cv-builder-api
Update the application.properties
or application.yml
file with your PostgreSQL database credentials.
mvn clean install
mvn spring-boot:run
- Profile Creation: Enable users to create and manage profiles with details like name, contact information, and job title.
- Multiple CV/Resume Versions: Allow users to save and manage multiple CV versions for different job applications.
- Template Selection: Offer a range of customizable templates (e.g., Classic, Modern, Minimalistic).
- Personal Information: Include details like name, phone, email, LinkedIn profile, and website.
- Professional Summary: A concise summary of the user’s background and key skills.
- Work Experience: Add job titles, company names, locations, dates, and descriptions of responsibilities and achievements.
- Education: List institutions, degrees, fields of study, and graduation dates.
- Skills Section: Add both soft and hard skills relevant to the user’s profession.
- Projects: List projects with descriptions, technologies used, and links (e.g., GitHub, live URL).
- Certifications and Awards: Add recognitions, certifications, or awards.
- Languages: List languages and proficiency levels.
- References: Option to include references or indicate availability upon request.
- Font and Color Options: Change fonts, colors, and sizes.
- Section Reordering: Rearrange sections with drag-and-drop functionality.
- Margin and Spacing Adjustment: Control padding, margins, and line spacing.
- Visual Elements: Add or remove borders, dividers, or icons.
- PDF Export: Generate and download CVs/resumes as PDF files.
- File Naming: Customize file names based on template, job title, etc.
- Printable Versions: Ensure PDFs are print-ready.
- Save Drafts: Allow users to save drafts for later editing.
- Cloud Storage: Securely store user data and drafts.
- Views and Engagement Metrics: Track views of shared links.
- Data Encryption: Ensure all user data is securely encrypted.
- GDPR Compliance: Provide data export or deletion options to meet privacy regulations.
- User Authentication: Secure login options, potentially with two-factor authentication.
With these features, the app offers a comprehensive and intuitive experience, allowing users to create high-quality, professional CVs tailored to their needs.
- Spring Boot Starter
- Spring Boot Starter Data JDBC
- Spring Boot Starter Data JPA
- Spring Boot Starter Test
- Mockito Core
- Spring Boot Starter Validation
- Spring Boot Starter Web
- Cloudinary HTTP 44
- PostgreSQL
- Lombok
- ModelMapper
- Spring Boot Starter Security
- SpringDoc OpenAPI Starter WebMVC UI
- JJWT API
- Spring Boot Starter Mail
- JJWT Implementation
- JJWT Jackson
http://localhost:8081/swagger-ui/index.html