first commit

This commit is contained in:
f4ilji
2024-09-19 16:06:49 +05:00
commit b686638a39
1664 changed files with 428174 additions and 0 deletions
+32
View File
@@ -0,0 +1,32 @@
<?php
use App\Http\Controllers\api\NavigateController;
use App\Http\Controllers\ClientWidgetFormController;
use App\Http\Controllers\ClientWidgetPageController;
use App\Http\Controllers\ClientWidgetPostController;
use App\Http\Controllers\IconController;
use App\Http\Controllers\SearchController;
use App\Models\AdmissionCampaign;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;
Route::get('/getNavigation', [NavigateController::class, 'index'])->name('client.main.navigate');
Route::get('/getAcademicYear', function () {
$activeCampaign = AdmissionCampaign::query()->where('status', 1)->first();
return $activeCampaign->academic_year;
})->name('academic.year');
Route::get('/search', [SearchController::class, 'index'])->name('client.search.index');
Route::get('/widget/get-posts', [ClientWidgetPostController::class, 'index'])->name('client.widget.post.index');
Route::get('/widget/get-posts/{id}', [ClientWidgetPostController::class, 'single'])->name('client.widget.post.single');
Route::get('/widget/get-page/{id}', [ClientWidgetPageController::class, 'single'])->name('client.widget.page.single');
Route::get('/widget/get-form/{id}', [ClientWidgetFormController::class, 'single'])->middleware('rate.limited.check')->name('client.widget.form.single');
Route::post('/widget/get-form/{id}/submit', [ClientWidgetFormController::class, 'submit'])->middleware(['rate.limited.counter', 'rate.limited.check'])->name('client.widget.form.submit');
Route::get('/filament/get-icons/', [IconController::class, 'index'])->name('get.icons');
+59
View File
@@ -0,0 +1,59 @@
<?php
use App\Http\Controllers\Auth\AuthenticatedSessionController;
use App\Http\Controllers\Auth\ConfirmablePasswordController;
use App\Http\Controllers\Auth\EmailVerificationNotificationController;
use App\Http\Controllers\Auth\EmailVerificationPromptController;
use App\Http\Controllers\Auth\NewPasswordController;
use App\Http\Controllers\Auth\PasswordController;
use App\Http\Controllers\Auth\PasswordResetLinkController;
use App\Http\Controllers\Auth\RegisteredUserController;
use App\Http\Controllers\Auth\VerifyEmailController;
use Illuminate\Support\Facades\Route;
Route::middleware('guest')->group(function () {
Route::get('register', [RegisteredUserController::class, 'create'])
->name('register');
Route::post('register', [RegisteredUserController::class, 'store']);
Route::get('login', [AuthenticatedSessionController::class, 'create'])
->name('login');
Route::post('login', [AuthenticatedSessionController::class, 'store']);
Route::get('forgot-password', [PasswordResetLinkController::class, 'create'])
->name('password.request');
Route::post('forgot-password', [PasswordResetLinkController::class, 'store'])
->name('password.email');
Route::get('reset-password/{token}', [NewPasswordController::class, 'create'])
->name('password.reset');
Route::post('reset-password', [NewPasswordController::class, 'store'])
->name('password.store');
});
Route::middleware('auth')->group(function () {
Route::get('verify-email', EmailVerificationPromptController::class)
->name('verification.notice');
Route::get('verify-email/{id}/{hash}', VerifyEmailController::class)
->middleware(['signed', 'throttle:6,1'])
->name('verification.verify');
Route::post('email/verification-notification', [EmailVerificationNotificationController::class, 'store'])
->middleware('throttle:6,1')
->name('verification.send');
Route::get('confirm-password', [ConfirmablePasswordController::class, 'show'])
->name('password.confirm');
Route::post('confirm-password', [ConfirmablePasswordController::class, 'store']);
Route::put('password', [PasswordController::class, 'update'])->name('password.update');
Route::post('logout', [AuthenticatedSessionController::class, 'destroy'])
->name('logout');
});
+18
View File
@@ -0,0 +1,18 @@
<?php
use Illuminate\Support\Facades\Broadcast;
/*
|--------------------------------------------------------------------------
| Broadcast Channels
|--------------------------------------------------------------------------
|
| Here you may register all of the event broadcasting channels that your
| application supports. The given channel authorization callbacks are
| used to check if an authenticated user can listen to the channel.
|
*/
Broadcast::channel('App.Models.User.{id}', function ($user, $id) {
return (int) $user->id === (int) $id;
});
+19
View File
@@ -0,0 +1,19 @@
<?php
use Illuminate\Foundation\Inspiring;
use Illuminate\Support\Facades\Artisan;
/*
|--------------------------------------------------------------------------
| Console Routes
|--------------------------------------------------------------------------
|
| This file is where you may define all of your Closure based console
| commands. Each Closure is bound to a command instance allowing a
| simple approach to interacting with each command's IO methods.
|
*/
Artisan::command('inspire', function () {
$this->comment(Inspiring::quote());
})->purpose('Display an inspiring quote');
+201
View File
@@ -0,0 +1,201 @@
<?php
use App\Http\Controllers\ApplicantQuestionController;
use App\Http\Controllers\Auth\AuthenticatedSessionController;
use App\Http\Controllers\Auth\ConfirmablePasswordController;
use App\Http\Controllers\Auth\EmailVerificationNotificationController;
use App\Http\Controllers\Auth\EmailVerificationPromptController;
use App\Http\Controllers\Auth\NewPasswordController;
use App\Http\Controllers\Auth\PasswordController;
use App\Http\Controllers\Auth\PasswordResetLinkController;
use App\Http\Controllers\Auth\RegisteredUserController;
use App\Http\Controllers\Auth\VerifyEmailController;
use App\Http\Controllers\CategoryController;
use App\Http\Controllers\DepartmentController;
use App\Http\Controllers\DivisionController;
use App\Http\Controllers\EventController;
use App\Http\Controllers\FacultyController;
use App\Http\Controllers\FileUploadController;
use App\Http\Controllers\ImageController;
use App\Http\Controllers\LinkToolController;
use App\Http\Controllers\MainSectionController;
use App\Http\Controllers\PageController;
use App\Http\Controllers\PostController;
use App\Http\Controllers\ProfileController;
use App\Http\Controllers\ScheduleController;
use App\Http\Controllers\StudentController;
use App\Http\Controllers\SubScheduleController;
use App\Http\Controllers\SubSectionController;
use App\Http\Controllers\TagController;
use App\Http\Controllers\UserController;
use App\Http\Controllers\UserDetailController;
use Illuminate\Support\Facades\Route;
use Inertia\Inertia;
Route::middleware('auth')->group(function () {
Route::get('/profile', [ProfileController::class, 'edit'])->name('profile.edit');
Route::patch('/profile', [ProfileController::class, 'update'])->name('profile.update');
Route::delete('/profile', [ProfileController::class, 'destroy'])->name('profile.destroy');
});
Route::post('/upload-image', [ImageController::class, 'uploadImage'])->middleware('web');
Route::post('/upload-file', [FileUploadController::class, 'uploadFile'])->middleware('web');
Route::get('/getInfoForLink', [LinkToolController::class, 'main'])->name('backend.tool.link');
Route::prefix('admin')->group(function () {
Route::get('/', function () {
return Inertia::render('AdminPanel/Index');
})->name('admin.index');
Route::prefix('posts')->group(function () {
Route::get('/', [PostController::class, 'index'])->name('admin.post.index');
Route::get('/create', [PostController::class, 'create'])->name('admin.post.create');
Route::post('/', [PostController::class, 'store'])->name('admin.post.store');
Route::get('/{post}/edit', [PostController::class, 'edit'])->name('admin.post.edit');
Route::patch('/{post}', [PostController::class, 'update'])->name('admin.post.update');
Route::get('/{slug}', [PostController::class, 'show'])->name('admin.post.show');
Route::delete('/{post}', [PostController::class, 'destroy'])->name('admin.post.destroy');
});
Route::prefix('categories')->group(function () {
Route::get('/', [CategoryController::class, 'index'])->name('admin.category.index');
Route::get('/create', [CategoryController::class, 'create'])->name('admin.category.create');
Route::get('/{category}/edit', [CategoryController::class, 'edit'])->name('admin.category.edit');
Route::patch('/{category}', [CategoryController::class, 'update'])->name('admin.category.update');
Route::post('/', [CategoryController::class, 'store'])->name('admin.category.store');
Route::delete('/{category}', [CategoryController::class, 'destroy'])->name('admin.category.destroy');
});
Route::prefix('tags')->group(function () {
Route::get('/', [TagController::class, 'index'])->name('admin.tag.index');
Route::get('/create', [TagController::class, 'create'])->name('admin.tag.create');
Route::post('/', [TagController::class, 'store'])->name('admin.tag.store');
Route::get('/{category}', [TagController::class, 'show'])->name('admin.tag.show');
});
Route::prefix('applicants-questions')->group(function () {
Route::get('/', [ApplicantQuestionController::class, 'index'])->name('admin.applicantQuestion.index');
Route::get('/create', [ApplicantQuestionController::class, 'create'])->name('admin.applicantQuestion.create');
Route::get('/{applicantQuestion}/edit', [ApplicantQuestionController::class, 'edit'])->name('admin.applicantQuestion.edit');
Route::patch('/{applicantQuestion}', [ApplicantQuestionController::class, 'update'])->name('admin.applicantQuestion.update');
Route::post('/', [ApplicantQuestionController::class, 'store'])->name('admin.applicantQuestion.store');
Route::delete('/{applicantQuestion}', [ApplicantQuestionController::class, 'destroy'])->name('admin.applicantQuestion.destroy');
});
Route::prefix('users')->group(function () {
Route::get('/', [UserController::class, 'index'])->name('admin.user.index');
Route::get('/create', [UserController::class, 'create'])->name('admin.user.create');
Route::get('/create/', [UserController::class, 'create'])->name('admin.user.create');
Route::post('/', [UserController::class, 'store'])->name('admin.user.store');
Route::get('/{user}', [UserController::class, 'show'])->name('admin.user.show');
Route::get('/{user}/edit', [UserController::class, 'edit'])->name('admin.user.edit');
Route::patch('/{user}', [UserController::class, 'update'])->name('admin.user.update');
Route::delete('/{user}', [UserController::class, 'destroy'])->name('admin.user.destroy');
});
Route::prefix('user-details')->group(function () {
Route::get('/{user}/create', [UserDetailController::class, 'create'])->name('admin.userDetail.create');
Route::post('/', [UserDetailController::class, 'store'])->name('admin.userDetail.store');
Route::get('/{userDetail}/edit', [UserDetailController::class, 'edit'])->name('admin.userDetail.edit');
Route::patch('/{userDetail}', [UserDetailController::class, 'update'])->name('admin.userDetail.update');
Route::delete('/{userDetail}', [UserDetailController::class, 'destroy'])->name('admin.userDetail.destroy');
});
Route::prefix('pages')->group(function () {
Route::get('/', [PageController::class, 'index'])->name('admin.page.index');
Route::get('/registered', [PageController::class, 'getRegisteredPages'])->name('admin.registered.page.index');
Route::get('/create', [PageController::class, 'create'])->name('admin.page.create');
Route::post('/', [PageController::class, 'store'])->name('admin.page.store');
Route::get('/{slug}/edit', [PageController::class, 'edit'])->name('admin.page.edit');
Route::patch('/{page}', [PageController::class, 'update'])->name('admin.page.update');
Route::get('registered/{id}/edit-registered-page', [PageController::class, 'editRegisteredPage'])->name('admin.registered.page.edit');
Route::patch('registered/{id}', [PageController::class, 'updateRegisteredPage'])->name('admin.registered.page.update');
Route::delete('/{page}', [PageController::class, 'destroy'])->name('admin.page.destroy');
});
Route::prefix('main-sections')->group(function () {
Route::get('/', [MainSectionController::class, 'index'])->name('admin.mainSection.index');
Route::get('/create', [MainSectionController::class, 'create'])->name('admin.mainSection.create');
Route::post('/', [MainSectionController::class, 'store'])->name('admin.mainSection.store');
Route::get('/{mainSection}/edit', [MainSectionController::class, 'edit'])->name('admin.mainSection.edit');
Route::patch('/{mainSection}', [MainSectionController::class, 'update'])->name('admin.mainSection.update');
Route::delete('/{mainSection}', [MainSectionController::class, 'destroy'])->name('admin.mainSection.destroy');
});
Route::prefix('sub-sections')->group(function () {
Route::get('/', [SubSectionController::class, 'index'])->name('admin.subSection.index');
Route::get('/create', [SubSectionController::class, 'create'])->name('admin.subSection.create');
Route::post('/', [SubSectionController::class, 'store'])->name('admin.subSection.store');
Route::get('/{subSection}/edit', [SubSectionController::class, 'edit'])->name('admin.subSection.edit');
Route::patch('/{subSection}', [SubSectionController::class, 'update'])->name('admin.subSection.update');
Route::delete('/{subSection}', [SubSectionController::class, 'destroy'])->name('admin.subSection.destroy');
});
Route::prefix('schedules')->group(function () {
Route::get('/', [ScheduleController::class, 'index'])->name('admin.schedule.index');
Route::get('/create', [ScheduleController::class, 'create'])->name('admin.schedule.create');
Route::post('/', [ScheduleController::class, 'store'])->name('admin.schedule.store');
Route::get('/{schedule}', [ScheduleController::class, 'show'])->name('admin.schedule.show');
Route::get('/{schedule}/edit', [ScheduleController::class, 'edit'])->name('admin.schedule.edit');
Route::patch('/{schedule}', [ScheduleController::class, 'update'])->name('admin.schedule.update');
Route::delete('/{schedule}', [ScheduleController::class, 'destroy'])->name('admin.schedule.destroy');
});
Route::prefix('sub-schedules')->group(function () {
Route::delete('/{subSchedule}', [SubScheduleController::class, 'destroy'])->name('admin.subSchedule.destroy');
});
Route::prefix('faculties')->group(function () {
Route::get('/', [FacultyController::class, 'index'])->name('admin.faculty.index');
Route::get('/create', [FacultyController::class, 'create'])->name('admin.faculty.create');
Route::post('/', [FacultyController::class, 'store'])->name('admin.faculty.store');
Route::get('/{faculty}', [FacultyController::class, 'show'])->name('admin.faculty.show');
Route::get('/{faculty}/edit', [FacultyController::class, 'edit'])->name('admin.faculty.edit');
Route::patch('/{faculty}', [FacultyController::class, 'update'])->name('admin.faculty.update');
Route::delete('/{faculty}', [FacultyController::class, 'destroy'])->name('admin.faculty.destroy');
});
Route::prefix('departments')->group(function () {
Route::get('/', [DepartmentController::class, 'index'])->name('admin.department.index');
Route::get('/create', [DepartmentController::class, 'create'])->name('admin.department.create');
Route::post('/', [DepartmentController::class, 'store'])->name('admin.department.store');
Route::get('/{department}', [DepartmentController::class, 'show'])->name('admin.department.show');
Route::get('/{department}/edit', [DepartmentController::class, 'edit'])->name('admin.department.edit');
Route::patch('/{department}', [DepartmentController::class, 'update'])->name('admin.department.update');
Route::delete('/{department}', [DepartmentController::class, 'destroy'])->name('admin.department.destroy');
});
Route::prefix('divisions')->group(function () {
Route::get('/', [DivisionController::class, 'index'])->name('admin.division.index');
Route::get('/create', [DivisionController::class, 'create'])->name('admin.division.create');
Route::post('/', [DivisionController::class, 'store'])->name('admin.division.store');
Route::get('/{division}', [DivisionController::class, 'show'])->name('admin.division.show');
Route::get('/{division}/edit', [DivisionController::class, 'edit'])->name('admin.division.edit');
Route::patch('/{division}', [DivisionController::class, 'update'])->name('admin.division.update');
Route::delete('/{division}', [DivisionController::class, 'destroy'])->name('admin.division.destroy');
});
Route::prefix('students')->group(function () {
Route::get('/', [StudentController::class, 'index'])->name('admin.student.index');
Route::get('/create', [StudentController::class, 'create'])->name('admin.student.create');
Route::get('/{student}', [StudentController::class, 'show'])->name('admin.student.show');
Route::post('/', [StudentController::class, 'store'])->name('admin.student.store');
Route::get('/{student}/edit', [StudentController::class, 'edit'])->name('admin.student.edit');
Route::patch('/{student}', [StudentController::class, 'update'])->name('admin.student.update');
Route::delete('/{student}', [StudentController::class, 'destroy'])->name('admin.student.destroy');
});
Route::prefix('events')->group(function () {
Route::get('/', [EventController::class, 'index'])->name('admin.event.index');
Route::get('/create', [EventController::class, 'create'])->name('admin.event.create');
Route::get('/{event}', [EventController::class, 'show'])->name('admin.event.show');
Route::post('/', [EventController::class, 'store'])->name('admin.event.store');
Route::get('/{event}/edit', [EventController::class, 'edit'])->name('admin.event.edit');
Route::patch('/{event}', [EventController::class, 'update'])->name('admin.event.update');
Route::delete('/{event}', [EventController::class, 'destroy'])->name('admin.event.destroy');
});
});
+103
View File
@@ -0,0 +1,103 @@
<?php
use App\Http\Controllers\ClientAcademicJournalController;
use App\Http\Controllers\ClientAdditionalEducationController;
use App\Http\Controllers\ClientDepartmentController;
use App\Http\Controllers\ClientDivisionController;
use App\Http\Controllers\ClientEventController;
use App\Http\Controllers\ClientExternalVacancyController;
use App\Http\Controllers\ClientFacultyController;
use App\Http\Controllers\ClientLibraryNewsController;
use App\Http\Controllers\ClientPostController;
use App\Http\Controllers\ClientProgramController;
use App\Http\Controllers\ClientScheduleController;
use App\Http\Controllers\ClientVacantPositionController;
use App\Http\Controllers\ClientVirtualExhibitionController;
use App\Http\Controllers\ClientWidgetFormController;
use App\Http\Controllers\EducationalProgramController;
use App\Http\Controllers\LinkToolController;
use App\Http\Controllers\MainController;
use App\Http\Controllers\PageController;
use App\Http\Controllers\PersonController;
use App\Http\Controllers\ScheduleController;
use App\Http\Controllers\StudentController;
use App\Http\Controllers\UpdateEduDataApiController;
use App\Http\Controllers\UpdateViconDataApi;
use Illuminate\Support\Facades\Route;
use Inertia\Inertia;
Route::middleware('access-check')->group(function () {
Route::get('/dashboard/schedule/create', function () {
return Inertia::render('Dashboard/CreateSchedule');
});
// Главная страница
Route::get('/', [MainController::class, 'index'])->name('index');
// Расписание занятий
Route::get('/schedule', [ClientScheduleController::class, 'index'])->name('client.schedule');
Route::get('/schedule/{id}', [ClientScheduleController::class, 'show'])->name('client.schedule.show');
Route::get('/persons/{id}', [PersonController::class, 'show'])->name('client.person.show');
Route::get('/students/{student}', [StudentController::class, 'show'])->name('client.student.show')->middleware('auth');
// Новости
Route::get('/news', [ClientPostController::class, 'index'])->name('client.post.index');
Route::get('/news/{slug}', [ClientPostController::class, 'show'])->name('client.post.show');
// Образовательные программы
// Route::get('/programs/{slug}', [ClientProgramController::class, 'index'])->name('client.program.index');
Route::get('/programs/', [ClientProgramController::class, 'index'])->name('client.program.index');
Route::get('/program/{educationalProgram}', [ClientProgramController::class, 'show'])->name('client.program.show');
// Route::get('/programs/bakalavriat/', [ClientProgramController::class, 'bakalavriat'])->name('client.program.bakalavriat');
// Route::get('/programs/spo/', [ClientProgramController::class, 'spo'])->name('client.program.spo');
// Route::get('/programs/magistratura/', [ClientProgramController::class, 'magistratura'])->name('client.program.magistratura');
// Образовательные программы
Route::get('/additional-education/', [ClientAdditionalEducationController::class, 'index'])->name('client.additionalEducation.index');
Route::get('/additional-education/{id}', [ClientAdditionalEducationController::class, 'show'])->name('client.additionalEducation.show');
// События
Route::get('/events', [ClientEventController::class, 'index'])->name('client.event.index');
Route::get('/events/{id}', [ClientEventController::class, 'show'])->name('client.event.show');
// Заметки библиотеки
Route::get('/library/news', [ClientLibraryNewsController::class, 'index'])->name('client.library.news.index');
Route::get('/library/news/{id}', [ClientLibraryNewsController::class, 'show'])->name('client.library.news.show');
// Виртуальные выставки библиотеки
Route::get('/library/exhibition', [ClientVirtualExhibitionController::class, 'index'])->name('client.library.exhibition.index');
Route::get('/library/exhibition/{id}', [ClientVirtualExhibitionController::class, 'show'])->name('client.library.exhibition.show');
// Вакансии вуза
Route::get('/vacant/', [ClientVacantPositionController::class, 'index'])->name('client.vacant.index');
// Вакансии других учереждений
Route::get('/current-vacancies/', [ClientExternalVacancyController::class, 'index'])->name('client.external.vacant.index');
Route::get('/current-vacancies/{id}', [ClientExternalVacancyController::class, 'show'])->name('client.external.vacant.show');
Route::get('/academic-journals/', [ClientAcademicJournalController::class, 'index'])->name('client.academicJournals.index');
Route::get('/academic-journals/{slug}', [ClientAcademicJournalController::class, 'show'])->name('client.academicJournals.show');
// Факультеты и кафедры
Route::get('/faculties', [ClientFacultyController::class, 'index'])->name('client.faculty.index');
Route::get('/faculties/{slug}', [ClientFacultyController::class, 'show'])->name('client.faculty.show');
Route::get('/faculties/{facultySlug}/{departmentSlug}', [ClientDepartmentController::class, 'show'])->name('client.department.show');
// Подразделения института
Route::get('/divisions', [ClientDivisionController::class, 'index'])->name('client.division.index');
Route::get('/divisions/{slug}', [ClientDivisionController::class, 'show'])->name('client.division.show');
Route::get('/get-data', [UpdateEduDataApiController::class, 'index']);
Route::get('{path}', [PageController::class, 'render'])->where('path', '[0-9,a-z,/,-]+')->name('page.view');
});