Skip to content

alamintpi/vaidetmsprojects

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

প্রোজেক্ট পার্ট-১

পার্ট-১ ফাইল গুলিকে খুব সুন্দর সাজাবো।

যেহেতু আমাদের ETMS প্রোজেক্ট দুই ধরণের ইউসার থাকবে তাই আমাদের কে সাধারণ ইউসার জন্য একটি ফাইল ও অ্যাডমিন জন্য একটি ফাইল তৈরি করবো
এই দুই ধরনের ইউসার জন্য আমাদের কে দুই টি ড্যাশবোর্ড নিতে হবে.

🔥 সাধারণ ইউসার প্যানেল
পার্ট-১ শুধু মাত্র ফাইল গুলি সাজায় নিয়েছি
🎯 ETMS ইউসার নিজেদের একটি একাউন্ট থাকবে , প্রথমত তারা রেজিস্ট্রেশন করবে তার জন্য আমাদের কে register.php ফাইল নিতে হবে।
🎯 ইউসার রে রেজিস্ট্রাশন করার পর তাদের কে লগইন করার জন্য login.php ফাইল নিতে হবে।
🎯 ইউসার লগইন পেজ সফলভাবে সম্পর্ণ করার পর তাদেরকে index.php ফাইলে এক্সেস করতে দিবো তার জন্য আমাকে index.php file ফাইল নিতে হবে।
🔚 মোটামোটি ভাবে ইউসার প্যানেল শেষ পার্ট-১

অ্যাডমিন ফাইলে এখনো কোন কাজ করে হয় নাই

🔥 অ্যাডমিন প্যানেল
অ্যাডমিন কাজ হচ্ছে সাধারণ ইউসার কে পারমিশন প্রদান করে.

  • ইউসার কে approved করবে।
  • ইউসার কে task প্রদান করবে।
  • ইউসার attendance চেক করবে।
  • ইউসার marking করবে।
    🔚 মোটামোটি ভাবে অ্যাডমিন প্যানেল শেষ পার্ট -১

পার্ট-২

🔥 সাধারণ ইউসার প্যানেল
আমাদের সব ফাইল রেডি। কাজ গুলি কে আমি লিস্ট আকারে তৈরি করবো
🎯 ডাটাবেস তৈরি করবো ;
🎯 ডাটাবেস টেবিল তৈরি করবো।
🎯 যেহেতু সাধারণ ইউসার কে রেজিস্টার করতে হবে সেই জন্য আমাকে টেবিল ভিতরে ইউসার জন্য যত গুলি ফিল্ড দরকার আমি ফিল্ড গুলি নিয়ে নিলাম।

ফিল্ড গুলি মধ্যে কিসু ইম্পরট্যান্ট ফিল্ড আছে।

ইউসার id ফিল্ড এই ফিল্ড টি অটো ইনক্রিমেন্ট হবে ও ইউনিক হবে.
😜 ইউসার মোবাইল নাম্বার টা ইউনিক হবে।
😜 ইউসার ইমেইল নাম্বার টা ইউনিক হবে।
😜 আমার ডাটাবেস ও টেবিল তৈরি করে শেষ।
😜 এখন আমাকে ডাটাবেস সাথে কানেক্ট করতে হবে।

আমি PHP pdo connection নিয়ে কাজ করব
আমি নিচের কোড গুলি দিয়ে pdo connection টি সম্পন করি।

$dbhost = "localhost";
	$dbname = "etms";
	$dbuser = "root";
	$dbpassword = '';

	date_default_timezone_set("Asia/Dhaka");

	try{
     $pdo = new PDO("mysql:host={$dbhost};dbname={$dbname}",$dbuser, $dbpassword,array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
     
     $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

   }catch(PDOException $e){
		echo"Connection Error: ".$e->getMessage();
    }

ডাটাবেস হোস্ট ,ডাটাবেস নাম ডাটাবেস ইউসার নাম ও পাসওয়ার্ড দিয়া কানেকশন সম্পন্ন করলাম।
Login.php
ইউসার রেজিস্টার করার পর ইউসার কে লগইন করার জন্য ইউসার কাছ থেকে তার মোবাইল নম্বর ও পাসওয়ার্ড নিবো।
🔒 লগইন তে কিভাবে কাজ করবে তার ভ্যালিডেশন

🔍 দুইটি ইনপুট খালি আছে কি না চেক করবে
🔍 মোবাইল নম্বর নিয়ে ডাটাবেস থেকে পাসওয়ার্ড তে নিয়ে আসবো।
🔍 যদি মোবাইল নাম্বার তে ঠিক তাকে তবে ,ডাটাবেস যদি মোবাইল নম্বর ঠিক থেকে তবে তাহলে ঠিক আছে।
. :mag: এখন পাসওয়ার্ড তে চেক করতে হবে ,ইউসার পাসওয়ার্ড ও ডাটাবেস পাসওয়ার্ড ঠিক হয় তবে সাকসেস
🔍 লগইন সাথে session তৈরি করবো
এত টুকু কাজ করলে লগইন শেষ।
এখন একটি কাস্টম ফাঙ্কশন নিয়ে কাজ করবো।

function em_user($id,$col){
   global $pdo;
   $stm = $pdo->prepare("SELECT $col FROM em_user WHERE u_id=?");
   $stm->execute(array($id));
   $result = $stm->fetchAll(PDO::FETCH_ASSOC);
   // var_dump($result);
   return $result[0]["$col"];
}
  • ফাঙ্কশন টিতে দুই টি প্যারামিটার আছে id , col ;
  • id টিতে ইউসার id পাবে, আর col ওই ইউসার কলাম নাম পাবে।
  • id টা অনুসারে কলাম নাম পাবে
  • আর feche মাধ্যমে ডাটা গুলি আসে।
    পার্ট-২ অ্যাডমিন প্যানেল কোন কাজ করে হয় নাই।
    মোটামোটি শেষ

পার্ট-৩

🔥 সাধারণ ইউসার প্যানেল
ইউসার প্রোফাইল
ইউসার প্রোফাইল তৈরি করবো। লগইন ইউসার সব ডাটা গুলি দেখাবে। শধু মাত্র ডাটাবেস থেকে ডাটা নিয়ে এসে টেবিল আকারে ডাটা গুলি দেখেব।

ইউসার প্রোফাইল আপডেট

ইউসার প্রোফাইল আপডেটে করার জন্য ডাটাবেস থেকে লগইন ইউসার id নিয়ে ইউসার সব গুলি ফিল্ড চেঞ্জ করার জন্য ইনপুট থাকবে ,
ইউসার তার প্রোফাইল কোন কিছু চেঞ্জ করে সাবমিট দিলে তার ইউসার id নিয়ে সেইখানে আবার চেঞ্জ ডাটা গুলি সেভ করতে হবে।
যেহেতু আমার id তে বার বার লাগবে আর এ জন্য আমি কাস্টম একটি ফাঙ্কশন তৈরি করবো। যেন ওই ফাঙ্কশন কল করে তার সব ফিল্ড পেয়ে যাই।

function em_user($id,$col){
	global $pdo;
	$stm = $pdo->prepare("SELECT $col FROM em_user WHERE u_id=?");
	$stm->execute(array($id));
	$result = $stm->fetchAll(PDO::FETCH_ASSOC);
	// var_dump($result);
	return $result[0]["$col"];
}

❗ ইউসার পাসওয়ার্ড চেঞ্জ

🔒 তিনটি ইনপুট ফিল্ড থাকবে।
🔒 একটি কারেন্ট পাসওয়ার্ড ফিল্ড ,একটি নিউ পাসওয়ার্ড ও একটি কন্ফার্ম নিউ পাসওয়ার্ড;
🔒 কারেন্ট পাসওয়ার্ড টি ডাটাবেস পাসওয়ার্ড ম্যাচ সাথে মিল হতে হবে।
🔒 নিউ পাসওয়ার্ড ও কন্ফার্ম নিউ পাসওয়ার্ড একই হইলে নিউ পাসওয়ার্ড টি ডাটাবেস সেভ হবে।
🔒 ইউসার এখন নিউ পাসওয়ার্ড দিয়ে লগইন করবে
এইটুকু কাজ করলে পাসওয়ার্ড চেঞ্জ হয়ে যাবে।

❗ ইউসার আপলোড প্রোফাইল ফটো

ইউসার তার প্রোফাইল ফটো টি আপলোড করতে আমি ফাইলস সিস্টেম ব্যাবহার করেছি।
ইউসার প্রোফাইল ফটো টা নিয়ে ডাটাবেস গিয়ে সেভ করেছি।

যদি ইউসার প্রোফাইল ফটো না দিয়ে একাউন্ট করে তাহলে আমি ডিফল্ট একটি ইউসার ফটো দেখাইতেছি আর যদি প্রোফাইল ইমেজ দিয়ে থাকে তাহলে ইউসার ফটোটি দেখাবে।
সেই জন্য আমি ডাটাবেস থেকে ফটো

পার্ট-৪

মোবাইল নাম্বার ভেরিফাই
❤️ ইউসার মোবাইল নাম্বার কোড পাঠাই দিব।
❤️ ইউসার তার মোবাইল কোড টি ম্যাচ করবো।
❤️ যদি ম্যাচ করে ডাটাবেস সাথে তাহলে মোবাইল নাম্বার ভেরিফাই হবে।
❤️ যদি ম্যাচ না করে তাহলে wrong মেসেজ শো করেব।
যদি ম্যাচ করে তাহলে html মোবাইল ফিল্ড চেকমার্ক টীকে দেখবো।
পার্ট -৪ শেষ

পার্ট-৫

🔥 অ্যাডমিন প্যানেল
পার্ট -৫ অ্যাডমিন প্যানেল কাজ গুলি সাইজও করেছি।
অ্যাডমিন যেসব পেজ গুলি আমাদের প্রয়োজন সেই গুলি কাস্টোমাইজে করি।
অ্যাডমিন শুধু মাত্র লগইন করবে।
আর রেজিস্টার করার কোন প্রয়োজন নাই
অ্যাডমিন কে শুধু লগইন করাই দিলাম।
পার্ট -৫ মোটামোটি শেষ।

পার্ট -৬
🔥 সাধারণ ইউসার প্যানেল
পার্ট -৬ আমি ইউসার অ্যাটেনডেন্স কি ভাবে করবো
অ্যাটেনডেন্স জন্য যা বিষয় গুলি আমি ফ্লো করবো <br

  • প্রথমত যে যে জিনিস গুলি আমাদের দরকার
    ❤️ ইউসার থেকে কারেন্ট ডেট ও টাইম টি নিব
    ❤️ সিস্টেম ip এড্রেস নিব
    ❤️ সিস্টেম এড্ড্রেস নিব।
    ❤️ ও আমাদের কে geolocation নিব।
    ইউসার কোথায় থেকে ,কোন ডিভাইস থেকে ,সঠিক সময় সাবমিট করছে কি না তা চেক করতে আমাদের উপরের অপশন গুলি দরকার।
    ইউসার সবকিসু ঠিক থাকলে অ্যাটেনডেন্স সম্পন্ন হবে।
    যদি ইউসার ভুল কিসু দেয় তাহলে অ্যাটেনডেন্স সাকসেস হবে না।
    যদি কখনো এক ডেট বার বার সাবমিট করে তাহলে ডাটাবেস এরর শো করাবো
    ইউসার ডেট নিবে এই ডেট দিয়ে ডাটাবেস সাথে ম্যাচ করাবো।
    যদি একেই ডেট বার বার দেয় তাহলে এরর দিব আপনার এই ডেট একবার সাবমিট করে হয়েছে।

পার্ট -৭
🔥 সাধারণ ইউসার প্যানেল
পার্ট-৭ ইউসাররের অ্যাটেনডেন্স ডাটা গুলি ডাটাটেবিলে দেখাব।

  • এ জন্য আমাকে jquery প্লাগিন ব্যাবহার করতে হবে
  • একজন ইউসার monthly সব গুলি অ্যাটেনডেন্স দেখেবা।
  • ইউসার টেবিল যেসব ডাটা নিয়েছি তার সবগুলি শো করে নো হবে।
  • যদি ওই ইউসার সব দিন atten না থেকে তবে তাকে তার টেবিল red mark করেনও হবে।
  • তাহলে ইউসার অতি সহজে বুঝতে পারবে যে সে কোন আসছে র কোন দিন আসা নাই।

Releases

No releases published

Packages

No packages published