Asim-Tahir / CreateCV

Bir formdan gelen verilerle CV oluşturma ve farklı CV şablonları, renkleri ve fontları sunarak CV özelleştirme projesi.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

CV Oluşturma Projesi

Bu projemde, bir formdan gelen kullanıcı verileri ile otomatik olarak bir CV oluşturulmaktadır ve oluşturulan CV'nin renk, şablon ve font özelliklerinde özelleştirme seçenekleri bulunmaktadır. Projede 6 farklı CV şablonu, 6 farklı font ve 7 farklı renk seçeneği bulunmaktadır. Bu seçenekler kolaylıkla arttırılabilir durumdadır. CV oluşturma sayfasında dark mode seçeneği de bulunmaktadır. Kullanıcılar CV'lerini ister light mode ister dark mode seçeneğine göre yazdırabilmektedirler.

Proje Yayını

Projeyi canlı olarak görmek ve kullanmak için createcv.kodsatirim.com adresini ziyaret edebilirsiniz. kodsatirim.com sitesi bana aittir.

Proje Geliştirilmesi ve Örnek Kodları

Projeyi geliştirirken Frontend tarafında Html/Css ve JavaScript, Backend tarafında ise PHP/PDO ve MySQL veritabanını kullandım. Kullanıcı verilerini saklamak ve CV şablonları içerisinde kullanabilmek için MySQL içerisinde bir veritabanı oluşturdum. Bu veritabanı içerisinde CV'ye yazılması gereken tüm veriler için tablolar oluşturdum.

Bir kullanıcı CV oluşturmadan CV şablonu seçme ve özelleştirme seçeneklerini kullanabilmektedir. Siteye giren kullanıcılar ilk olarak default verilerle doldurulmuş olan örnek CV içeriği ile CV şablonlarını test edebilmektedir. Default olarak gelen veriler dummy.php dosyası içerisinde bulunmaktadır. CV içerisine yazılacak her veri bir değişkende veya çoklu olarak yazılacak veriler bir dizi içerisinde tutulmaktadır.

Default olarak oluşturulan verilere ait örnek kod çıktısı;

<?php
	$name = "Name Surname";
	$fetchSkillData = array(
		array( "skillName" => "JavaScript", "skillLevel" => "85"),
		array( "skillName" => "HTML/CSS", "skillLevel" => "92"),
		array( "skillName" => "Photoshop", "skillLevel" => "70"),
		array( "skillName" => "Adobe XD", "skillLevel" => "57"),
		array( "skillName" => "Figma", "skillLevel" => "77"),
	);
?>

CV oluşturma formunu dolduran kullanıcıların verilerini cvPost.php dosyasında post ederek belirli değişkenlere atadım. Çoklu olabilecek değerleri bir dizi şeklinde post ettim ve veritabanına sıralı şekilde kaydettim.

PHP ile post işlemi yaptığım verilere ait örnek kod çıktısı;

<?php
	$name = $_POST['name'];
	for($i=0; $i < count($_POST['skillName']); $i++){
		$skillName = $_POST['skillName'][$i];
		$skillLevel = $_POST['skillLevel'][$i];
		$addSkill = $data->prepare("insert into skills set
			submission_id=?,
			skillName=?,
			skillLevel=?
	");
	$addSkillProcess = $addSkill->execute(array($submission_id,$skillName,$skillLevel));
	
	// control process $i = error index
	if(!$addSkillProcess){ errorMessage("Skill","2504-".$i); }
}
?>

Her kullanıcıya ait benzersiz bir submission_id değeri belirledim ve bu değere ait verileri CV sayfasında çekerek tüm CV şablonları içerisinde yazdırdım. CV şablonları içerisine yazılacak her çoklu veri için functions.php dosyasında birer fonksiyon oluşturdum ve tüm CV şablonlarında gerekli yerlerde fonksiyonu çağırdım.

Oluşturduğum fonksiyonlara ve kullanımlarına ait örnek bir kod çıktısı;

<?php
	function getSkills($fetchSkillData,$tagName){
		foreach($fetchSkillData  as  $key  =>  $item){
		echo  '
			<li>
				<'.$tagName.'>'.$item['skillName'].'</'.$tagName.'>
				<div class="level-bar">
					<div class="level" style="width: '.$item['skillLevel'].'%;"></div>
				</div>
			</li>
		';
		}
	}
?>

<div  class="cv-section">
	<h2  class="cv-title">Skills</h2>
	<ul  class="cv-list level-list">
		<?php  getSkills($fetchSkillData,'strong'); ?>
	</ul>
</div>

Ekran Çıktısı

project.mp4

About

Bir formdan gelen verilerle CV oluşturma ve farklı CV şablonları, renkleri ve fontları sunarak CV özelleştirme projesi.


Languages

Language:PHP 54.4%Language:CSS 31.5%Language:JavaScript 14.2%