update,
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
<?php
|
||||
|
||||
namespace App\Console;
|
||||
|
||||
use Illuminate\Console\Scheduling\Schedule;
|
||||
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
|
||||
|
||||
class Kernel extends ConsoleKernel
|
||||
{
|
||||
/**
|
||||
* Define the application's command schedule.
|
||||
*
|
||||
* @param \Illuminate\Console\Scheduling\Schedule $schedule
|
||||
* @return void
|
||||
*/
|
||||
protected function schedule(Schedule $schedule)
|
||||
{
|
||||
// $schedule->command('inspire')->hourly();
|
||||
}
|
||||
|
||||
/**
|
||||
* Register the commands for the application.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
protected function commands()
|
||||
{
|
||||
$this->load(__DIR__.'/Commands');
|
||||
|
||||
require base_path('routes/console.php');
|
||||
}
|
||||
}
|
@@ -0,0 +1,50 @@
|
||||
<?php
|
||||
|
||||
namespace App\Exceptions;
|
||||
|
||||
use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
|
||||
use Throwable;
|
||||
|
||||
class Handler extends ExceptionHandler
|
||||
{
|
||||
/**
|
||||
* A list of exception types with their corresponding custom log levels.
|
||||
*
|
||||
* @var array<class-string<\Throwable>, \Psr\Log\LogLevel::*>
|
||||
*/
|
||||
protected $levels = [
|
||||
//
|
||||
];
|
||||
|
||||
/**
|
||||
* A list of the exception types that are not reported.
|
||||
*
|
||||
* @var array<int, class-string<\Throwable>>
|
||||
*/
|
||||
protected $dontReport = [
|
||||
//
|
||||
];
|
||||
|
||||
/**
|
||||
* A list of the inputs that are never flashed to the session on validation exceptions.
|
||||
*
|
||||
* @var array<int, string>
|
||||
*/
|
||||
protected $dontFlash = [
|
||||
'current_password',
|
||||
'password',
|
||||
'password_confirmation',
|
||||
];
|
||||
|
||||
/**
|
||||
* Register the exception handling callbacks for the application.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function register()
|
||||
{
|
||||
$this->reportable(function (Throwable $e) {
|
||||
//
|
||||
});
|
||||
}
|
||||
}
|
@@ -0,0 +1,22 @@
|
||||
<?php
|
||||
namespace App\Helper;
|
||||
|
||||
class Helpers {
|
||||
|
||||
public static function getunlimitedTestAttempt($attempt)
|
||||
{
|
||||
$html = "";
|
||||
if($attempt == 1){
|
||||
$html = "<label class='badge badge-success'>Yes</label>";
|
||||
}else{
|
||||
$html = "<lable class='badge badge-primary'>No</lable>";
|
||||
}
|
||||
return $html;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
?>
|
@@ -0,0 +1,40 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Auth;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Providers\RouteServiceProvider;
|
||||
use Illuminate\Foundation\Auth\ConfirmsPasswords;
|
||||
|
||||
class ConfirmPasswordController extends Controller
|
||||
{
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Confirm Password Controller
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| This controller is responsible for handling password confirmations and
|
||||
| uses a simple trait to include the behavior. You're free to explore
|
||||
| this trait and override any functions that require customization.
|
||||
|
|
||||
*/
|
||||
|
||||
use ConfirmsPasswords;
|
||||
|
||||
/**
|
||||
* Where to redirect users when the intended url fails.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $redirectTo = RouteServiceProvider::HOME;
|
||||
|
||||
/**
|
||||
* Create a new controller instance.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
$this->middleware('auth');
|
||||
}
|
||||
}
|
@@ -0,0 +1,22 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Auth;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Foundation\Auth\SendsPasswordResetEmails;
|
||||
|
||||
class ForgotPasswordController extends Controller
|
||||
{
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Password Reset Controller
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| This controller is responsible for handling password reset emails and
|
||||
| includes a trait which assists in sending these notifications from
|
||||
| your application to your users. Feel free to explore this trait.
|
||||
|
|
||||
*/
|
||||
|
||||
use SendsPasswordResetEmails;
|
||||
}
|
@@ -0,0 +1,85 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Auth;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Providers\RouteServiceProvider;
|
||||
use Illuminate\Foundation\Auth\AuthenticatesUsers;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
|
||||
class LoginController extends Controller
|
||||
{
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Login Controller
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| This controller handles authenticating users for the application and
|
||||
| redirecting them to your home screen. The controller uses a trait
|
||||
| to conveniently provide its functionality to your applications.
|
||||
|
|
||||
*/
|
||||
|
||||
use AuthenticatesUsers;
|
||||
|
||||
/**
|
||||
* Where to redirect users after login.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $redirectTo = RouteServiceProvider::HOME;
|
||||
|
||||
/**
|
||||
* Create a new controller instance.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
$this->middleware('guest')->except('logout');
|
||||
}
|
||||
public function index() {
|
||||
if(Auth::check()){
|
||||
return redirect(route('admin.dashboard'));
|
||||
}
|
||||
return view('admin.login');
|
||||
}
|
||||
/* Login Check Authenticate User */
|
||||
public function login(Request $request){
|
||||
|
||||
$validator = Validator::make($request->all(), [
|
||||
'email' => 'required|email|max:255',
|
||||
'password' => 'required|min:8',
|
||||
]);
|
||||
if ($validator->fails()) {
|
||||
|
||||
return redirect('login')
|
||||
->withErrors($validator, 'login')
|
||||
->withInput();
|
||||
}
|
||||
if (Auth::attempt(['email' => $request->email, 'password' => $request->password])) {
|
||||
$user = Auth::user();
|
||||
if($user->email_verified_at && $user->email_verified_at ==null){
|
||||
$this->logout($request);
|
||||
redirect()->route('login')->with("error","Your are not verified user.");
|
||||
}
|
||||
if($user->role == 1){
|
||||
return redirect()->route('admin.dashboard')->with("success","Welcome To ". env("APP_NAME"));
|
||||
}else{
|
||||
redirect()->route('login')->with("error","Your are not authorized user.");
|
||||
}
|
||||
|
||||
}else{
|
||||
return redirect()->back()->with("error","Invalid Email Or Password.");
|
||||
}
|
||||
}
|
||||
|
||||
/*Logout*/
|
||||
public function logout(Request $request){
|
||||
Auth::logout();
|
||||
$request->session()->regenerateToken();
|
||||
return redirect()->route('login');
|
||||
}
|
||||
}
|
@@ -0,0 +1,73 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Auth;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Providers\RouteServiceProvider;
|
||||
use App\Models\User;
|
||||
use Illuminate\Foundation\Auth\RegistersUsers;
|
||||
use Illuminate\Support\Facades\Hash;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
|
||||
class RegisterController extends Controller
|
||||
{
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Register Controller
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| This controller handles the registration of new users as well as their
|
||||
| validation and creation. By default this controller uses a trait to
|
||||
| provide this functionality without requiring any additional code.
|
||||
|
|
||||
*/
|
||||
|
||||
use RegistersUsers;
|
||||
|
||||
/**
|
||||
* Where to redirect users after registration.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $redirectTo = RouteServiceProvider::HOME;
|
||||
|
||||
/**
|
||||
* Create a new controller instance.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
$this->middleware('guest');
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a validator for an incoming registration request.
|
||||
*
|
||||
* @param array $data
|
||||
* @return \Illuminate\Contracts\Validation\Validator
|
||||
*/
|
||||
protected function validator(array $data)
|
||||
{
|
||||
return Validator::make($data, [
|
||||
'name' => ['required', 'string', 'max:255'],
|
||||
'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
|
||||
'password' => ['required', 'string', 'min:8', 'confirmed'],
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a new user instance after a valid registration.
|
||||
*
|
||||
* @param array $data
|
||||
* @return \App\Models\User
|
||||
*/
|
||||
protected function create(array $data)
|
||||
{
|
||||
return User::create([
|
||||
'name' => $data['name'],
|
||||
'email' => $data['email'],
|
||||
'password' => Hash::make($data['password']),
|
||||
]);
|
||||
}
|
||||
}
|
@@ -0,0 +1,85 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Auth;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Providers\RouteServiceProvider;
|
||||
use Illuminate\Foundation\Auth\ResetsPasswords;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
use App\Models\User;
|
||||
use Illuminate\Support\Facades\Crypt;
|
||||
use App\Models\ResetPassword;
|
||||
use App\Jobs\SendEmailJob;
|
||||
use Illuminate\Support\Facades\Hash;
|
||||
use Illuminate\Support\Facades\URL;
|
||||
|
||||
class ResetPasswordController extends Controller {
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Password Reset Controller
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| This controller is responsible for handling password reset requests
|
||||
| and uses a simple trait to include this behavior. You're free to
|
||||
| explore this trait and override any methods you wish to tweak.
|
||||
|
|
||||
*/
|
||||
|
||||
use ResetsPasswords;
|
||||
|
||||
/**
|
||||
* Where to redirect users after resetting their password.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $redirectTo = RouteServiceProvider::HOME;
|
||||
|
||||
public function forgotpassword() {
|
||||
return view('admin.forgotpassword');
|
||||
}
|
||||
|
||||
public function sendEmailForgotPassword(Request $request) {
|
||||
$validator = Validator::make($request->all(), [
|
||||
'email' => 'required|email|max:255',
|
||||
]);
|
||||
if ($validator->fails()) {
|
||||
return redirect('forgotpassword')
|
||||
->withErrors($validator, 'forgotpassword')
|
||||
->withInput();
|
||||
}
|
||||
$user = User::where('email', $request->email)->first();
|
||||
if (!$user) {
|
||||
return redirect()->route('forgotpassword')->with("error", "Your not Registered User.");
|
||||
}
|
||||
$token = Crypt::encrypt($request->email);
|
||||
ResetPassword::updateOrCreate(["email" => $request->email, 'token' => $token]);
|
||||
dispatch(new SendEmailJob([
|
||||
'_blade' => 'forgot',
|
||||
'name' => $user->name,
|
||||
'toemail' => $request->email,
|
||||
'token' => $token,
|
||||
'url' => route('resetpassword', $token)
|
||||
]));
|
||||
return redirect()->route('forgotpassword')->with("success", "Your Forgot Password mail has been sent Succefully!");
|
||||
}
|
||||
|
||||
public function resetpassword($token) {
|
||||
$resetpasswordData = ResetPassword::where('token', $token)->first();
|
||||
if (empty($resetpasswordData)) {
|
||||
return redirect()->route('login')->with("error", "Your Reset Password link has been expired.");
|
||||
}
|
||||
return view('admin.resetpassword', compact('resetpasswordData'));
|
||||
}
|
||||
|
||||
public function postResetPassword(Request $request) {
|
||||
if ($request->password != $request->confirmpassword) {
|
||||
return redirect()->route('resetpassword')->with("error", "Password and Confirm Password has been not match.");
|
||||
}
|
||||
$email = $request->email;
|
||||
User::where('email', $email)->update(["password" => Hash::make($request->password)]);
|
||||
ResetPassword::where('email', $email)->delete();
|
||||
return redirect()->route('login')->with("success", "Your Password has been Reset Succefully!");
|
||||
}
|
||||
|
||||
}
|
@@ -0,0 +1,42 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Auth;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Providers\RouteServiceProvider;
|
||||
use Illuminate\Foundation\Auth\VerifiesEmails;
|
||||
|
||||
class VerificationController extends Controller
|
||||
{
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Email Verification Controller
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| This controller is responsible for handling email verification for any
|
||||
| user that recently registered with the application. Emails may also
|
||||
| be re-sent if the user didn't receive the original email message.
|
||||
|
|
||||
*/
|
||||
|
||||
use VerifiesEmails;
|
||||
|
||||
/**
|
||||
* Where to redirect users after verification.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $redirectTo = RouteServiceProvider::HOME;
|
||||
|
||||
/**
|
||||
* Create a new controller instance.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
$this->middleware('auth');
|
||||
$this->middleware('signed')->only('verify');
|
||||
$this->middleware('throttle:6,1')->only('verify', 'resend');
|
||||
}
|
||||
}
|
@@ -0,0 +1,13 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
|
||||
use Illuminate\Foundation\Bus\DispatchesJobs;
|
||||
use Illuminate\Foundation\Validation\ValidatesRequests;
|
||||
use Illuminate\Routing\Controller as BaseController;
|
||||
|
||||
class Controller extends BaseController
|
||||
{
|
||||
use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
|
||||
}
|
@@ -0,0 +1,77 @@
|
||||
<?php
|
||||
namespace App\Http\Controllers;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\Country;
|
||||
use App\Models\State;
|
||||
use Illuminate\Support\Facades\Response;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
|
||||
class CountryController extends Controller
|
||||
{
|
||||
public function index()
|
||||
{
|
||||
return view('admin.country.index');
|
||||
}
|
||||
|
||||
public function getCountryList(Request $request){
|
||||
return Country::getCountryList($request);
|
||||
}
|
||||
public function create(Request $request){
|
||||
return view('admin.country.create');
|
||||
}
|
||||
|
||||
function store(Request $request)
|
||||
{
|
||||
$validator = Validator::make($request->all(), [
|
||||
'name' => 'required|unique:country,name',
|
||||
]);
|
||||
if ($validator->fails()) {
|
||||
return redirect()->route('admin.country.add')
|
||||
->withErrors($validator, 'country')
|
||||
->withInput();
|
||||
}
|
||||
$country = Country::addEditCountry($request);
|
||||
if($country){
|
||||
return redirect()->route('admin.country')->with("success","Country add Successfully!");
|
||||
}else{
|
||||
return redirect()->route('admin.add-country')->with("error","Some thing went wrong!");
|
||||
}
|
||||
}
|
||||
|
||||
public function edit($id){
|
||||
$country = Country::find($id);
|
||||
return view('admin.country.edit',compact('country'));
|
||||
}
|
||||
|
||||
public function update(Request $request,$id)
|
||||
{
|
||||
$validator = Validator::make($request->all(), [
|
||||
'name' => 'required|unique:country,name,'.$id,
|
||||
]);
|
||||
if ($validator->fails()) {
|
||||
return redirect()->route('admin.country.edit',$id)
|
||||
->withErrors($validator, 'country')
|
||||
->withInput();
|
||||
}
|
||||
$country = Country::addEditCountry($request,$id);
|
||||
if($country){
|
||||
return redirect()->route('admin.country')->with("success","Country update Successfully!");
|
||||
}else{
|
||||
return redirect()->route('admin.country.edit',$id)->with("error","Some thing went wrong!");
|
||||
}
|
||||
}
|
||||
|
||||
public function delete(Request $request)
|
||||
{ $state = State::where('country_id',$request->id)->get();
|
||||
if ($state->count() == 0){
|
||||
$data = Country::countrydelete($request->id);
|
||||
if($data == 1){
|
||||
echo json_encode(["status"=>1]);exit;
|
||||
}else{
|
||||
echo json_encode(["status"=>0]);exit;
|
||||
}
|
||||
}else{
|
||||
echo json_encode(["status"=>2]);exit;
|
||||
}
|
||||
}
|
||||
}
|
@@ -0,0 +1,77 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Models\Exam;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\ExamCategory;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
use Illuminate\Support\Facades\Response;
|
||||
|
||||
class ExamCategoryController extends Controller
|
||||
{
|
||||
public function index(){
|
||||
return view('admin.examcategory.index');
|
||||
}
|
||||
|
||||
public function getExamCategoryList(Request $request){
|
||||
return ExamCategory::getExamCategoryList($request);
|
||||
}
|
||||
public function create(Request $request){
|
||||
return view('admin.examcategory.create');
|
||||
}
|
||||
|
||||
function store(Request $request){
|
||||
|
||||
$validator = Validator::make($request->all(), [
|
||||
'title' => 'required|unique:exam_category,title'
|
||||
]);
|
||||
if ($validator->fails()) {
|
||||
return redirect()->route('admin.examcategory.add')
|
||||
->withErrors($validator, 'examcategory')
|
||||
->withInput();
|
||||
}
|
||||
$state = ExamCategory::addEditExamCategory($request);
|
||||
if($state){
|
||||
return redirect()->route('admin.examcategory')->with("success","Exam Category add Successfully!");
|
||||
}else{
|
||||
return redirect()->route('admin.examcategory.add')->with("error","Some thing went wrong!");
|
||||
}
|
||||
}
|
||||
|
||||
public function edit($id){
|
||||
$examcategory = ExamCategory::find($id);
|
||||
return view('admin.examcategory.edit',compact('examcategory'));
|
||||
}
|
||||
|
||||
public function update(Request $request,$id){
|
||||
$validator = Validator::make($request->all(), [
|
||||
'title' => 'required|unique:exam_category,title,except'.$id
|
||||
]);
|
||||
if ($validator->fails()) {
|
||||
return redirect()->route('admin.examcategory.edit',$id)
|
||||
->withErrors($validator, 'examcategory')
|
||||
->withInput();
|
||||
}
|
||||
$country = ExamCategory::addEditExamCategory($request,$id);
|
||||
if($country){
|
||||
return redirect()->route('admin.examcategory')->with("success","Exam Category update Successfully!");
|
||||
}else{
|
||||
return redirect()->route('admin.examcategory.edit')->with("error","Some thing went wrong!");
|
||||
}
|
||||
}
|
||||
|
||||
public function delete(Request $request){
|
||||
$exam = Exam::where('exam_category_id',$request->id)->get();
|
||||
if ($exam->count() == 0){
|
||||
$data = ExamCategory::ExamCategorydelete($request->id);
|
||||
if($data == 1){
|
||||
echo json_encode(["status"=>1]);exit;
|
||||
}else{
|
||||
echo json_encode(["status"=>0]);exit;
|
||||
}
|
||||
}else{
|
||||
echo json_encode(["status"=>2]);exit;
|
||||
}
|
||||
}
|
||||
}
|
@@ -0,0 +1,106 @@
|
||||
<?php
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Models\Country;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\Exam;
|
||||
use App\Models\ExamCategory;
|
||||
use App\Models\Plan;
|
||||
use App\Models\State;
|
||||
use Illuminate\Support\Facades\Response;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
|
||||
class ExamController extends Controller
|
||||
{
|
||||
public function index(){
|
||||
return view('admin.exam.index');
|
||||
}
|
||||
|
||||
public function getExamList(Request $request){
|
||||
return Exam::getExamList($request);
|
||||
}
|
||||
public function get_StateList(Request $request)
|
||||
{
|
||||
$country = $request->country_id;
|
||||
$state = State::get_StateList($country);
|
||||
return Response::json($state);
|
||||
}
|
||||
public function create(Request $request){
|
||||
$country = Country::get_CountryList();
|
||||
$examCategory = ExamCategory::get_ExamCategoryList();
|
||||
return view('admin.exam.create',compact('country','examCategory'));
|
||||
}
|
||||
|
||||
function store(Request $request){
|
||||
$validator = Validator::make($request->all(), [
|
||||
'country' => 'required',
|
||||
'state' => 'required',
|
||||
'examcategory' => 'required',
|
||||
'name' => 'required|unique:exam,name',
|
||||
]);
|
||||
if ($validator->fails()) {
|
||||
return redirect()
|
||||
->route('admin.exam.add')
|
||||
->withErrors($validator, 'exam')
|
||||
->withInput();
|
||||
}
|
||||
$Exam = Exam::addEditExam($request);
|
||||
if ($Exam) {
|
||||
return redirect()
|
||||
->route('admin.exam')
|
||||
->with('success', 'Exam update Successfully!');
|
||||
} else {
|
||||
return redirect()
|
||||
->route('admin.exam.add')
|
||||
->with('error', 'Some thing went wrong!');
|
||||
}
|
||||
}
|
||||
|
||||
public function edit($id){
|
||||
$exam = Exam::find($id);
|
||||
$country = Country::get_CountryList();
|
||||
$state = State::all();
|
||||
$examCategory = ExamCategory::get_ExamCategoryList();
|
||||
return view('admin.exam.edit', compact('exam','country','state','examCategory'));
|
||||
}
|
||||
|
||||
public function update(Request $request, $id){
|
||||
$validator = Validator::make($request->all(), [
|
||||
'name' => 'required|unique:exam,name,'. $id,
|
||||
'country' => 'required',
|
||||
'state' => 'required',
|
||||
'examcategory' => 'required',
|
||||
|
||||
]);
|
||||
if ($validator->fails()) {
|
||||
return redirect()
|
||||
->route('admin.exam.edit', $id)
|
||||
->withErrors($validator, 'exam')
|
||||
->withInput();
|
||||
}
|
||||
$Exam = Exam::addEditExam($request, $id);
|
||||
if ($Exam) {
|
||||
return redirect()
|
||||
->route('admin.exam')
|
||||
->with('success', 'Exam update Successfully!');
|
||||
} else {
|
||||
return redirect()
|
||||
->route('admin.Exam.edit', $id)
|
||||
->with('error', 'Some thing went wrong!');
|
||||
}
|
||||
}
|
||||
|
||||
public function delete(Request $request){
|
||||
$plan = Plan::where('exam_id',$request->id)->get();
|
||||
if ($plan->count() == 0){
|
||||
$data = Exam::Examdelete($request->id);
|
||||
if($data == 1){
|
||||
echo json_encode(["status"=>1],true);exit;
|
||||
}else{
|
||||
echo json_encode(["status"=>0],true);exit;
|
||||
}
|
||||
}else{
|
||||
echo json_encode(["status"=>2],true);exit;
|
||||
}
|
||||
}
|
||||
}
|
@@ -0,0 +1,93 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
use App\Models\User;
|
||||
use Illuminate\Support\Facades\Hash;
|
||||
use App\Services\CommonService;
|
||||
|
||||
class HomeController extends Controller {
|
||||
|
||||
protected $service;
|
||||
|
||||
/**
|
||||
* Create a new controller instance.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __construct(CommonService $userService) {
|
||||
$this->middleware('auth');
|
||||
$this->service = $userService;
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the application dashboard.
|
||||
*
|
||||
* @return \Illuminate\Contracts\Support\Renderable
|
||||
*/
|
||||
public function dashboard() {
|
||||
if (Auth::user()) {
|
||||
$data['totalExam'] = $this->service->totalExam();
|
||||
$data['totalPlan'] = $this->service->totalPlan();
|
||||
$data['totalSubject'] = $this->service->totalSubject();
|
||||
$data['totalTest'] = $this->service->totalTest();
|
||||
$data['totalCountry'] = $this->service->totalCountry();
|
||||
$data['totalState'] = $this->service->totalState();
|
||||
return view('admin.dashboard', compact('data'));
|
||||
} else {
|
||||
Auth::logout();
|
||||
return redirect(route('login'));
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Admin Profile
|
||||
*/
|
||||
|
||||
public function profile() {
|
||||
$user = User::find(Auth::user()->id);
|
||||
return view('admin.profile', compact('user'));
|
||||
}
|
||||
|
||||
/*
|
||||
* Update User Profile
|
||||
*/
|
||||
|
||||
public function updateProfile(Request $request) {
|
||||
$validator = Validator::make($request->all(), [
|
||||
'name' => 'required|max:255',
|
||||
]);
|
||||
if ($validator->fails()) {
|
||||
return redirect('admin/profile')->withErrors($validator, 'profile')->withInput();
|
||||
}
|
||||
User::updateProfile($request, Auth::user()->id);
|
||||
return redirect()->route('admin.profile')->with('success', 'Profile Update Successfully!');
|
||||
}
|
||||
|
||||
/*
|
||||
* Update User Password
|
||||
*/
|
||||
|
||||
public function updatePassword(Request $request) {
|
||||
$validator = Validator::make($request->all(), [
|
||||
'currentpassword' => 'required|max:255',
|
||||
'newpassword' => 'required|max:255',
|
||||
'password_confirmation' => 'required|max:255|same:newpassword',
|
||||
]);
|
||||
if ($validator->fails()) {
|
||||
return redirect('admin/profile')->withErrors($validator, 'changepassword')->withInput();
|
||||
}
|
||||
if (!Hash::check($request->currentpassword, Auth::user()->password)) {
|
||||
return redirect()->route('admin.profile')->with('error', 'Password and Current Password does not match.');
|
||||
}
|
||||
if ($request->newpassword != $request->password_confirmation) {
|
||||
return redirect()->route('admin.profile')->with('error', 'New Password and Confirm Password does not match.');
|
||||
}
|
||||
User::updatePassword($request, Auth::user()->id);
|
||||
return redirect()->route('admin.profile')->with('success', 'Password Change Successfully!');
|
||||
}
|
||||
|
||||
}
|
@@ -0,0 +1,94 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Models\Exam;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\Plan;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
|
||||
class PlanController extends Controller
|
||||
{
|
||||
public function index(){
|
||||
return view('admin.plan.index');
|
||||
}
|
||||
|
||||
public function getPlanList(Request $request){
|
||||
return Plan::getPlanList($request);
|
||||
}
|
||||
public function create(Request $request){
|
||||
$exam = Exam::all();
|
||||
return view('admin.plan.create',compact('exam'));
|
||||
}
|
||||
|
||||
function store(Request $request)
|
||||
{
|
||||
$validator = Validator::make($request->all(), [
|
||||
'exam' => 'required',
|
||||
'name' => 'required|unique:plans,name',
|
||||
'year' => 'required|numeric',
|
||||
'price' => 'required',
|
||||
'validity' => 'required',
|
||||
'unlimited_test_attempt'=>"required",
|
||||
'attempt' => 'required_if:unlimited_test_attempt,==,0',
|
||||
]);
|
||||
$message = array(
|
||||
'required_if' =>'Attempt field is required.'
|
||||
);
|
||||
if ($validator->fails($message)) {
|
||||
return redirect()->route('admin.plan.add')
|
||||
->withErrors($validator, 'plan')
|
||||
->withInput();
|
||||
}
|
||||
$plan = Plan::addEditPlan($request);
|
||||
if($plan){
|
||||
return redirect()->route('admin.plan')->with("success","Plan add Successfully!");
|
||||
}else{
|
||||
return redirect()->route('admin.add-plan')->with("error","Some thing went wrong!");
|
||||
}
|
||||
}
|
||||
|
||||
public function edit($id){
|
||||
$exam = Exam::all();
|
||||
$plan = Plan::find($id);
|
||||
return view('admin.plan.edit',compact('plan','exam'));
|
||||
}
|
||||
|
||||
public function update(Request $request,$id)
|
||||
{
|
||||
$validator = Validator::make($request->all(), [
|
||||
'exam' => 'required',
|
||||
'name' => 'required|unique:plans,name,'.$id,
|
||||
'year' => 'required|numeric',
|
||||
'price' => 'required',
|
||||
'validity' => 'required',
|
||||
'unlimited_test_attempt'=>"required",
|
||||
'attempt' => 'required_if:unlimited_test_attempt,==,0',
|
||||
]);
|
||||
if ($validator->fails()) {
|
||||
return redirect()->route('admin.plan.edit',$id)
|
||||
->withErrors($validator, 'plan')
|
||||
->withInput();
|
||||
}
|
||||
$plan = Plan::addEditPlan($request,$id);
|
||||
if($plan){
|
||||
return redirect()->route('admin.plan')->with("success","Plan update Successfully!");
|
||||
}else{
|
||||
return redirect()->route('admin.plan.edit',$id)->with("error","Some thing went wrong!");
|
||||
}
|
||||
}
|
||||
|
||||
public function delete(Request $request)
|
||||
{ $exam = Plan::where('id',$request->id)->get();
|
||||
if(empty($state)){
|
||||
$data = Plan::countrydelete($request->id);
|
||||
if($data == 1){
|
||||
echo json_encode(["status"=>1]);exit;
|
||||
}else{
|
||||
echo json_encode(["status"=>2]);exit;
|
||||
}
|
||||
}else{
|
||||
echo json_encode(["status"=>0]);exit;
|
||||
}
|
||||
}
|
||||
}
|
@@ -0,0 +1,80 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\State;
|
||||
use App\Models\Country;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
use Illuminate\Support\Facades\Response;
|
||||
|
||||
class StateController extends Controller
|
||||
{
|
||||
public function index(){
|
||||
return view('admin.state.index');
|
||||
}
|
||||
|
||||
public function getStateList(Request $request){
|
||||
return State::getStateList($request);
|
||||
}
|
||||
public function create(Request $request){
|
||||
$country = Country::get_CountryList();
|
||||
return view('admin.state.create',compact('country'));
|
||||
}
|
||||
|
||||
function store(Request $request)
|
||||
{
|
||||
$validator = Validator::make($request->all(), [
|
||||
'country' =>'required',
|
||||
'name' => 'required|unique:state,name',
|
||||
]);
|
||||
if ($validator->fails()) {
|
||||
return redirect('admin/add-state')
|
||||
->withErrors($validator, 'state')
|
||||
->withInput();
|
||||
}
|
||||
$state = State::addEditState($request);
|
||||
if($state){
|
||||
return redirect()->route('admin.state')->with("success","State add Successfully!");
|
||||
}else{
|
||||
return redirect()->route('admin.add-state')->with("error","Some thing went wrong!");
|
||||
}
|
||||
}
|
||||
|
||||
public function edit($id){
|
||||
$country = Country::get_CountryList();
|
||||
$state = State::find($id);
|
||||
return view('admin.state.edit',compact('country','state'));
|
||||
}
|
||||
|
||||
public function update(Request $request,$id)
|
||||
{
|
||||
$validator = Validator::make($request->all(), [
|
||||
'country' =>'required',
|
||||
'name' => 'required|unique:state,name,'.$id
|
||||
|
||||
]);
|
||||
if ($validator->fails()) {
|
||||
return redirect()->route('admin.state.edit',$id)
|
||||
->withErrors($validator, 'state')
|
||||
->withInput();
|
||||
}
|
||||
$state = State::addEditState($request,$id);
|
||||
if($state){
|
||||
return redirect()->route('admin.state')->with("success","State update Successfully!");
|
||||
}else{
|
||||
return redirect()->route('admin.state.edit',$id)->with("error","Some thing went wrong!");
|
||||
}
|
||||
}
|
||||
|
||||
public function delete(Request $request)
|
||||
{
|
||||
$data = State::Statedelete($request->id);
|
||||
if($data == 1){
|
||||
return Response::json(["status"=>true],200);
|
||||
}else{
|
||||
return Response::json(["status"=>false],500);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
@@ -0,0 +1,85 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
use Illuminate\Support\Facades\Response;
|
||||
use App\Models\Subject;
|
||||
use App\Models\Plan;
|
||||
use App\Models\Test;
|
||||
|
||||
class SubjectController extends Controller
|
||||
{
|
||||
public function index(){
|
||||
return view('admin.subject.index');
|
||||
}
|
||||
|
||||
public function getSubjectList(Request $request){
|
||||
return Subject::getSubjectList($request);
|
||||
}
|
||||
public function create(Request $request){
|
||||
$plan = Plan::get_PlanList();
|
||||
return view('admin.subject.create',compact('plan'));
|
||||
}
|
||||
|
||||
function store(Request $request)
|
||||
{
|
||||
$validator = Validator::make($request->all(), [
|
||||
'plan' =>'required',
|
||||
'name' => 'required|unique:subjects,name',
|
||||
]);
|
||||
if ($validator->fails()) {
|
||||
return redirect('admin/add-subject')
|
||||
->withErrors($validator, 'state')
|
||||
->withInput();
|
||||
}
|
||||
$state = Subject::addEditSubject($request);
|
||||
if($state){
|
||||
return redirect()->route('admin.subject')->with("success","State add Successfully!");
|
||||
}else{
|
||||
return redirect()->route('admin.add-subject')->with("error","Some thing went wrong!");
|
||||
}
|
||||
}
|
||||
|
||||
public function edit($id){
|
||||
$plan = Plan::get_PlanList();
|
||||
$subject = Subject::find($id);
|
||||
return view('admin.subject.edit',compact('plan','subject'));
|
||||
}
|
||||
|
||||
public function update(Request $request,$id)
|
||||
{
|
||||
$validator = Validator::make($request->all(), [
|
||||
'plan' =>'required',
|
||||
'name' => 'required|unique:subjects,name,'.$id
|
||||
|
||||
]);
|
||||
if ($validator->fails()) {
|
||||
return redirect()->route('admin.subject.edit',$id)
|
||||
->withErrors($validator, 'subject')
|
||||
->withInput();
|
||||
}
|
||||
$subject = Subject::addEditSubject($request,$id);
|
||||
if($subject){
|
||||
return redirect()->route('admin.subject')->with("success","Subject update Successfully!");
|
||||
}else{
|
||||
return redirect()->route('admin.subject.edit',$id)->with("error","Some thing went wrong!");
|
||||
}
|
||||
}
|
||||
|
||||
public function delete(Request $request)
|
||||
{
|
||||
$test = Test::where('subject_id',$request->id)->get();
|
||||
if ($test->count() == 0){
|
||||
$data = Subject::Subjectdelete($request->id);
|
||||
if($data == 1){
|
||||
echo json_encode(["status"=>1]);exit;
|
||||
}else{
|
||||
echo json_encode(["status"=>0]);exit;
|
||||
}
|
||||
}else{
|
||||
echo json_encode(["status"=>2]);exit;
|
||||
}
|
||||
}
|
||||
}
|
@@ -0,0 +1,82 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\Test;
|
||||
use App\Models\Subject;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
|
||||
class TestController extends Controller
|
||||
{
|
||||
public function index()
|
||||
{
|
||||
return view('admin.test.index');
|
||||
}
|
||||
|
||||
public function getTestList(Request $request)
|
||||
{
|
||||
return Test::getTestList($request);
|
||||
}
|
||||
public function create(Request $request)
|
||||
{
|
||||
$subject = Subject::all();
|
||||
return view('admin.test.create',compact('subject'));
|
||||
}
|
||||
|
||||
function store(Request $request)
|
||||
{
|
||||
$validator = Validator::make($request->all(), [
|
||||
'subject' => 'required',
|
||||
'name' => 'required|unique:test,name',
|
||||
]);
|
||||
if ($validator->fails()) {
|
||||
return redirect()->route('admin.test.add')
|
||||
->withErrors($validator, 'test')
|
||||
->withInput();
|
||||
}
|
||||
$test = Test::addEditTest($request);
|
||||
if ($test) {
|
||||
return redirect()->route('admin.test')->with("success", "Test add Successfully!");
|
||||
} else {
|
||||
return redirect()->route('admin.add-test')->with("error", "Some thing went wrong!");
|
||||
}
|
||||
}
|
||||
|
||||
public function edit($id)
|
||||
{
|
||||
$subject = Subject::all();
|
||||
$test = Test::find($id);
|
||||
return view('admin.test.edit', compact('subject','test'));
|
||||
}
|
||||
public function update(Request $request, $id)
|
||||
{
|
||||
$validator = Validator::make($request->all(), [
|
||||
'subject' => 'required',
|
||||
'name' => 'required|unique:test,name,' . $id,
|
||||
]);
|
||||
if ($validator->fails()) {
|
||||
return redirect()->route('admin.test.edit', $id)
|
||||
->withErrors($validator, 'test')
|
||||
->withInput();
|
||||
}
|
||||
$test = Test::addEditTest($request, $id);
|
||||
if ($test) {
|
||||
return redirect()->route('admin.test')->with("success", "Test update Successfully!");
|
||||
} else {
|
||||
return redirect()->route('admin.test.edit', $id)->with("error", "Some thing went wrong!");
|
||||
}
|
||||
}
|
||||
|
||||
public function delete(Request $request)
|
||||
{
|
||||
$data = Test::testdelete($request->id);
|
||||
if ($data == 1) {
|
||||
echo json_encode(["status" => 1]);
|
||||
exit;
|
||||
} else {
|
||||
echo json_encode(["status" => 0]);
|
||||
exit;
|
||||
}
|
||||
}
|
||||
}
|
@@ -0,0 +1,94 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\TestQuestion;
|
||||
use App\Models\Test;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
use Illuminate\Support\Facades\Response;
|
||||
|
||||
class TestQuestionController extends Controller
|
||||
{
|
||||
public function index(){
|
||||
return view('admin.test_question.index');
|
||||
}
|
||||
|
||||
public function getQuestionList(Request $request){
|
||||
return TestQuestion::getQuestionList($request);
|
||||
}
|
||||
public function create(Request $request){
|
||||
$test = TestQuestion::get_TestList();
|
||||
return view('admin.test_question.create',compact('test'));
|
||||
}
|
||||
|
||||
function store(Request $request)
|
||||
{
|
||||
$validator = Validator::make($request->all(), [
|
||||
'test' =>'required',
|
||||
'question' => 'required|unique:test_question,question',
|
||||
'option_1' => 'required|unique:test_question,option_1',
|
||||
'option_2' => 'required|unique:test_question,option_2',
|
||||
'option_3' => 'required|unique:test_question,option_2',
|
||||
'option_4' => 'required|unique:test_question,option_2',
|
||||
'true_answer' => 'required|unique:test_question,true_answer',
|
||||
'solution' => 'required|unique:test_question,solution',
|
||||
]);
|
||||
if ($validator->fails()) {
|
||||
return redirect('admin/add-question')
|
||||
->withErrors($validator, 'testquestion')
|
||||
->withInput();
|
||||
}
|
||||
$question = TestQuestion::addEditTestQuestion($request);
|
||||
if($question){
|
||||
return redirect()->route('admin.question')->with("success","Test Question add Successfully!");
|
||||
}else{
|
||||
return redirect()->route('admin.add-question')->with("error","Some thing went wrong!");
|
||||
}
|
||||
}
|
||||
|
||||
public function edit($id){
|
||||
$test = TestQuestion::get_TestList();
|
||||
$state = TestQuestion::find($id);
|
||||
return view('admin.test_question.edit',compact('country','state'));
|
||||
}
|
||||
|
||||
public function update(Request $request,$id)
|
||||
{
|
||||
$validator = Validator::make($request->all(), [
|
||||
'test' =>'required',
|
||||
'question' => 'required|unique:test_question,question',
|
||||
'option_1' => 'required|unique:test_question,option_1',
|
||||
'option_2' => 'required|unique:test_question,option_2',
|
||||
'option_3' => 'required|unique:test_question,option_2',
|
||||
'option_4' => 'required|unique:test_question,option_2',
|
||||
'true_answer' => 'required|unique:test_question,true_answer',
|
||||
'solution' => 'required|unique:test_question,solution',
|
||||
]);
|
||||
if ($validator->fails()) {
|
||||
return redirect()->route('admin.state.edit',$id)
|
||||
->withErrors($validator, 'state')
|
||||
->withInput();
|
||||
}
|
||||
$question = TestQuestion::addEditTestQuestion($request,$id);
|
||||
if($question){
|
||||
return redirect()->route('admin.state')->with("success","Test Question update Successfully!");
|
||||
}else{
|
||||
return redirect()->route('admin.state.edit',$id)->with("error","Some thing went wrong!");
|
||||
}
|
||||
}
|
||||
|
||||
public function delete(Request $request)
|
||||
{
|
||||
$data = TestQuestion::Statedelete($request->id);
|
||||
if($data == 1){
|
||||
return Response::json(["status"=>true],200);
|
||||
}else{
|
||||
return Response::json(["status"=>false],500);
|
||||
}
|
||||
|
||||
}
|
||||
public function show($id){
|
||||
$testquestion = TestQuestion::find($id);
|
||||
return view('admin.test_question.show',compact('testquestion'));
|
||||
}
|
||||
}
|
@@ -0,0 +1,80 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\front;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Models\User;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
|
||||
class AuthController extends Controller
|
||||
{
|
||||
/* Login / Register Page */
|
||||
public function login()
|
||||
{
|
||||
return view('front.login');
|
||||
}
|
||||
|
||||
/* Login */
|
||||
public function postlogin(Request $request)
|
||||
{
|
||||
$validator = Validator::make($request->all(), [
|
||||
'email' => 'required|email|max:255',
|
||||
'password' => 'required|min:8',
|
||||
]);
|
||||
|
||||
if ($validator->fails()) {
|
||||
return redirect('front.login')
|
||||
->withErrors($validator, 'login')
|
||||
->withInput();
|
||||
}
|
||||
|
||||
if (Auth::attempt($request->only('email', 'password'))) {
|
||||
$user = Auth::user();
|
||||
if ($user->role != config('const.studentRole')) {
|
||||
return redirect()->route('front.login')->with("error", "You are not authorized user.");
|
||||
}
|
||||
return redirect()->route('front.dashboard');
|
||||
} else {
|
||||
return redirect()->route('front.login')->with("error", "Invalid Email Or Password.");
|
||||
}
|
||||
}
|
||||
|
||||
/* Regisert */
|
||||
public function register(Request $request)
|
||||
{
|
||||
$validator = Validator::make($request->all(), [
|
||||
'name' => 'required|max:100',
|
||||
'email' => 'required|unique:users,email|max:190',
|
||||
'password' => 'required|confirmed',
|
||||
'password_confirmation' => 'required|same:password'
|
||||
]);
|
||||
$message = array(
|
||||
'password.confirmed' => 'Password and Confirm Password doesnot match.'
|
||||
);
|
||||
if ($validator->fails($message)) {
|
||||
return redirect()->route('front.login')
|
||||
->withErrors($validator, 'register')
|
||||
->withInput();
|
||||
}
|
||||
$user = User::where('email', $request->email)->count();
|
||||
if ($user > 0) {
|
||||
return redirect()->route('front.login')->with("error", "Email is already registered.");
|
||||
}
|
||||
$user = User::register($request);
|
||||
if ($user) {
|
||||
return redirect()->route('front.login')->with("success", "You are Register Successfully!");
|
||||
} else {
|
||||
return redirect()->route('front.login')->with("error", "Some thing went wrong!");
|
||||
}
|
||||
}
|
||||
|
||||
/*Logout*/
|
||||
public function logout(Request $request)
|
||||
{
|
||||
Auth::logout();
|
||||
$request->session()->regenerateToken();
|
||||
return redirect()->route('front.login');
|
||||
}
|
||||
}
|
@@ -0,0 +1,54 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\front;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Support\Facades\Hash;
|
||||
use App\Models\User;
|
||||
|
||||
|
||||
class FrontHomeController extends Controller
|
||||
{
|
||||
public function index() {
|
||||
return view('front.index');
|
||||
}
|
||||
|
||||
/* Student Dashboard */
|
||||
public function dashboard(){
|
||||
return view('front.dahsboard');
|
||||
}
|
||||
/* Student Profile */
|
||||
public function profile(){
|
||||
return view('front.profile');
|
||||
}
|
||||
/* Student Change Password */
|
||||
public function changepassword(){
|
||||
return view('front.changepassword');
|
||||
}
|
||||
|
||||
/*
|
||||
* Update User Password
|
||||
*/
|
||||
|
||||
public function updatePassword(Request $request) {
|
||||
$validator = Validator::make($request->all(), [
|
||||
'currentpassword' => 'required|max:255',
|
||||
'password' => 'required|max:255',
|
||||
'password_confirmation' => 'required|max:255|same:password',
|
||||
]);
|
||||
if ($validator->fails()) {
|
||||
return redirect()->route('front.changepassword')->withErrors($validator, 'changepassword')->withInput();
|
||||
}
|
||||
if (!Hash::check($request->currentpassword, Auth::user()->password)) {
|
||||
return redirect()->route('front.changepassword')->with('error', 'Password and Current Password does not match.');
|
||||
}
|
||||
if ($request->newpassword != $request->confirmpassword) {
|
||||
return redirect()->route('front.changepassword')->with('error', 'New Password and Confirm Password does not match.');
|
||||
}
|
||||
User::updatePassword($request, Auth::user()->id);
|
||||
return redirect()->route('front.changepassword')->with('success', 'Password Change Successfully!');
|
||||
}
|
||||
}
|
@@ -0,0 +1,68 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http;
|
||||
|
||||
use Illuminate\Foundation\Http\Kernel as HttpKernel;
|
||||
|
||||
class Kernel extends HttpKernel
|
||||
{
|
||||
/**
|
||||
* The application's global HTTP middleware stack.
|
||||
*
|
||||
* These middleware are run during every request to your application.
|
||||
*
|
||||
* @var array<int, class-string|string>
|
||||
*/
|
||||
protected $middleware = [
|
||||
// \App\Http\Middleware\TrustHosts::class,
|
||||
\App\Http\Middleware\TrustProxies::class,
|
||||
\Illuminate\Http\Middleware\HandleCors::class,
|
||||
\App\Http\Middleware\PreventRequestsDuringMaintenance::class,
|
||||
\Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,
|
||||
\App\Http\Middleware\TrimStrings::class,
|
||||
\Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
|
||||
];
|
||||
|
||||
/**
|
||||
* The application's route middleware groups.
|
||||
*
|
||||
* @var array<string, array<int, class-string|string>>
|
||||
*/
|
||||
protected $middlewareGroups = [
|
||||
'web' => [
|
||||
\App\Http\Middleware\EncryptCookies::class,
|
||||
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
|
||||
\Illuminate\Session\Middleware\StartSession::class,
|
||||
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
|
||||
\App\Http\Middleware\VerifyCsrfToken::class,
|
||||
\Illuminate\Routing\Middleware\SubstituteBindings::class,
|
||||
],
|
||||
|
||||
'api' => [
|
||||
// \Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class,
|
||||
'throttle:api',
|
||||
\Illuminate\Routing\Middleware\SubstituteBindings::class,
|
||||
],
|
||||
];
|
||||
|
||||
/**
|
||||
* The application's route middleware.
|
||||
*
|
||||
* These middleware may be assigned to groups or used individually.
|
||||
*
|
||||
* @var array<string, class-string|string>
|
||||
*/
|
||||
protected $routeMiddleware = [
|
||||
'auth' => \App\Http\Middleware\Authenticate::class,
|
||||
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
|
||||
'auth.session' => \Illuminate\Session\Middleware\AuthenticateSession::class,
|
||||
'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class,
|
||||
'can' => \Illuminate\Auth\Middleware\Authorize::class,
|
||||
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
|
||||
'password.confirm' => \Illuminate\Auth\Middleware\RequirePassword::class,
|
||||
'signed' => \App\Http\Middleware\ValidateSignature::class,
|
||||
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
|
||||
'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,
|
||||
'prevent-back-history' => \App\Http\Middleware\PreventBackHistory::class,
|
||||
];
|
||||
}
|
@@ -0,0 +1,21 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Middleware;
|
||||
|
||||
use Illuminate\Auth\Middleware\Authenticate as Middleware;
|
||||
|
||||
class Authenticate extends Middleware
|
||||
{
|
||||
/**
|
||||
* Get the path the user should be redirected to when they are not authenticated.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return string|null
|
||||
*/
|
||||
protected function redirectTo($request)
|
||||
{
|
||||
if (! $request->expectsJson()) {
|
||||
return route('login');
|
||||
}
|
||||
}
|
||||
}
|
@@ -0,0 +1,17 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Middleware;
|
||||
|
||||
use Illuminate\Cookie\Middleware\EncryptCookies as Middleware;
|
||||
|
||||
class EncryptCookies extends Middleware
|
||||
{
|
||||
/**
|
||||
* The names of the cookies that should not be encrypted.
|
||||
*
|
||||
* @var array<int, string>
|
||||
*/
|
||||
protected $except = [
|
||||
//
|
||||
];
|
||||
}
|
@@ -0,0 +1,24 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Middleware;
|
||||
|
||||
use Closure;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class PreventBackHistory {
|
||||
|
||||
/**
|
||||
* Handle an incoming request.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param \Closure(\Illuminate\Http\Request): (\Illuminate\Http\Response|\Illuminate\Http\RedirectResponse) $next
|
||||
* @return \Illuminate\Http\Response|\Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function handle(Request $request, Closure $next) {
|
||||
$response = $next($request);
|
||||
return $response->header('Cache-Control', 'nocache, no-store, max-age=0, must-revalidate')
|
||||
->header('Pragma', 'no-cache')
|
||||
->header('Expires', 'Sun, 02 Jan 1990 00:00:00 GMT');
|
||||
}
|
||||
|
||||
}
|
@@ -0,0 +1,17 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Middleware;
|
||||
|
||||
use Illuminate\Foundation\Http\Middleware\PreventRequestsDuringMaintenance as Middleware;
|
||||
|
||||
class PreventRequestsDuringMaintenance extends Middleware
|
||||
{
|
||||
/**
|
||||
* The URIs that should be reachable while maintenance mode is enabled.
|
||||
*
|
||||
* @var array<int, string>
|
||||
*/
|
||||
protected $except = [
|
||||
//
|
||||
];
|
||||
}
|
@@ -0,0 +1,32 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Middleware;
|
||||
|
||||
use App\Providers\RouteServiceProvider;
|
||||
use Closure;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
|
||||
class RedirectIfAuthenticated
|
||||
{
|
||||
/**
|
||||
* Handle an incoming request.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param \Closure(\Illuminate\Http\Request): (\Illuminate\Http\Response|\Illuminate\Http\RedirectResponse) $next
|
||||
* @param string|null ...$guards
|
||||
* @return \Illuminate\Http\Response|\Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function handle(Request $request, Closure $next, ...$guards)
|
||||
{
|
||||
$guards = empty($guards) ? [null] : $guards;
|
||||
|
||||
foreach ($guards as $guard) {
|
||||
if (Auth::guard($guard)->check()) {
|
||||
return redirect(RouteServiceProvider::HOME);
|
||||
}
|
||||
}
|
||||
|
||||
return $next($request);
|
||||
}
|
||||
}
|
@@ -0,0 +1,19 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Middleware;
|
||||
|
||||
use Illuminate\Foundation\Http\Middleware\TrimStrings as Middleware;
|
||||
|
||||
class TrimStrings extends Middleware
|
||||
{
|
||||
/**
|
||||
* The names of the attributes that should not be trimmed.
|
||||
*
|
||||
* @var array<int, string>
|
||||
*/
|
||||
protected $except = [
|
||||
'current_password',
|
||||
'password',
|
||||
'password_confirmation',
|
||||
];
|
||||
}
|
@@ -0,0 +1,20 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Middleware;
|
||||
|
||||
use Illuminate\Http\Middleware\TrustHosts as Middleware;
|
||||
|
||||
class TrustHosts extends Middleware
|
||||
{
|
||||
/**
|
||||
* Get the host patterns that should be trusted.
|
||||
*
|
||||
* @return array<int, string|null>
|
||||
*/
|
||||
public function hosts()
|
||||
{
|
||||
return [
|
||||
$this->allSubdomainsOfApplicationUrl(),
|
||||
];
|
||||
}
|
||||
}
|
@@ -0,0 +1,28 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Middleware;
|
||||
|
||||
use Illuminate\Http\Middleware\TrustProxies as Middleware;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class TrustProxies extends Middleware
|
||||
{
|
||||
/**
|
||||
* The trusted proxies for this application.
|
||||
*
|
||||
* @var array<int, string>|string|null
|
||||
*/
|
||||
protected $proxies;
|
||||
|
||||
/**
|
||||
* The headers that should be used to detect proxies.
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
protected $headers =
|
||||
Request::HEADER_X_FORWARDED_FOR |
|
||||
Request::HEADER_X_FORWARDED_HOST |
|
||||
Request::HEADER_X_FORWARDED_PORT |
|
||||
Request::HEADER_X_FORWARDED_PROTO |
|
||||
Request::HEADER_X_FORWARDED_AWS_ELB;
|
||||
}
|
@@ -0,0 +1,22 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Middleware;
|
||||
|
||||
use Illuminate\Routing\Middleware\ValidateSignature as Middleware;
|
||||
|
||||
class ValidateSignature extends Middleware
|
||||
{
|
||||
/**
|
||||
* The names of the query string parameters that should be ignored.
|
||||
*
|
||||
* @var array<int, string>
|
||||
*/
|
||||
protected $except = [
|
||||
// 'fbclid',
|
||||
// 'utm_campaign',
|
||||
// 'utm_content',
|
||||
// 'utm_medium',
|
||||
// 'utm_source',
|
||||
// 'utm_term',
|
||||
];
|
||||
}
|
@@ -0,0 +1,17 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Middleware;
|
||||
|
||||
use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as Middleware;
|
||||
|
||||
class VerifyCsrfToken extends Middleware
|
||||
{
|
||||
/**
|
||||
* The URIs that should be excluded from CSRF verification.
|
||||
*
|
||||
* @var array<int, string>
|
||||
*/
|
||||
protected $except = [
|
||||
//
|
||||
];
|
||||
}
|
@@ -0,0 +1,54 @@
|
||||
<?php
|
||||
|
||||
namespace App\Jobs;
|
||||
|
||||
use Illuminate\Bus\Queueable;
|
||||
use Illuminate\Contracts\Queue\ShouldBeUnique;
|
||||
use Illuminate\Contracts\Queue\ShouldQueue;
|
||||
use Illuminate\Foundation\Bus\Dispatchable;
|
||||
use Illuminate\Queue\InteractsWithQueue;
|
||||
use Illuminate\Queue\SerializesModels;
|
||||
use Illuminate\Support\Facades\Mail;
|
||||
use App\Mail\Sendmail;
|
||||
|
||||
class SendEmailJob implements ShouldQueue {
|
||||
|
||||
use Dispatchable,
|
||||
InteractsWithQueue,
|
||||
Queueable,
|
||||
SerializesModels;
|
||||
|
||||
protected $event;
|
||||
|
||||
/**
|
||||
* Create a new job instance.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __construct($event) {
|
||||
$this->event = $event;
|
||||
}
|
||||
|
||||
/**
|
||||
* Build the message.
|
||||
*
|
||||
* @return $this
|
||||
*/
|
||||
public function build() {
|
||||
return $this->subject('Mail from ItSolutionStuff.com')->view('mail.forgot');
|
||||
}
|
||||
|
||||
/**
|
||||
* Execute the job.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function handle() {
|
||||
$event = $this->event;
|
||||
Mail::send('mail.' . $this->event['_blade'], $event, function ($message) use ($event) {
|
||||
$message->to($event['toemail'], env('APP_NAME'));
|
||||
$message->subject('Forgot Password');
|
||||
});
|
||||
}
|
||||
|
||||
}
|
@@ -0,0 +1,57 @@
|
||||
<?php
|
||||
|
||||
namespace App\Mail;
|
||||
|
||||
use Illuminate\Bus\Queueable;
|
||||
use Illuminate\Contracts\Queue\ShouldQueue;
|
||||
use Illuminate\Mail\Mailable;
|
||||
use Illuminate\Mail\Mailables\Content;
|
||||
use Illuminate\Mail\Mailables\Envelope;
|
||||
use Illuminate\Queue\SerializesModels;
|
||||
|
||||
class Sendmail extends Mailable {
|
||||
|
||||
use Queueable,
|
||||
SerializesModels;
|
||||
|
||||
/**
|
||||
* Create a new message instance.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __construct() {
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the message envelope.
|
||||
*
|
||||
* @return \Illuminate\Mail\Mailables\Envelope
|
||||
*/
|
||||
public function envelope() {
|
||||
return new Envelope(
|
||||
subject: 'Sendmail',
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the message content definition.
|
||||
*
|
||||
* @return \Illuminate\Mail\Mailables\Content
|
||||
*/
|
||||
public function content() {
|
||||
return new Content(
|
||||
view: 'view.name',
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the attachments for the message.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function attachments() {
|
||||
return [];
|
||||
}
|
||||
|
||||
}
|
@@ -0,0 +1,57 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use PHPUnit\Framework\Constraint\Count;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
use Yajra\DataTables\Facades\DataTables;
|
||||
use App\Models\State;
|
||||
use Illuminate\Support\Facades\Response;
|
||||
|
||||
class Country extends Model
|
||||
{
|
||||
use HasFactory, SoftDeletes;
|
||||
protected $table = "country";
|
||||
|
||||
public static function getCountryList($request)
|
||||
{
|
||||
|
||||
if ($request->ajax()) {
|
||||
$data = Country::orderBy('id','desc');
|
||||
return DataTables::of($data)
|
||||
->addColumn('action', function ($row) {
|
||||
$actionBtn = '<a href="' . route("admin.country.edit", $row->id) . '" class="edit btn btn-success btn-flat btn-sm"><i class="fa fa-pencil-square-o"></i> </a> <a href="javascript:void(0)" class="delete btn btn-danger btn-flat btn-sm delete_counntry" data-id="' . $row->id . '" ><i class="fa-sharp fa-solid fa fa-trash"></i></a>';
|
||||
return $actionBtn;
|
||||
})
|
||||
->rawColumns(['action'])
|
||||
->make(true);
|
||||
}
|
||||
}
|
||||
/* Add Edit Country */
|
||||
public static function addEditCountry($request, $id = '')
|
||||
{
|
||||
if ($id) {
|
||||
$data = Country::find($id);
|
||||
} else {
|
||||
$data = new Country();
|
||||
}
|
||||
$data->name = $request->name;
|
||||
$data->save();
|
||||
return $data;
|
||||
}
|
||||
|
||||
/* Delete Country */
|
||||
public static function countrydelete($id)
|
||||
{
|
||||
Country::where('id', $id)->delete();
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* Get Country List */
|
||||
public static function get_CountryList()
|
||||
{
|
||||
return Country::all();
|
||||
}
|
||||
}
|
@@ -0,0 +1,81 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
use Yajra\DataTables\Facades\DataTables;
|
||||
use App\Models\Country;
|
||||
use App\Models\State;
|
||||
use App\Models\ExamCategory;
|
||||
|
||||
class Exam extends Model {
|
||||
|
||||
use HasFactory,
|
||||
SoftDeletes;
|
||||
|
||||
protected $table = 'exam';
|
||||
|
||||
public function getCountry() {
|
||||
return $this->hasOne(Country::class, 'id', 'country_id');
|
||||
}
|
||||
|
||||
public function getState() {
|
||||
return $this->hasOne(State::class, 'id', 'state_id');
|
||||
}
|
||||
|
||||
public function getExamCategory() {
|
||||
return $this->hasOne(ExamCategory::class, 'id', 'exam_category_id');
|
||||
}
|
||||
|
||||
public static function getExamList($request) {
|
||||
if ($request->ajax()) {
|
||||
$data = Exam::with(['getCountry', 'getState', 'getExamCategory']);
|
||||
if ($request->order) {
|
||||
$data->orderBy('id', 'desc');
|
||||
}
|
||||
return DataTables::of($data)
|
||||
->addColumn('country', function ($row) {
|
||||
return $row->getCountry->name;
|
||||
})
|
||||
->addColumn('state', function ($row) {
|
||||
return $row->getState->name;
|
||||
})
|
||||
->addColumn('category', function ($row) {
|
||||
return $row->getExamCategory->title;
|
||||
})
|
||||
->addColumn('action', function ($row) {
|
||||
$actionBtn = '<a href="' . route('admin.exam.edit', $row->id) . '" class="edit btn btn-success btn-flat btn-sm"><i class="fa fa-pencil-square-o"></i> </a> <a href="javascript:void(0)" class="delete btn btn-danger btn-flat btn-sm delete_exam" data-id="' . $row->id . '" ><i class="fa-sharp fa-solid fa fa-trash"></i></a>';
|
||||
return $actionBtn;
|
||||
})
|
||||
->rawColumns(['action'])
|
||||
->make(true);
|
||||
}
|
||||
}
|
||||
|
||||
/* Add Edit Country */
|
||||
|
||||
public static function addEditExam($request, $id = '') {
|
||||
if ($id) {
|
||||
$data = Exam::find($id);
|
||||
} else {
|
||||
$data = new Exam();
|
||||
}
|
||||
$data->exam_category_id = $request->examcategory;
|
||||
$data->country_id = $request->country;
|
||||
$data->state_id = $request->state;
|
||||
$data->name = $request->name;
|
||||
$data->description = $request->description;
|
||||
$data->save();
|
||||
return $data;
|
||||
}
|
||||
|
||||
/* Delete Exam */
|
||||
|
||||
public static function Examdelete($id) {
|
||||
Exam::where('id', $id)->delete();
|
||||
return 1;
|
||||
}
|
||||
|
||||
}
|
@@ -0,0 +1,54 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
use Illuminate\Support\Facades\Response;
|
||||
use Yajra\DataTables\Facades\DataTables;
|
||||
use App\Models\Exam;
|
||||
|
||||
class ExamCategory extends Model
|
||||
{
|
||||
use HasFactory, SoftDeletes;
|
||||
protected $table = "exam_category";
|
||||
public static function getExamCategoryList($request)
|
||||
{
|
||||
if ($request->ajax()) {
|
||||
$data = ExamCategory::orderBy('id', 'desc');
|
||||
return DataTables::of($data)
|
||||
->addColumn('action', function ($row) {
|
||||
$actionBtn = '<a href="' . route('admin.examcategory.edit', $row->id) . '" class="edit btn btn-success btn-flat btn-sm"><i class="fa fa-pencil-square-o"></i> </a> <a href="javascript:void(0)" class="delete btn btn-danger btn-flat btn-sm delete_examcategory" data-id="' . $row->id . '" ><i class="fa-sharp fa-solid fa fa-trash"></i></a>';
|
||||
return $actionBtn;
|
||||
})
|
||||
->rawColumns(['action'])
|
||||
->make(true);
|
||||
}
|
||||
}
|
||||
/* Add Edit Country */
|
||||
public static function addEditExamCategory($request, $id = '')
|
||||
{
|
||||
if ($id) {
|
||||
$data = ExamCategory::find($id);
|
||||
} else {
|
||||
$data = new ExamCategory();
|
||||
}
|
||||
$data->title = $request->title;
|
||||
$data->save();
|
||||
return $data;
|
||||
}
|
||||
|
||||
/* Delete Country */
|
||||
public static function ExamCategorydelete($id)
|
||||
{
|
||||
ExamCategory::where('id', $id)->delete();
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* Exam Category */
|
||||
public static function get_ExamCategoryList()
|
||||
{
|
||||
return ExamCategory::all();
|
||||
}
|
||||
}
|
@@ -0,0 +1,73 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
use App\Models\Exam;
|
||||
use Yajra\DataTables\Facades\DataTables;
|
||||
use App\Helper\Helpers;
|
||||
|
||||
class Plan extends Model
|
||||
{
|
||||
use HasFactory, SoftDeletes;
|
||||
protected $table = 'plans';
|
||||
|
||||
public function getExam(){
|
||||
return $this->hasOne(Exam::class,'id','exam_id');
|
||||
}
|
||||
public static function getPlanList($request)
|
||||
{
|
||||
if ($request->ajax()) {
|
||||
$data = Plan::with(['getExam']);
|
||||
if($request->order){
|
||||
$data->orderBy('id','desc');
|
||||
}
|
||||
return DataTables::of($data)
|
||||
->addColumn('exam', function ($row) {
|
||||
return $row->getExam->name;
|
||||
})
|
||||
->addColumn('unlimited_test_attempt', function ($row) {
|
||||
return Helpers::getunlimitedTestAttempt($row->unlimited_test_attempt);
|
||||
})
|
||||
->addColumn('action', function ($row) {
|
||||
$actionBtn = '<a href="' . route('admin.plan.edit', $row->id) . '" class="edit btn btn-success btn-flat btn-sm"><i class="fa fa-pencil-square-o"></i> </a> <a href="javascript:void(0)" class="delete btn btn-danger btn-flat btn-sm delete_plan" data-id="' . $row->id . '" ><i class="fa-sharp fa-solid fa fa-trash"></i></a>';
|
||||
return $actionBtn;
|
||||
})
|
||||
->rawColumns(['unlimited_test_attempt','action'])
|
||||
->make(true);
|
||||
}
|
||||
}
|
||||
/* Add Edit Plan */
|
||||
public static function addEditPlan($request, $id = '')
|
||||
{
|
||||
if ($id) {
|
||||
$data = Plan::find($id);
|
||||
} else {
|
||||
$data = new Plan();
|
||||
}
|
||||
$data->exam_id = $request->exam;
|
||||
$data->name = $request->name;
|
||||
$data->year = $request->year;
|
||||
$data->price = $request->price ;
|
||||
$data->validity = $request->validity;
|
||||
$data->unlimited_test_attempt = $request->unlimited_test_attempt;
|
||||
$data->attempt = ($request->unlimited_test_attempt == 0) ? $request->attempt : null;
|
||||
$data->description = $request->description;
|
||||
$data->save();
|
||||
return $data;
|
||||
}
|
||||
|
||||
/* Delete Plan */
|
||||
public static function Plandelete($id)
|
||||
{
|
||||
return Plan::where('id', $id)->delete();
|
||||
}
|
||||
|
||||
/* Get Plan List */
|
||||
public static function get_PlanList()
|
||||
{
|
||||
return Plan::all();
|
||||
}
|
||||
}
|
@@ -0,0 +1,15 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class ResetPassword extends Model {
|
||||
|
||||
use HasFactory;
|
||||
|
||||
protected $table = "password_resets";
|
||||
protected $fillable = ['email', 'token'];
|
||||
|
||||
}
|
@@ -0,0 +1,62 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
use PHPUnit\Framework\Constraint\Count;
|
||||
use Yajra\DataTables\Facades\DataTables;
|
||||
|
||||
class State extends Model
|
||||
{
|
||||
use HasFactory, SoftDeletes;
|
||||
protected $table = 'state';
|
||||
|
||||
public function getCountry()
|
||||
{
|
||||
return $this->hasOne(Country::class, 'id', 'country_id');
|
||||
}
|
||||
public static function getStateList($request)
|
||||
{
|
||||
if ($request->ajax()) {
|
||||
$data = State::with('getCountry');
|
||||
$data->orderBy('id','desc');
|
||||
return DataTables::of($data)
|
||||
->addColumn('country', function ($row) {
|
||||
return $row->getCountry->name;
|
||||
})
|
||||
->addColumn('action', function ($row) {
|
||||
$actionBtn = '<a href="' . route('admin.state.edit', $row->id) . '" class="edit btn btn-success btn-flat btn-sm"><i class="fa fa-pencil-square-o"></i> </a> <a href="javascript:void(0)" class="delete btn btn-danger btn-sm btn-flat delete_state" data-id="' . $row->id . '" ><i class=" fa-sharp fa-solid fa fa-trash"></i></a>';
|
||||
return $actionBtn;
|
||||
})
|
||||
->rawColumns(['action'])
|
||||
->make(true);
|
||||
}
|
||||
}
|
||||
/* Add Edit State */
|
||||
public static function addEditState($request, $id = '')
|
||||
{
|
||||
if ($id) {
|
||||
$data = State::find($id);
|
||||
} else {
|
||||
$data = new State();
|
||||
}
|
||||
$data->country_id = $request->country;
|
||||
$data->name = $request->name;
|
||||
$data->save();
|
||||
return $data;
|
||||
}
|
||||
|
||||
/* Delete State */
|
||||
public static function Statedelete($id)
|
||||
{
|
||||
return State::where('id', $id)->delete();
|
||||
}
|
||||
|
||||
/* Get State List */
|
||||
public static function get_StateList($country='')
|
||||
{
|
||||
return State::where('country_id', $country)->get();
|
||||
}
|
||||
}
|
@@ -0,0 +1,56 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Yajra\DataTables\Facades\DataTables;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
use App\Models\Plan;
|
||||
|
||||
class Subject extends Model
|
||||
{
|
||||
use HasFactory, SoftDeletes;
|
||||
protected $table = 'subjects';
|
||||
|
||||
public function getPlan()
|
||||
{
|
||||
return $this->hasOne(Plan::class, 'id', 'plan_id');
|
||||
}
|
||||
public static function getSubjectList($request)
|
||||
{
|
||||
if ($request->ajax()) {
|
||||
$data = Subject::with('getPlan');
|
||||
$data->orderBy('id', 'desc');
|
||||
return DataTables::of($data)
|
||||
->addColumn('plan', function ($row) {
|
||||
return $row->getPlan->name;
|
||||
})
|
||||
->addColumn('action', function ($row) {
|
||||
$actionBtn = '<a href="' . route('admin.subject.edit', $row->id) . '" class="edit btn btn-success btn-flat btn-sm"><i class="fa fa-pencil-square-o"></i> </a> <a href="javascript:void(0)" class="delete btn btn-danger btn-sm btn-flat delete_subject" data-id="' . $row->id . '" ><i class=" fa-sharp fa-solid fa fa-trash"></i></a>';
|
||||
return $actionBtn;
|
||||
})
|
||||
->rawColumns(['action'])
|
||||
->make(true);
|
||||
}
|
||||
}
|
||||
/* Add Edit State */
|
||||
public static function addEditSubject($request, $id = '')
|
||||
{
|
||||
if ($id) {
|
||||
$data = Subject::find($id);
|
||||
} else {
|
||||
$data = new Subject();
|
||||
}
|
||||
$data->plan_id = $request->plan;
|
||||
$data->name = $request->name;
|
||||
$data->save();
|
||||
return $data;
|
||||
}
|
||||
|
||||
/* Delete State */
|
||||
public static function Subjectdelete($id)
|
||||
{
|
||||
return Subject::where('id', $id)->delete();
|
||||
}
|
||||
}
|
@@ -0,0 +1,66 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
use App\Models\Subject;
|
||||
use Yajra\DataTables\Facades\DataTables;
|
||||
|
||||
class Test extends Model
|
||||
{
|
||||
use HasFactory, SoftDeletes;
|
||||
protected $table = 'test';
|
||||
public function getSubject()
|
||||
{
|
||||
return $this->hasOne(Subject::class, 'id', 'subject_id');
|
||||
}
|
||||
public static function getTestList($request)
|
||||
{
|
||||
|
||||
if ($request->ajax()) {
|
||||
$data = Test::with('getSubject');
|
||||
if ($request->order) {
|
||||
$data->orderBy('id', 'desc');
|
||||
}
|
||||
return DataTables::of($data)
|
||||
->addColumn('subject', function ($row) {
|
||||
return $row->getSubject->name;
|
||||
})
|
||||
->addColumn('action', function ($row) {
|
||||
$actionBtn = '<a href="' . route("admin.test.edit", $row->id) . '" class="edit btn btn-success btn-flat btn-sm"><i class="fa fa-pencil-square-o"></i> </a> <a href="javascript:void(0)" class="delete btn btn-danger btn-flat btn-sm delete_test" data-id="' . $row->id . '" ><i class="fa-sharp fa-solid fa fa-trash"></i></a>';
|
||||
return $actionBtn;
|
||||
})
|
||||
->rawColumns(['action'])
|
||||
->make(true);
|
||||
}
|
||||
}
|
||||
/* Add Edit Test */
|
||||
public static function addEditTest($request, $id = '')
|
||||
{
|
||||
if ($id) {
|
||||
$data = Test::find($id);
|
||||
} else {
|
||||
$data = new Test();
|
||||
}
|
||||
$data->subject_id = $request->subject;
|
||||
$data->name = $request->name;
|
||||
$data->description = $request->description;
|
||||
$data->save();
|
||||
return $data;
|
||||
}
|
||||
|
||||
/* Delete Country */
|
||||
public static function testdelete($id)
|
||||
{
|
||||
Test::where('id', $id)->delete();
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* Get Subject List */
|
||||
public static function get_SubjectList()
|
||||
{
|
||||
return Subject::all();
|
||||
}
|
||||
}
|
@@ -0,0 +1,69 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use App\Models\Test;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
use Yajra\DataTables\Facades\DataTables;
|
||||
|
||||
class TestQuestion extends Model
|
||||
{
|
||||
use HasFactory, SoftDeletes;
|
||||
|
||||
protected $table = 'test_question';
|
||||
|
||||
public function getTest()
|
||||
{
|
||||
return $this->hasOne(Test::class, 'id', 'test_id');
|
||||
}
|
||||
|
||||
/* Get Question List*/
|
||||
public static function getQuestionList($request)
|
||||
{
|
||||
if ($request->ajax()) {
|
||||
$data = TestQuestion::with('getTest');
|
||||
$data->orderBy('id','desc');
|
||||
return DataTables::of($data)
|
||||
->addColumn('test', function ($row) {
|
||||
return $row->getTest->name;
|
||||
})
|
||||
->addColumn('action', function ($row) {
|
||||
$actionBtn = '<a href="' . route('admin.question.show', $row->id) . '" class="edit btn btn-primary btn-flat btn-sm"><i class="fa fa-eye"></i> </a> <a href="' . route('admin.question.edit', $row->id) . '" class="edit btn btn-success btn-flat btn-sm"><i class="fa fa-pencil-square-o"></i> </a> <a href="javascript:void(0)" class="delete btn btn-danger btn-sm btn-flat delete_question" data-id="' . $row->id . '" ><i class=" fa-sharp fa-solid fa fa-trash"></i></a>';
|
||||
return $actionBtn;
|
||||
})
|
||||
->rawColumns(['action'])
|
||||
->make(true);
|
||||
}
|
||||
}
|
||||
/* Add Edit Question */
|
||||
public static function addEditTestQuestion($request, $id = ''){
|
||||
if ($id) {
|
||||
$data = TestQuestion::find($id);
|
||||
} else {
|
||||
$data = new TestQuestion();
|
||||
}
|
||||
$data->test_id = $request->test;
|
||||
$data->question = $request->question;
|
||||
$data->option_1 = $request->option_1;
|
||||
$data->option_2 = $request->option_2;
|
||||
$data->option_3 = $request->option_3;
|
||||
$data->option_4 = $request->option_4;
|
||||
$data->true_answer = $request->true_answer;
|
||||
$data->solution = $request->solution;
|
||||
|
||||
$data->save();
|
||||
return $data;
|
||||
}
|
||||
|
||||
/* Delete State */
|
||||
public static function Statedelete($id){
|
||||
return TestQuestion::where('id', $id)->delete();
|
||||
}
|
||||
|
||||
/* Get Test List */
|
||||
public static function get_TestList(){
|
||||
return Test::all();
|
||||
}
|
||||
}
|
@@ -0,0 +1,73 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
// use Illuminate\Contracts\Auth\MustVerifyEmail;
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Illuminate\Foundation\Auth\User as Authenticatable;
|
||||
use Illuminate\Notifications\Notifiable;
|
||||
use Laravel\Sanctum\HasApiTokens;
|
||||
use Illuminate\Support\Facades\Hash;
|
||||
|
||||
class User extends Authenticatable {
|
||||
|
||||
use HasApiTokens,
|
||||
HasFactory,
|
||||
Notifiable;
|
||||
|
||||
/**
|
||||
* The attributes that are mass assignable.
|
||||
*
|
||||
* @var array<int, string>
|
||||
*/
|
||||
protected $fillable = [
|
||||
'name',
|
||||
'email',
|
||||
'password',
|
||||
];
|
||||
|
||||
/**
|
||||
* The attributes that should be hidden for serialization.
|
||||
*
|
||||
* @var array<int, string>
|
||||
*/
|
||||
protected $hidden = [
|
||||
'password',
|
||||
'remember_token',
|
||||
];
|
||||
|
||||
/**
|
||||
* The attributes that should be cast.
|
||||
*
|
||||
* @var array<string, string>
|
||||
*/
|
||||
protected $casts = [
|
||||
'email_verified_at' => 'datetime',
|
||||
];
|
||||
|
||||
public static function updateProfile($request, $id) {
|
||||
$user = User::find($id);
|
||||
$user->name = $request->name;
|
||||
$user->save();
|
||||
}
|
||||
|
||||
public static function updatePassword($request, $id) {
|
||||
$user = User::find($id);
|
||||
$user->password = Hash::make($request->newpassword);
|
||||
$user->save();
|
||||
}
|
||||
|
||||
/* Student Register */
|
||||
public static function register($request)
|
||||
{
|
||||
$data = new User();
|
||||
|
||||
$data->name = $request->name;
|
||||
$data->email = $request->email;
|
||||
$data->password = Hash::make($request->password);
|
||||
$data->role = config('const.studentRole');
|
||||
$data->save();
|
||||
return $data;
|
||||
}
|
||||
|
||||
}
|
@@ -0,0 +1,28 @@
|
||||
<?php
|
||||
|
||||
namespace App\Providers;
|
||||
|
||||
use Illuminate\Support\ServiceProvider;
|
||||
|
||||
class AppServiceProvider extends ServiceProvider
|
||||
{
|
||||
/**
|
||||
* Register any application services.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function register()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Bootstrap any application services.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function boot()
|
||||
{
|
||||
//
|
||||
}
|
||||
}
|
@@ -0,0 +1,30 @@
|
||||
<?php
|
||||
|
||||
namespace App\Providers;
|
||||
|
||||
// use Illuminate\Support\Facades\Gate;
|
||||
use Illuminate\Foundation\Support\Providers\AuthServiceProvider as ServiceProvider;
|
||||
|
||||
class AuthServiceProvider extends ServiceProvider
|
||||
{
|
||||
/**
|
||||
* The model to policy mappings for the application.
|
||||
*
|
||||
* @var array<class-string, class-string>
|
||||
*/
|
||||
protected $policies = [
|
||||
// 'App\Models\Model' => 'App\Policies\ModelPolicy',
|
||||
];
|
||||
|
||||
/**
|
||||
* Register any authentication / authorization services.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function boot()
|
||||
{
|
||||
$this->registerPolicies();
|
||||
|
||||
//
|
||||
}
|
||||
}
|
@@ -0,0 +1,21 @@
|
||||
<?php
|
||||
|
||||
namespace App\Providers;
|
||||
|
||||
use Illuminate\Support\Facades\Broadcast;
|
||||
use Illuminate\Support\ServiceProvider;
|
||||
|
||||
class BroadcastServiceProvider extends ServiceProvider
|
||||
{
|
||||
/**
|
||||
* Bootstrap any application services.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function boot()
|
||||
{
|
||||
Broadcast::routes();
|
||||
|
||||
require base_path('routes/channels.php');
|
||||
}
|
||||
}
|
@@ -0,0 +1,42 @@
|
||||
<?php
|
||||
|
||||
namespace App\Providers;
|
||||
|
||||
use Illuminate\Auth\Events\Registered;
|
||||
use Illuminate\Auth\Listeners\SendEmailVerificationNotification;
|
||||
use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider;
|
||||
use Illuminate\Support\Facades\Event;
|
||||
|
||||
class EventServiceProvider extends ServiceProvider
|
||||
{
|
||||
/**
|
||||
* The event to listener mappings for the application.
|
||||
*
|
||||
* @var array<class-string, array<int, class-string>>
|
||||
*/
|
||||
protected $listen = [
|
||||
Registered::class => [
|
||||
SendEmailVerificationNotification::class,
|
||||
],
|
||||
];
|
||||
|
||||
/**
|
||||
* Register any events for your application.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function boot()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Determine if events and listeners should be automatically discovered.
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function shouldDiscoverEvents()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
@@ -0,0 +1,52 @@
|
||||
<?php
|
||||
|
||||
namespace App\Providers;
|
||||
|
||||
use Illuminate\Cache\RateLimiting\Limit;
|
||||
use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\RateLimiter;
|
||||
use Illuminate\Support\Facades\Route;
|
||||
|
||||
class RouteServiceProvider extends ServiceProvider
|
||||
{
|
||||
/**
|
||||
* The path to the "home" route for your application.
|
||||
*
|
||||
* Typically, users are redirected here after authentication.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
public const HOME = '/admin/dashboard';
|
||||
|
||||
/**
|
||||
* Define your route model bindings, pattern filters, and other route configuration.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function boot()
|
||||
{
|
||||
$this->configureRateLimiting();
|
||||
|
||||
$this->routes(function () {
|
||||
Route::middleware('api')
|
||||
->prefix('api')
|
||||
->group(base_path('routes/api.php'));
|
||||
|
||||
Route::middleware('web')
|
||||
->group(base_path('routes/web.php'));
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Configure the rate limiters for the application.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
protected function configureRateLimiting()
|
||||
{
|
||||
RateLimiter::for('api', function (Request $request) {
|
||||
return Limit::perMinute(60)->by($request->user()?->id ?: $request->ip());
|
||||
});
|
||||
}
|
||||
}
|
@@ -0,0 +1,48 @@
|
||||
<?php
|
||||
|
||||
namespace App\Services;
|
||||
|
||||
use App\Models\Exam;
|
||||
use App\Models\Plan;
|
||||
use App\Models\Subject;
|
||||
use App\Models\Test;
|
||||
use App\Models\Country;
|
||||
use App\Models\State;
|
||||
|
||||
class CommonService {
|
||||
/* Get Total Count of Exam */
|
||||
|
||||
public static function totalExam() {
|
||||
return Exam::all()->count();
|
||||
}
|
||||
|
||||
/* Get Total Count of Plan */
|
||||
|
||||
public static function totalPlan() {
|
||||
return Plan::all()->count();
|
||||
}
|
||||
|
||||
/* Get Total Count of Plan */
|
||||
|
||||
public static function totalSubject() {
|
||||
return Subject::all()->count();
|
||||
}
|
||||
|
||||
/* Get Total Count of Plan */
|
||||
|
||||
public static function totalTest() {
|
||||
return Test::all()->count();
|
||||
}
|
||||
|
||||
/* Get Total Country */
|
||||
|
||||
public static function totalCountry() {
|
||||
return Country::all()->count();
|
||||
}
|
||||
/* Get Total State */
|
||||
|
||||
public static function totalState() {
|
||||
return State::all()->count();
|
||||
}
|
||||
|
||||
}
|
Reference in New Issue
Block a user