/ResumeBuilder

Resume Builder using Spring Boot, Thymeleaf & MongoDB

Primary LanguageJavaGNU General Public License v3.0GPL-3.0

Resume Builder

Resume Builder using Spring Boot, Thymeleaf & MongoDB

For latest details please switch to development branch


Description

Resume Builder is a web application that allows users to create and manage their resumes online. It provides a user-friendly interface for creating, editing, and downloading resumes in PDF format. The application utilizes technologies such as Java, Thymeleaf, Spring Boot, and iText for HTML to PDF conversion.


Features

  • User Registration: Users can create an account to access the application.

  • Resume Creation: Users can create a new resume by filling out a form with their personal information, projects, work experience, and skills.

  • Resume Editing: Users can edit their existing resumes, update information, add or remove sections.

  • HTML to PDF Conversion: The application uses iText to convert the resume HTML content into PDF format.

  • Download Resume: Users can download their resumes in PDF format to their local devices.

  • Visibility Settings: Users can manage the visibility of sections on their resume, such as hiding skills or contact information.

  • Logging: The application logs incoming requests to endpoints and provides helpful information for debugging and analysis.

  • Admin Panel: Administrators have access to an admin panel with additional privileges.

    • Grant/Revoke Admin Privileges: Administrators can grant or revoke admin privileges for other users.
    • Ban/Unban Users: Administrators can ban or unban users, restricting or restoring their access to the application.
    • View User Resume: Administrators can view any user's Resume. (They can't see any data user has chosen to hide on their visibility settings)

Technologies Used

  • Java 21

  • iText

  • MongoDB

  • Thymeleaf

  • Spring Boot 3

  • Spring Security 6

  • Firebase Storage


Installation

  1. Clone the repository
git clone https://github.com/sefaunal/ResumeBuilder.git

  1. Navigate to the project directory:
cd ResumeBuilder

  1. Switch to development branch
git checkout development

Configuration

MongoDB & Firebase Storage needs to be configured before you can start using ResumeBuilder Application.

MongoDB

ResumeBuilder uses MongoDB as its database. Application.yaml has already been configured. If you don't have it installed you can download it from here.

MongoDB Compass

You may need this for editing data on the database directly so i strongly suggest having this installed on your local environment as well. You can download the application from here.

Firebase Storage

ResumeBuilder Application uses Firebase for storing images like profile pictures & project photos.

To configure Firebase Storage:

  • Create a new project from Firebase Console.

  • Go to Project Settings -> Service Accounts -> Firebase Admin SDK -> Generate new private key.

  • Replace src/main/resources/cloud/firebase.json with your downloaded JSON file. Keep in mind that it should be named as "firebase.json".

  • Enable Firebase Storage.

  • From src/main/java/com/sefaunal/resumebuilder/Utils/ImageUtils.java change the following field's value with your own Bucket Address.

private static final String BUCKET_NAME = "resumebuilder-f10a4. appspot.com";

Accessing Admin Panel

If you would like to access admin panel you will need to:

  • Run the project.

  • Access the application via browser from http://localhost:8080/

  • Create an account

  • Change user's role to 'ADMIN' from MongoDB Compass

Screenshot 2024-02-15 at 10 58 25

Screenshots

Landing Page

Screenshot 2024-02-14 at 16 11 05 Screenshot 2024-02-14 at 16 14 47

Login Page

Screenshot 2024-02-14 at 16 11 14

Register Page

Screenshot 2024-02-14 at 16 11 24

Under Maintenance Page

Screenshot 2024-02-14 at 16 11 37

404 Page

Screenshot 2024-02-14 at 16 11 43

Settings Pages

Screenshot 2024-02-15 at 14 54 45 Screenshot 2024-02-15 at 14 54 36 Screenshot 2024-02-15 at 14 54 04 Screenshot 2024-02-15 at 14 54 31

Resume Pages

Screenshot 2024-02-15 at 15 01 43 Screenshot 2024-02-15 at 15 02 21 Screenshot 2024-02-15 at 15 02 25

Admin Page

Screenshot 2024-02-15 at 15 10 43

Downloaded PDF

Screenshot 2024-02-15 at 15 06 30