A comprehensive ASP.NET MVC web application for creating and managing a personal CV/resume website with an integrated admin panel for content management.
- Responsive Design: Modern, mobile-friendly CV layout using Bootstrap
- Personal Information: Display name, contact details, and professional description
- Experience Section: Showcase work experience with detailed descriptions
- Education: Academic background with institutions and achievements
- Skills: Technical and professional skills showcase
- Hobbies & Interests: Personal interests and activities
- Certificates: Professional certifications and achievements
- Contact Form: Visitors can send messages directly through the website
- Social Media Integration: Links to social media profiles
- Secure Authentication: Password-protected admin access with session management
- Content Management: Full CRUD operations for all CV sections
- User Management: Admin user creation and management
- Security Features: Password hashing, session timeout, and security headers
- Modern Interface: AdminLTE-based admin panel with intuitive navigation
- Framework: ASP.NET MVC 5
- Database: SQL Server with Entity Framework 6
- Frontend: Bootstrap 5, jQuery 3, Font Awesome
- Admin UI: AdminLTE 3
- Architecture: Repository Pattern with Generic Repository
- Security: Custom authentication attributes, password hashing (PBKDF2)



MvcCV/
├── Controllers/ # MVC Controllers
│ ├── DefaultController.cs # Main CV display
│ ├── AdminController.cs # Admin user management
│ ├── AboutMeController.cs # About section management
│ ├── ExperienceController.cs # Experience management
│ ├── EducationController.cs # Education management
│ ├── SkillController.cs # Skills management
│ ├── HobbyController.cs # Hobbies management
│ ├── CertificateController.cs # Certificates management
│ ├── ContactController.cs # Contact form handling
│ ├── SocialMediaController.cs # Social media management
│ └── LoginController.cs # Authentication
├── Models/Entity/ # Entity Framework Models
│ ├── TBLAbout.cs # Personal information
│ ├── TBLExperience.cs # Work experience
│ ├── TBLEducation.cs # Education records
│ ├── TBLSkill.cs # Skills
│ ├── TBLHobby.cs # Hobbies
│ ├── TBLCertificates.cs # Certificates
│ ├── TBLContact.cs # Contact messages
│ ├── TBLSocialMedia.cs # Social media links
│ └── TBLAdmin.cs # Admin users
├── Repositories/ # Data Access Layer
│ ├── GenericRepository.cs # Base repository
│ └── [Specific]Repository.cs # Entity-specific repositories
├── Views/ # Razor Views
│ ├── Default/ # Public CV views
│ ├── Admin/ # Admin panel views
│ └── [Section]/ # Section-specific views
├── Helpers/ # Utility Classes
│ └── PasswordHelper.cs # Password hashing utilities
├── Attributes/ # Custom Attributes
│ └── SecurityAttributes.cs # Authentication & security
└── AdminLTE-3.0.4/ # Admin template assets
The application uses the following main entities:
- TBLAbout: Personal information (name, contact, description, photo)
- TBLExperience: Work experience records
- TBLEducation: Educational background
- TBLSkill: Technical and professional skills
- TBLHobby: Personal interests and hobbies
- TBLCertificates: Professional certifications
- TBLContact: Contact form submissions
- TBLSocialMedia: Social media profile links
- TBLAdmin: Administrative users
- Visual Studio 2017 or later
- .NET Framework 4.6.2 or later
- SQL Server (LocalDB or full installation)
- IIS Express (included with Visual Studio)
-
Clone the Repository
git clone [repository-url] cd MvcCV
-
Database Setup
- Update the connection string in
Web.config
to match your SQL Server instance - The connection string is located in the
<connectionStrings>
section
- Update the connection string in
-
Restore NuGet Packages
nuget restore
-
Build the Solution
- Open
MvcCV.sln
in Visual Studio - Build the solution (Ctrl+Shift+B)
- Open
-
Database Migration
- The application uses Entity Framework Code First
- Database will be created automatically on first run
- Ensure your SQL Server instance is running
-
Run the Application
- Press F5 or click "Start" in Visual Studio
- The application will launch in your default browser
- Password Hashing: Uses PBKDF2 with salt for secure password storage
- Session Management: 30-minute session timeout with activity tracking
- Security Headers: Implements various security headers (X-Frame-Options, X-XSS-Protection, etc.)
- Authentication Attributes: Custom attributes for protecting admin routes
- Input Validation: Anti-forgery tokens and model validation
Bartuğ Kaan Çelebi
- Software Developer
- AdminLTE for the admin panel template
- Start Bootstrap Resume for the CV template
- Bootstrap for the responsive framework
- Font Awesome for icons