Skip to content

zaber-dev/CVBuilder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CVBuilder

.NET ASP.NET Core EF Core Tailwind

Modern resume builder built with ASP.NET Core MVC, Identity, Entity Framework Core, and Tailwind CSS.

Repository: https://github.com/zaber-dev/CVBuilder

Table of Contents

  1. What is CVBuilder
  2. Core Features
  3. Tech Stack
  4. Architecture
  5. Getting Started
  6. Default Seed Data
  7. Project Structure
  8. Route Map
  9. Template System
  10. Database Model
  11. Development Commands
  12. Known Gaps
  13. Contributing
  14. Learning Guide

What is CVBuilder

CVBuilder helps users create and manage professional CVs with:

  • live editing and instant preview
  • template switching without losing content
  • dynamic resume sections (List and Tags)
  • print-friendly A4 output via browser Print to PDF
  • role-based admin tools for template and user management

The application includes both public marketing pages and an authenticated dashboard.

Core Features

User Features

  • Register and login with ASP.NET Core Identity.
  • Create multiple resumes from template presets.
  • Edit profile content (name, email, phone, location, summary).
  • Upload profile images.
  • Manage dynamic sections:
  • List sections with Header, SubHeader, DateRange, Description.
  • Tags sections with compact tag items.
  • Reorder sections.
  • Switch templates at any time.
  • Open print mode directly from dashboard (?print=true) for fast PDF export.

Public Features

  • Landing page, features page, templates gallery, and about page.
  • Public template preview endpoint for unauthenticated users.
  • Conditional call-to-action behavior:
  • signed-in users go straight to CV creation.
  • anonymous users go to registration.

Admin Features

  • Manage templates (create, edit, delete).
  • Upload template thumbnails.
  • Manage users and roles (Admin/User).
  • Built-in self-protection:
  • admin cannot delete own account.
  • admin cannot downgrade own role from UI.

Tech Stack

  • Backend: ASP.NET Core 8 MVC + Razor Pages
  • Authentication: ASP.NET Core Identity
  • Database: SQLite + EF Core
  • Styling: Tailwind CSS (via Tailwind.MSBuild)
  • Frontend scripting: jQuery
  • Runtime: .NET 8

Key source files:

Architecture

flowchart TD
    A[Browser] --> B[ASP.NET Core MVC]
    B --> C[Controllers]
    C --> D[ApplicationDbContext]
    D --> E[(SQLite app.db)]
    B --> F[Identity Razor Pages]
    C --> G[Razor Views]
    G --> A
Loading

Startup behavior:

  1. Applies pending EF Core migrations.
  2. Ensures Admin and User roles exist.
  3. Seeds a default admin account.
  4. Seeds default templates if the table is empty.

Getting Started

Prerequisites

  • .NET 8 SDK
  • Git
  • Optional: trusted local HTTPS cert for browser comfort

Run Locally

From repository root:

dotnet restore c-sharp.slnx
dotnet run --project CVBuilder/CVBuilder.csproj

Default launch URLs are defined in CVBuilder/Properties/launchSettings.json:

Database connection is configured in CVBuilder/appsettings.json:

  • DataSource=app.db;Cache=Shared

On first run, migrations and seed data are applied automatically.

Default Seed Data

Local development admin account:

Email: admin@cvbuilder.com
Password: Admin123!

Important:

  • This is intended for local development only.
  • Change credentials and harden identity settings before production use.

Seeded templates include:

  1. Modern Professional
  2. Minimalist Elegant
  3. Creative Bold
  4. Executive Classic
  5. Tech Developer
  6. Compact Clean

Project Structure

c-sharp.slnx
CVBuilder/
  Controllers/
    HomeController.cs
    CVController.cs
    AdminController.cs
  Data/
    ApplicationDbContext.cs
  Models/
    CV.cs
    Section.cs
    Template.cs
  Areas/Identity/
    Pages/Account/
  Views/
    Home/
    CV/
    Admin/
    Shared/
  Migrations/
  wwwroot/

Route Map

Public

  • / -> Home page
  • /Home/Features
  • /Home/Templates
  • /Home/About
  • /CV/PreviewTemplate/{id} (allow anonymous)
  • /Login and /Register friendly Identity routes

Authenticated User

  • /CV dashboard
  • /CV/Edit/{id} editor + live preview
  • /Identity/Account/Manage account settings

Admin Only

  • /Admin template management
  • /Admin/CreateTemplate
  • /Admin/EditTemplate/{id}
  • /Admin/Users user and role management

Template System

Templates are stored in the database (Templates table) with:

  • ContentHtml: HTML skeleton
  • CustomCss: template-specific CSS
  • PagePadding: page margins in mm (example: 15 or 0)

Core model: CVBuilder/Models/Template.cs

Required IDs for Live Binding

To support editor and preview binding, include these IDs in template HTML:

  • view-fullname
  • view-email
  • view-phone
  • view-address
  • view-summary
  • view-sections
  • view-profileimage (or view-profile-image)

Print and Padding

  • The editor and preview use A4 dimensions (210mm x 297mm).
  • Page margins are controlled by --cv-page-padding via template PagePadding.
  • Full-bleed templates can set padding to 0.
  • Print mode can be triggered by opening edit with ?print=true.

Related files:

Database Model

Main entities:

  • CV: user-owned resume metadata and personal info.
  • Section: dynamic section rows with JSON payload and ordering.
  • Template: render blueprint (ContentHtml, CustomCss, PagePadding).

Identity tables are created through IdentityDbContext inheritance.

Model references:

Development Commands

Run app:

dotnet run --project CVBuilder/CVBuilder.csproj

Restore local tools (includes dotnet-ef):

dotnet tool restore --tool-manifest CVBuilder/.config/dotnet-tools.json

Add migration:

dotnet ef migrations add YourMigrationName --project CVBuilder/CVBuilder.csproj --startup-project CVBuilder/CVBuilder.csproj

Apply migrations:

dotnet ef database update --project CVBuilder/CVBuilder.csproj --startup-project CVBuilder/CVBuilder.csproj

Known Gaps

  • No automated test project is included yet.
  • Template thumbnail paths are seeded, but CVBuilder/wwwroot/images/templates is currently empty.
  • Password policy is relaxed for local development in startup configuration.

Contributing

  1. Fork the repository.
  2. Create a feature branch.
  3. Make focused changes.
  4. Run and validate flows locally.
  5. Open a pull request with before/after context.

If you add features, update both this README and the learning guide.

Learning Guide

Hands-on walkthrough and exercises are available in LEARN.md.

About

Modern resume builder built with ASP.NET Core MVC, Identity, Entity Framework Core, and Tailwind CSS.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors