Compare commits

..

No commits in common. "727d273d97016bef8e69f0b25be456f0706d171a" and "7b6db05648a8b24765b28bef285e367843993a85" have entirely different histories.

142 changed files with 327 additions and 3387 deletions

View File

@ -1,24 +0,0 @@
# syntax = edrevo/dockerfile-plus
INCLUDE+ Dockerfile.dev
ENV PORT=80
COPY composer.json composer.lock ./
#COPY app/Helpers/helpers.php ./app/Helpers/helpers.php
RUN composer install --prefer-dist --no-scripts --no-dev --no-autoloader
COPY package.json package-lock.json ./
RUN npm install
COPY . .
RUN composer dump-autoload --no-dev --optimize
RUN npm run prod
CMD ["bash", "-c", "make db-prepare start-app"]
EXPOSE ${PORT}

View File

@ -1,48 +0,0 @@
FROM ubuntu:22.04
ENV DEBIAN_FRONTEND=noninteractive
ENV TZ=Europe/Moscow
ENV PATH=node_modules/.bin:$PATH
WORKDIR /app
RUN apt update && apt upgrade -y
RUN apt install ca-certificates apt-transport-https software-properties-common lsb-release -y
RUN add-apt-repository ppa:ondrej/php -y
RUN apt-get update && apt-get install -y \
make \
curl \
git \
libpq-dev \
libzip-dev \
sqlite3 \
unzip \
zip \
php8.3 \
php8.3-bcmath \
php8.3-exif \
php8.3-pdo \
php8.3-pgsql \
php8.3-pgsql \
php8.3-zip \
php8.3-xdebug \
php8.3-dom \
php8.3-xml \
php8.3-mbstring \
php8.3-sqlite3 \
php8.3-curl
RUN apt-get update && apt-get install -y \
software-properties-common \
&& rm -rf /var/lib/apt/lists/*
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
COPY ./xdebug.ini /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
RUN curl -sL https://deb.nodesource.com/setup_18.x | bash -
RUN apt-get update && apt-get install -y nodejs
ENV PATH=node_modules/.bin:$PATH

View File

@ -57,9 +57,3 @@ ide-helper:
php artisan ide-helper:gen
php artisan ide-helper:meta
php artisan ide-helper:mod -n
db-prepare:
php artisan migrate:refresh --force --seed
start-app:
php artisan serve --host 0.0.0.0 --port ${PORT}

View File

@ -1,105 +0,0 @@
<?php
namespace App\Http\Controllers\admin\Catalog\Direction;
use App\Http\Controllers\Controller;
use App\Http\Requests\admin\Catalog\Direction\StoreEntranceExaminationRequest;
use App\Http\Requests\admin\Catalog\Direction\UpdateEntranceExaminationRequest;
use App\Models\Direction;
use App\Models\EntranceExamination;
use App\Models\ExaminationType;
use App\Models\Subject;
use App\Models\SubjectType;
use Illuminate\Contracts\View\View;
use Illuminate\Http\RedirectResponse;
class EntranceExaminationController extends Controller
{
public function index(): View
{
$entranceExaminations = EntranceExamination::all();
return view('admin.catalog.direction.entrance_examination.index', compact('entranceExaminations'));
}
public function create(): View
{
$directions = Direction::pluck('name', 'id');
$examination_types = ExaminationType::pluck('name', 'id');
$subjects = Subject::pluck('name', 'id');
$subjectTypes = SubjectType::pluck('name', 'id');
return view(
'admin.catalog.direction.entrance_examination.create',
compact(
'directions',
'examination_types',
'subjects',
'subjectTypes',
)
);
}
public function store(StoreEntranceExaminationRequest $request): RedirectResponse
{
$validated = $request->validated();
$entranceExamination = new EntranceExamination();
$entranceExamination->examination_type_id = $validated['examination_type_id'];
$entranceExamination->direction_id = $validated['direction_id'];
$entranceExamination->subject_id = $validated['subject_id'];
$entranceExamination->scores = $validated['scores'];
$entranceExamination->position = $validated['position'];
$entranceExamination->subject_type_id = $validated['subject_type_id'];
$entranceExamination->save();
return redirect()->route('entrance_examinations.index');
}
public function show(EntranceExamination $entranceExamination): View
{
return view(
'admin.catalog.direction.entrance_examination.show',
compact('entranceExamination')
);
}
public function edit(EntranceExamination $entranceExamination): View
{
$directions = Direction::pluck('name', 'id');
$examination_types = ExaminationType::pluck('name', 'id');
$subjects = Subject::pluck('name', 'id');
$subjectTypes = SubjectType::pluck('name', 'id');
return view(
'admin.catalog.direction.entrance_examination.edit',
compact(
'entranceExamination',
'directions',
'examination_types',
'subjects',
'subjectTypes',
)
);
}
public function update(
UpdateEntranceExaminationRequest $request,
EntranceExamination $entranceExamination
): RedirectResponse {
$validated = $request->validated();
$entranceExamination->examination_type_id = $validated['examination_type_id'];
$entranceExamination->direction_id = $validated['direction_id'];
$entranceExamination->subject_id = $validated['subject_id'];
$entranceExamination->scores = $validated['scores'];
$entranceExamination->position = $validated['position'];
$entranceExamination->subject_type_id = $validated['subject_type_id'];
$entranceExamination->save();
return redirect()->route('entrance_examinations.index');
}
public function destroy(EntranceExamination $entranceExamination): RedirectResponse
{
$entranceExamination->delete();
return redirect()->route('entrance_examinations.index');
}
}

View File

@ -1,72 +0,0 @@
<?php
namespace App\Http\Controllers\admin\Catalog\Direction;
use App\Http\Controllers\Controller;
use App\Http\Requests\admin\Catalog\Direction\StoreExaminationTypeRequest;
use App\Http\Requests\admin\Catalog\Direction\UpdateExaminationTypeRequest;
use App\Models\ExaminationType;
use Illuminate\Contracts\View\Factory;
use Illuminate\Contracts\View\View;
use Illuminate\Foundation\Application;
use Illuminate\Http\RedirectResponse;
class ExaminationTypeController extends Controller
{
public function index(): View
{
$types = ExaminationType::all();
return view('admin.catalog.direction.examination_type.index', compact('types'));
}
public function create(): View
{
return view('admin.catalog.direction.examination_type.create');
}
public function store(StoreExaminationTypeRequest $request): RedirectResponse
{
$validated = $request->validated();
$type = new ExaminationType();
$type->name = $validated['name'];
$type->description = $validated['description'];
$type->slug = $validated['slug'];
$type->position = $validated['position'];
$type->save();
return redirect()->route('examination_types.index');
}
public function show(ExaminationType $examinationType): View
{
return view('admin.catalog.direction.examination_type.show', compact('examinationType'));
}
public function edit(ExaminationType $examinationType): View
{
return view('admin.catalog.direction.examination_type.edit', compact('examinationType'));
}
public function update(UpdateExaminationTypeRequest $request, ExaminationType $examinationType): RedirectResponse
{
$validated = $request->validated();
$examinationType->name = $validated['name'];
$examinationType->description = $validated['description'];
$examinationType->slug = $validated['slug'];
$examinationType->position = $validated['position'];
$examinationType->save();
return redirect()->route('examination_types.index');
}
public function destroy(ExaminationType $examinationType): RedirectResponse
{
if ($examinationType->entranceExaminations()->exists()) {
return back();
}
$examinationType->delete();
return redirect()->route('examination_types.index');
}
}

View File

@ -1,72 +0,0 @@
<?php
namespace App\Http\Controllers\admin\Catalog\Direction;
use App\Http\Controllers\Controller;
use App\Http\Requests\admin\Catalog\Direction\StoreExaminationTypeRequest;
use App\Http\Requests\admin\Catalog\Direction\StoreSubjectRequest;
use App\Http\Requests\admin\Catalog\Direction\UpdateExaminationTypeRequest;
use App\Http\Requests\admin\Catalog\Direction\UpdateSubjectRequest;
use App\Models\Subject;
use Illuminate\Contracts\View\View;
use Illuminate\Http\RedirectResponse;
class SubjectController extends Controller
{
public function index(): View
{
$subjects = Subject::all();
return view('admin.catalog.direction.subject.index', compact('subjects'));
}
public function create(): View
{
return view('admin.catalog.direction.subject.create');
}
public function store(StoreSubjectRequest $request): RedirectResponse
{
$validated = $request->validated();
$subject = new Subject();
$subject->name = $validated['name'];
$subject->description = $validated['description'];
$subject->slug = $validated['slug'];
$subject->position = $validated['position'];
$subject->save();
return redirect()->route('subjects.index');
}
public function show(Subject $subject): View
{
return view('admin.catalog.direction.subject.show', compact('subject'));
}
public function edit(Subject $subject): View
{
return view('admin.catalog.direction.subject.edit', compact('subject'));
}
public function update(UpdateSubjectRequest $request, Subject $subject): RedirectResponse
{
$validated = $request->validated();
$subject->name = $validated['name'];
$subject->description = $validated['description'];
$subject->slug = $validated['slug'];
$subject->position = $validated['position'];
$subject->save();
return redirect()->route('subjects.index');
}
public function destroy(Subject $subject): RedirectResponse
{
if ($subject->entranceExaminations()->exists()) {
return back();
}
$subject->delete();
return redirect()->route('subjects.index');
}
}

View File

@ -1,70 +0,0 @@
<?php
namespace App\Http\Controllers\admin\Catalog\Direction;
use App\Http\Controllers\Controller;
use App\Http\Requests\admin\Catalog\Direction\StoreSubjectTypeRequest;
use App\Http\Requests\admin\Catalog\Direction\UpdateSubjectTypeRequest;
use App\Models\SubjectType;
use Illuminate\Contracts\View\View;
use Illuminate\Http\RedirectResponse;
class SubjectTypeController extends Controller
{
public function index(): View
{
$subjectTypes = SubjectType::all();
return view('admin.catalog.direction.subject_type.index', compact('subjectTypes'));
}
public function create(): View
{
return view('admin.catalog.direction.subject_type.create');
}
public function store(StoreSubjectTypeRequest $request): RedirectResponse
{
$validated = $request->validated();
$type = new SubjectType();
$type->name = $validated['name'];
$type->description = $validated['description'];
$type->slug = $validated['slug'];
$type->position = $validated['position'];
$type->save();
return redirect()->route('subject_types.index');
}
public function show(SubjectType $subjectType): View
{
return view('admin.catalog.direction.subject_type.show', compact('subjectType'));
}
public function edit(SubjectType $subjectType): View
{
return view('admin.catalog.direction.subject_type.edit', compact('subjectType'));
}
public function update(UpdateSubjectTypeRequest $request, SubjectType $subjectType): RedirectResponse
{
$validated = $request->validated();
$subjectType->name = $validated['name'];
$subjectType->description = $validated['description'];
$subjectType->slug = $validated['slug'];
$subjectType->position = $validated['position'];
$subjectType->save();
return redirect()->route('subject_types.index');
}
public function destroy(SubjectType $subjectType): RedirectResponse
{
if ($subjectType->entranceExaminations()->exists()) {
return back();
}
$subjectType->delete();
return redirect()->route('subject_types.index');
}
}

View File

@ -93,9 +93,6 @@ class DirectionController extends Controller
public function destroy(Direction $direction): RedirectResponse
{
if ($direction->entranceExaminations()->exists()) {
return back();
}
$direction->delete();
return redirect()->route('directions.index');
}

View File

@ -1,10 +1,10 @@
<?php
namespace App\Http\Controllers\admin\Catalog\Direction;
namespace App\Http\Controllers\admin\Catalog;
use App\Http\Controllers\Controller;
use App\Http\Requests\admin\Catalog\Direction\StoreEducationFormRequest;
use App\Http\Requests\admin\Catalog\Direction\UpdateEducationFormRequest;
use App\Http\Requests\admin\Catalog\StoreEducationFormRequest;
use App\Http\Requests\admin\Catalog\UpdateEducationFormRequest;
use App\Models\EducationForm;
use Illuminate\Contracts\View\Factory;
use Illuminate\Contracts\View\View;
@ -15,12 +15,12 @@ class EducationFormController extends Controller
public function index(): View|Application|Factory|\Illuminate\Contracts\Foundation\Application
{
$forms = EducationForm::all();
return view('admin.catalog.direction.education_form.index', compact('forms'));
return view('admin.catalog.education_form.index', compact('forms'));
}
public function create(): View|Application|Factory|\Illuminate\Contracts\Foundation\Application
{
return view('admin.catalog.direction.education_form.create');
return view('admin.catalog.education_form.create');
}
public function store(StoreEducationFormRequest $request)
@ -38,12 +38,12 @@ class EducationFormController extends Controller
public function show(EducationForm $educationForm): View|Factory|\Illuminate\Contracts\Foundation\Application
{
$directions = $educationForm->directions;
return view('admin.catalog.direction.education_form.show', compact('educationForm', 'directions'));
return view('admin.catalog.education_form.show', compact('educationForm', 'directions'));
}
public function edit(EducationForm $educationForm)
{
return view('admin.catalog.direction.education_form.edit', compact('educationForm'));
return view('admin.catalog.education_form.edit', compact('educationForm'));
}
public function update(UpdateEducationFormRequest $request, EducationForm $educationForm)

View File

@ -1,10 +1,10 @@
<?php
namespace App\Http\Controllers\admin\Catalog\Direction;
namespace App\Http\Controllers\admin\Catalog;
use App\Http\Controllers\Controller;
use App\Http\Requests\admin\Catalog\Direction\StoreEducationLevelRequest;
use App\Http\Requests\admin\Catalog\Direction\UpdateEducationLevelRequest;
use App\Http\Requests\admin\Catalog\StoreEducationLevelRequest;
use App\Http\Requests\admin\Catalog\UpdateEducationLevelRequest;
use App\Models\EducationLevel;
use Illuminate\Contracts\View\Factory;
use Illuminate\Contracts\View\View;
@ -16,12 +16,12 @@ class EducationLevelController extends Controller
public function index(): View|Application|Factory|\Illuminate\Contracts\Foundation\Application
{
$levels = EducationLevel::all();
return view('admin.catalog.direction.education_level.index', compact('levels'));
return view('admin.catalog.education_level.index', compact('levels'));
}
public function create(): View|Application|Factory|\Illuminate\Contracts\Foundation\Application
{
return view('admin.catalog.direction.education_level.create');
return view('admin.catalog.education_level.create');
}
public function store(StoreEducationLevelRequest $request): RedirectResponse
@ -41,14 +41,14 @@ class EducationLevelController extends Controller
): View|Application|Factory|\Illuminate\Contracts\Foundation\Application {
$directions = $educationLevel->directions();
return view(
'admin.catalog.direction.education_level.show',
'admin.catalog.education_level.show',
compact('educationLevel', 'directions')
);
}
public function edit(EducationLevel $educationLevel)
{
return view('admin.catalog.direction.education_level.edit', compact('educationLevel'));
return view('admin.catalog.education_level.edit', compact('educationLevel'));
}
public function update(UpdateEducationLevelRequest $request, EducationLevel $educationLevel): RedirectResponse

View File

@ -1,25 +0,0 @@
<?php
namespace App\Http\Requests\admin\Catalog\Direction;
use Illuminate\Foundation\Http\FormRequest;
class StoreEntranceExaminationRequest extends FormRequest
{
public function authorize(): bool
{
return true;
}
public function rules(): array
{
return [
'direction_id' => 'required|numeric|int|max:1000',
'examination_type_id' => 'required|numeric|int|max:1000',
'subject_id' => 'required|numeric|int|max:1000',
'subject_type_id' => 'required|numeric|int|max:1000',
'scores' => 'required|numeric|int|max:1000',
'position' => 'required|numeric|int|max:1000',
];
}
}

View File

@ -1,23 +0,0 @@
<?php
namespace App\Http\Requests\admin\Catalog\Direction;
use Illuminate\Foundation\Http\FormRequest;
class StoreExaminationTypeRequest extends FormRequest
{
public function authorize(): bool
{
return true;
}
public function rules(): array
{
return [
'position' => 'required|int|numeric|max:255',
'name' => 'required|string|max:255|unique:examination_types,name',
'description' => 'string',
'slug' => 'required|string|max:255|unique:examination_types,slug',
];
}
}

View File

@ -1,23 +0,0 @@
<?php
namespace App\Http\Requests\admin\Catalog\Direction;
use Illuminate\Foundation\Http\FormRequest;
class StoreSubjectRequest extends FormRequest
{
public function authorize(): bool
{
return true;
}
public function rules(): array
{
return [
'position' => 'required|int|numeric|max:255',
'name' => 'required|string|max:255|unique:subjects,name',
'description' => 'string',
'slug' => 'required|string|max:255|unique:subjects,slug',
];
}
}

View File

@ -1,23 +0,0 @@
<?php
namespace App\Http\Requests\admin\Catalog\Direction;
use Illuminate\Foundation\Http\FormRequest;
class StoreSubjectTypeRequest extends FormRequest
{
public function authorize(): bool
{
return true;
}
public function rules(): array
{
return [
'position' => 'required|int|numeric|max:255',
'name' => 'required|string|max:255|unique:subject_types,name',
'description' => 'string',
'slug' => 'required|string|max:255|unique:subject_types,slug',
];
}
}

View File

@ -1,25 +0,0 @@
<?php
namespace App\Http\Requests\admin\Catalog\Direction;
use Illuminate\Foundation\Http\FormRequest;
class UpdateEntranceExaminationRequest extends FormRequest
{
public function authorize(): bool
{
return true;
}
public function rules(): array
{
return [
'direction_id' => 'required|numeric|int|max:1000',
'examination_type_id' => 'required|numeric|int|max:1000',
'subject_id' => 'required|numeric|int|max:1000',
'subject_type_id' => 'required|numeric|int|max:1000',
'scores' => 'required|numeric|int|max:1000',
'position' => 'required|numeric|int|max:1000',
];
}
}

View File

@ -1,33 +0,0 @@
<?php
namespace App\Http\Requests\admin\Catalog\Direction;
use Illuminate\Foundation\Http\FormRequest;
class UpdateExaminationTypeRequest extends FormRequest
{
public function authorize(): bool
{
return true;
}
public function rules(): array
{
return [
'position' => 'required|int|numeric|max:255',
'description' => 'string',
'slug' => [
'string',
'required',
'max:255',
"unique:examination_types,slug,{$this->examination_type->id}",
],
'name' => [
'required',
'string',
'max:255',
"unique:examination_types,name,{$this->examination_type->id}",
],
];
}
}

View File

@ -1,33 +0,0 @@
<?php
namespace App\Http\Requests\admin\Catalog\Direction;
use Illuminate\Foundation\Http\FormRequest;
class UpdateSubjectRequest extends FormRequest
{
public function authorize(): bool
{
return true;
}
public function rules(): array
{
return [
'position' => 'required|int|numeric|max:255',
'description' => 'string',
'slug' => [
'string',
'required',
'max:255',
"unique:subjects,slug,{$this->subject->id}",
],
'name' => [
'required',
'string',
'max:255',
"unique:subjects,name,{$this->subject->id}",
],
];
}
}

View File

@ -1,33 +0,0 @@
<?php
namespace App\Http\Requests\admin\Catalog\Direction;
use Illuminate\Foundation\Http\FormRequest;
class UpdateSubjectTypeRequest extends FormRequest
{
public function authorize(): bool
{
return true;
}
public function rules(): array
{
return [
'position' => 'required|int|numeric|max:255',
'description' => 'string',
'slug' => [
'string',
'required',
'max:255',
"unique:subject_types,slug,{$this->subject_type->id}",
],
'name' => [
'required',
'string',
'max:255',
"unique:subject_types,name,{$this->subject_type->id}",
],
];
}
}

View File

@ -18,7 +18,7 @@ class StoreDepartmentRequest extends FormRequest
'position' => 'required|int|numeric|max:255',
'name' => 'required|string|max:255|unique:departments,name',
'description' => 'string',
'slug' => 'required|string|max:255|unique:departments,slug',
'slug' => 'required|string|max:255',
'faculty_id' => 'required|numeric|int|max:1000',
];
}

View File

@ -17,7 +17,7 @@ class StoreDirectionRequest extends FormRequest
'position' => 'required|int|numeric|max:255',
'name' => 'required|string|max:255|unique:directions,name',
'description' => 'string',
'slug' => 'required|string|max:255|unique:directions,slug',
'slug' => 'required|string|max:255',
'code' => 'required|string|max:255',
'education_level_id' => 'required|int|numeric|max:1000',
'education_form_id' => 'required|int|numeric|max:1000',

View File

@ -1,6 +1,6 @@
<?php
namespace App\Http\Requests\admin\Catalog\Direction;
namespace App\Http\Requests\admin\Catalog;
use Illuminate\Foundation\Http\FormRequest;
@ -16,7 +16,7 @@ class StoreEducationFormRequest extends FormRequest
return [
'name' => 'required|string|max:255|unique:education_levels,name',
'description' => 'string',
'slug' => 'required|string|max:255|unique:education_levels,slug',
'slug' => 'required|string|max:255',
];
}
}

View File

@ -1,6 +1,6 @@
<?php
namespace App\Http\Requests\admin\Catalog\Direction;
namespace App\Http\Requests\admin\Catalog;
use Illuminate\Foundation\Http\FormRequest;
@ -16,7 +16,7 @@ class StoreEducationLevelRequest extends FormRequest
return [
'name' => 'required|string|max:255|unique:education_levels,name',
'description' => 'string',
'slug' => 'required|string|max:255|unique:education_levels,slug',
'slug' => 'required|string|max:255',
];
}
}

View File

@ -17,7 +17,7 @@ class StoreEducationalInstitutionRequest extends FormRequest
'position' => 'required|int|numeric|max:255',
'name' => 'required|string|max:255|unique:educational_institutions,name',
'description' => 'string',
'slug' => 'required|string|max:255|unique:educational_institutions,slug',
'slug' => 'required|string|max:255',
];
}
}

View File

@ -18,7 +18,7 @@ class StoreFacultyRequest extends FormRequest
'position' => 'required|int|numeric|max:255',
'name' => 'required|string|max:255|unique:faculties,name',
'description' => 'string',
'slug' => 'required|string|max:255|unique:faculties,slug',
'slug' => 'required|string|max:255',
'educational_institution_id' => 'required|int|numeric|max:1000'
];
}

View File

@ -15,12 +15,7 @@ class UpdateDepartmentRequest extends FormRequest
return [
'position' => 'required|int|numeric|max:255',
'description' => 'string',
'slug' => [
'string',
'required',
'max:255',
"unique:departments,slug,{$this->department->id}",
],
'slug' => 'string|required|max:255',
'faculty_id' => 'int|required|numeric|max:255',
'name' => [
'required',

View File

@ -18,12 +18,7 @@ class UpdateDirectionRequest extends FormRequest
'position' => 'required||numeric|int|max:255',
'description' => 'string',
'department_id' => 'int|required|numeric|max:1000',
'slug' => [
'required',
'string',
'max:255',
"unique:directions,slug,{$this->direction->id}",
],
'slug' => 'required|string|max:255',
'code' => 'required|string|max:255',
'education_level_id' => 'required|int|numeric|max:1000',
'education_form_id' => 'required|int|numeric|max:1000',

View File

@ -1,6 +1,6 @@
<?php
namespace App\Http\Requests\admin\Catalog\Direction;
namespace App\Http\Requests\admin\Catalog;
use Illuminate\Foundation\Http\FormRequest;
@ -16,7 +16,7 @@ class UpdateEducationFormRequest extends FormRequest
return [
'name' => "required|string|max:255|unique:education_forms,name,{$this->education_form->id}",
'description' => 'string',
'slug' => "required|string|max:255|unique:education_forms,slug,{$this->education_form->id}",
'slug' => 'required|string|max:255',
];
}
}

View File

@ -1,6 +1,6 @@
<?php
namespace App\Http\Requests\admin\Catalog\Direction;
namespace App\Http\Requests\admin\Catalog;
use Illuminate\Foundation\Http\FormRequest;
@ -16,7 +16,7 @@ class UpdateEducationLevelRequest extends FormRequest
return [
'name' => "required|string|max:255|unique:education_levels,name,{$this->education_level->id}",
'description' => 'string',
'slug' => "required|string|max:255|unique:education_levels,slug,{$this->education_level->id}",
'slug' => 'required|string|max:255',
];
}
}

View File

@ -17,12 +17,7 @@ class UpdateEducationalInstitutionRequest extends FormRequest
return [
'position' => 'required|int|numeric|max:255',
'description' => 'string',
'slug' => [
'required',
'string',
'max:255',
"unique:educational_institutions,slug,{$this->educational_institution->id}",
],
'slug' => 'required|string|max:255',
'name' => [
'required',
'string',

View File

@ -16,12 +16,7 @@ class UpdateFacultyRequest extends FormRequest
return [
'position' => 'required|int|numeric|max:255',
'description' => 'string',
'slug' => [
'required',
'string',
'max:255',
"unique:faculties,slug,{$this->faculty->id}",
],
'slug' => 'required|string|max:255',
'educational_institution_id' => 'required|int|numeric|max:255',
'name' => [
'required',

View File

@ -5,7 +5,6 @@ namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\HasMany;
class Direction extends Model
{
@ -34,9 +33,4 @@ class Direction extends Model
{
return $this->belongsTo(EducationForm::class);
}
public function entranceExaminations(): HasMany
{
return $this->hasMany('App\Models\EntranceExamination', 'direction_id');
}
}

View File

@ -1,42 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\HasMany;
class EntranceExamination extends Model
{
use HasFactory;
protected $fillable = [
'direction_id',
'examination_type_id',
'subject_id',
'subject_type_id',
'scores',
'position',
];
public function examinationType(): BelongsTo
{
return $this->belongsTo(ExaminationType::class);
}
public function direction(): BelongsTo
{
return $this->belongsTo(Direction::class);
}
public function subject(): BelongsTo
{
return $this->belongsTo(Subject::class);
}
public function subjectType(): BelongsTo
{
return $this->belongsTo(SubjectType::class);
}
}

View File

@ -1,25 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\HasMany;
class ExaminationType extends Model
{
use HasFactory;
protected $fillable = [
'id',
'name',
'description',
'slug',
'position',
];
public function entranceExaminations(): HasMany
{
return $this->hasMany('App\Models\EntranceExamination', 'examination_type_id');
}
}

View File

@ -1,25 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\HasMany;
class Subject extends Model
{
use HasFactory;
protected $fillable = [
'id',
'name',
'description',
'slug',
'position',
];
public function entranceExaminations(): HasMany
{
return $this->hasMany('App\Models\EntranceExamination', 'subject_id');
}
}

View File

@ -1,25 +0,0 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\HasMany;
class SubjectType extends Model
{
use HasFactory;
protected $fillable = [
'id',
'name',
'description',
'slug',
'position',
];
public function entranceExaminations(): HasMany
{
return $this->hasMany('App\Models\EntranceExamination', 'subject_type_id');
}
}

View File

@ -2,20 +2,23 @@
namespace App\Providers;
use Illuminate\Routing\UrlGenerator;
use Illuminate\Support\ServiceProvider;
class AppServiceProvider extends ServiceProvider
{
/**
* Register any application services.
*/
public function register(): void
{
//
}
public function boot(UrlGenerator $url): void
/**
* Bootstrap any application services.
*/
public function boot(): void
{
if (env('APP_ENV') == 'production') {
$url->forceScheme('https');
}
//
}
}

View File

@ -16,10 +16,10 @@
"laravel/tinker": "^2.9.0",
"laravel/ui": "^4.4.0",
"laravelcollective/html": "^6.4.1",
"league/flysystem": "^3.24.0",
"fakerphp/faker": "^1.23.1"
"league/flysystem": "^3.24.0"
},
"require-dev": {
"fakerphp/faker": "^1.23.1",
"laravel/breeze": "^1.28.1",
"laravel/pint": "^1.13.10",
"laravel/sail": "^1.27.3",

425
composer.lock generated
View File

@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "5cf86f441bf56b881a8a88e4cd9e4af6",
"content-hash": "3c31e42f7cfc5921b4dfaffd75926ba5",
"packages": [
{
"name": "brick/math",
@ -298,27 +298,27 @@
},
{
"name": "doctrine/lexer",
"version": "3.0.1",
"version": "3.0.0",
"source": {
"type": "git",
"url": "https://github.com/doctrine/lexer.git",
"reference": "31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd"
"reference": "84a527db05647743d50373e0ec53a152f2cde568"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/doctrine/lexer/zipball/31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd",
"reference": "31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd",
"url": "https://api.github.com/repos/doctrine/lexer/zipball/84a527db05647743d50373e0ec53a152f2cde568",
"reference": "84a527db05647743d50373e0ec53a152f2cde568",
"shasum": ""
},
"require": {
"php": "^8.1"
},
"require-dev": {
"doctrine/coding-standard": "^12",
"phpstan/phpstan": "^1.10",
"phpunit/phpunit": "^10.5",
"doctrine/coding-standard": "^10",
"phpstan/phpstan": "^1.9",
"phpunit/phpunit": "^9.5",
"psalm/plugin-phpunit": "^0.18.3",
"vimeo/psalm": "^5.21"
"vimeo/psalm": "^5.0"
},
"type": "library",
"autoload": {
@ -355,7 +355,7 @@
],
"support": {
"issues": "https://github.com/doctrine/lexer/issues",
"source": "https://github.com/doctrine/lexer/tree/3.0.1"
"source": "https://github.com/doctrine/lexer/tree/3.0.0"
},
"funding": [
{
@ -371,7 +371,7 @@
"type": "tidelift"
}
],
"time": "2024-02-05T11:56:58+00:00"
"time": "2022-12-15T16:57:16+00:00"
},
{
"name": "dragonmantank/cron-expression",
@ -501,69 +501,6 @@
],
"time": "2023-10-06T06:47:41+00:00"
},
{
"name": "fakerphp/faker",
"version": "v1.23.1",
"source": {
"type": "git",
"url": "https://github.com/FakerPHP/Faker.git",
"reference": "bfb4fe148adbf78eff521199619b93a52ae3554b"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/FakerPHP/Faker/zipball/bfb4fe148adbf78eff521199619b93a52ae3554b",
"reference": "bfb4fe148adbf78eff521199619b93a52ae3554b",
"shasum": ""
},
"require": {
"php": "^7.4 || ^8.0",
"psr/container": "^1.0 || ^2.0",
"symfony/deprecation-contracts": "^2.2 || ^3.0"
},
"conflict": {
"fzaninotto/faker": "*"
},
"require-dev": {
"bamarni/composer-bin-plugin": "^1.4.1",
"doctrine/persistence": "^1.3 || ^2.0",
"ext-intl": "*",
"phpunit/phpunit": "^9.5.26",
"symfony/phpunit-bridge": "^5.4.16"
},
"suggest": {
"doctrine/orm": "Required to use Faker\\ORM\\Doctrine",
"ext-curl": "Required by Faker\\Provider\\Image to download images.",
"ext-dom": "Required by Faker\\Provider\\HtmlLorem for generating random HTML.",
"ext-iconv": "Required by Faker\\Provider\\ru_RU\\Text::realText() for generating real Russian text.",
"ext-mbstring": "Required for multibyte Unicode string functionality."
},
"type": "library",
"autoload": {
"psr-4": {
"Faker\\": "src/Faker/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "François Zaninotto"
}
],
"description": "Faker is a PHP library that generates fake data for you.",
"keywords": [
"data",
"faker",
"fixtures"
],
"support": {
"issues": "https://github.com/FakerPHP/Faker/issues",
"source": "https://github.com/FakerPHP/Faker/tree/v1.23.1"
},
"time": "2024-01-02T13:46:09+00:00"
},
{
"name": "fruitcake/php-cors",
"version": "v1.3.0",
@ -1162,16 +1099,16 @@
},
{
"name": "laravel/framework",
"version": "v10.44.0",
"version": "v10.43.0",
"source": {
"type": "git",
"url": "https://github.com/laravel/framework.git",
"reference": "1199dbe361787bbe9648131a79f53921b4148cf6"
"reference": "4f7802dfc9993cb57cf69615491ce1a7eb2e9529"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/laravel/framework/zipball/1199dbe361787bbe9648131a79f53921b4148cf6",
"reference": "1199dbe361787bbe9648131a79f53921b4148cf6",
"url": "https://api.github.com/repos/laravel/framework/zipball/4f7802dfc9993cb57cf69615491ce1a7eb2e9529",
"reference": "4f7802dfc9993cb57cf69615491ce1a7eb2e9529",
"shasum": ""
},
"require": {
@ -1219,7 +1156,6 @@
"conflict": {
"carbonphp/carbon-doctrine-types": ">=3.0",
"doctrine/dbal": ">=4.0",
"phpunit/phpunit": ">=11.0.0",
"tightenco/collect": "<5.5.33"
},
"provide": {
@ -1364,7 +1300,7 @@
"issues": "https://github.com/laravel/framework/issues",
"source": "https://github.com/laravel/framework"
},
"time": "2024-02-13T16:01:16+00:00"
"time": "2024-01-30T16:25:02+00:00"
},
{
"name": "laravel/prompts",
@ -2502,27 +2438,25 @@
},
{
"name": "nikic/php-parser",
"version": "v5.0.0",
"version": "v4.18.0",
"source": {
"type": "git",
"url": "https://github.com/nikic/PHP-Parser.git",
"reference": "4a21235f7e56e713259a6f76bf4b5ea08502b9dc"
"reference": "1bcbb2179f97633e98bbbc87044ee2611c7d7999"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/4a21235f7e56e713259a6f76bf4b5ea08502b9dc",
"reference": "4a21235f7e56e713259a6f76bf4b5ea08502b9dc",
"url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/1bcbb2179f97633e98bbbc87044ee2611c7d7999",
"reference": "1bcbb2179f97633e98bbbc87044ee2611c7d7999",
"shasum": ""
},
"require": {
"ext-ctype": "*",
"ext-json": "*",
"ext-tokenizer": "*",
"php": ">=7.4"
"php": ">=7.0"
},
"require-dev": {
"ircmaxell/php-yacc": "^0.0.7",
"phpunit/phpunit": "^7.0 || ^8.0 || ^9.0"
"phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0"
},
"bin": [
"bin/php-parse"
@ -2530,7 +2464,7 @@
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "5.0-dev"
"dev-master": "4.9-dev"
}
},
"autoload": {
@ -2554,9 +2488,9 @@
],
"support": {
"issues": "https://github.com/nikic/PHP-Parser/issues",
"source": "https://github.com/nikic/PHP-Parser/tree/v5.0.0"
"source": "https://github.com/nikic/PHP-Parser/tree/v4.18.0"
},
"time": "2024-01-07T17:17:35+00:00"
"time": "2023-12-10T21:03:43+00:00"
},
{
"name": "nunomaduro/termwind",
@ -4312,16 +4246,16 @@
},
{
"name": "symfony/polyfill-ctype",
"version": "v1.29.0",
"version": "v1.28.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-ctype.git",
"reference": "ef4d7e442ca910c4764bce785146269b30cb5fc4"
"reference": "ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/ef4d7e442ca910c4764bce785146269b30cb5fc4",
"reference": "ef4d7e442ca910c4764bce785146269b30cb5fc4",
"url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb",
"reference": "ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb",
"shasum": ""
},
"require": {
@ -4335,6 +4269,9 @@
},
"type": "library",
"extra": {
"branch-alias": {
"dev-main": "1.28-dev"
},
"thanks": {
"name": "symfony/polyfill",
"url": "https://github.com/symfony/polyfill"
@ -4371,7 +4308,7 @@
"portable"
],
"support": {
"source": "https://github.com/symfony/polyfill-ctype/tree/v1.29.0"
"source": "https://github.com/symfony/polyfill-ctype/tree/v1.28.0"
},
"funding": [
{
@ -4387,20 +4324,20 @@
"type": "tidelift"
}
],
"time": "2024-01-29T20:11:03+00:00"
"time": "2023-01-26T09:26:14+00:00"
},
{
"name": "symfony/polyfill-intl-grapheme",
"version": "v1.29.0",
"version": "v1.28.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-intl-grapheme.git",
"reference": "32a9da87d7b3245e09ac426c83d334ae9f06f80f"
"reference": "875e90aeea2777b6f135677f618529449334a612"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/32a9da87d7b3245e09ac426c83d334ae9f06f80f",
"reference": "32a9da87d7b3245e09ac426c83d334ae9f06f80f",
"url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/875e90aeea2777b6f135677f618529449334a612",
"reference": "875e90aeea2777b6f135677f618529449334a612",
"shasum": ""
},
"require": {
@ -4411,6 +4348,9 @@
},
"type": "library",
"extra": {
"branch-alias": {
"dev-main": "1.28-dev"
},
"thanks": {
"name": "symfony/polyfill",
"url": "https://github.com/symfony/polyfill"
@ -4449,7 +4389,7 @@
"shim"
],
"support": {
"source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.29.0"
"source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.28.0"
},
"funding": [
{
@ -4465,20 +4405,20 @@
"type": "tidelift"
}
],
"time": "2024-01-29T20:11:03+00:00"
"time": "2023-01-26T09:26:14+00:00"
},
{
"name": "symfony/polyfill-intl-idn",
"version": "v1.29.0",
"version": "v1.28.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-intl-idn.git",
"reference": "a287ed7475f85bf6f61890146edbc932c0fff919"
"reference": "ecaafce9f77234a6a449d29e49267ba10499116d"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/a287ed7475f85bf6f61890146edbc932c0fff919",
"reference": "a287ed7475f85bf6f61890146edbc932c0fff919",
"url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/ecaafce9f77234a6a449d29e49267ba10499116d",
"reference": "ecaafce9f77234a6a449d29e49267ba10499116d",
"shasum": ""
},
"require": {
@ -4491,6 +4431,9 @@
},
"type": "library",
"extra": {
"branch-alias": {
"dev-main": "1.28-dev"
},
"thanks": {
"name": "symfony/polyfill",
"url": "https://github.com/symfony/polyfill"
@ -4533,7 +4476,7 @@
"shim"
],
"support": {
"source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.29.0"
"source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.28.0"
},
"funding": [
{
@ -4549,20 +4492,20 @@
"type": "tidelift"
}
],
"time": "2024-01-29T20:11:03+00:00"
"time": "2023-01-26T09:30:37+00:00"
},
{
"name": "symfony/polyfill-intl-normalizer",
"version": "v1.29.0",
"version": "v1.28.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-intl-normalizer.git",
"reference": "bc45c394692b948b4d383a08d7753968bed9a83d"
"reference": "8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/bc45c394692b948b4d383a08d7753968bed9a83d",
"reference": "bc45c394692b948b4d383a08d7753968bed9a83d",
"url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92",
"reference": "8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92",
"shasum": ""
},
"require": {
@ -4573,6 +4516,9 @@
},
"type": "library",
"extra": {
"branch-alias": {
"dev-main": "1.28-dev"
},
"thanks": {
"name": "symfony/polyfill",
"url": "https://github.com/symfony/polyfill"
@ -4614,7 +4560,7 @@
"shim"
],
"support": {
"source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.29.0"
"source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.28.0"
},
"funding": [
{
@ -4630,20 +4576,20 @@
"type": "tidelift"
}
],
"time": "2024-01-29T20:11:03+00:00"
"time": "2023-01-26T09:26:14+00:00"
},
{
"name": "symfony/polyfill-mbstring",
"version": "v1.29.0",
"version": "v1.28.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-mbstring.git",
"reference": "9773676c8a1bb1f8d4340a62efe641cf76eda7ec"
"reference": "42292d99c55abe617799667f454222c54c60e229"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/9773676c8a1bb1f8d4340a62efe641cf76eda7ec",
"reference": "9773676c8a1bb1f8d4340a62efe641cf76eda7ec",
"url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/42292d99c55abe617799667f454222c54c60e229",
"reference": "42292d99c55abe617799667f454222c54c60e229",
"shasum": ""
},
"require": {
@ -4657,6 +4603,9 @@
},
"type": "library",
"extra": {
"branch-alias": {
"dev-main": "1.28-dev"
},
"thanks": {
"name": "symfony/polyfill",
"url": "https://github.com/symfony/polyfill"
@ -4694,7 +4643,7 @@
"shim"
],
"support": {
"source": "https://github.com/symfony/polyfill-mbstring/tree/v1.29.0"
"source": "https://github.com/symfony/polyfill-mbstring/tree/v1.28.0"
},
"funding": [
{
@ -4710,20 +4659,20 @@
"type": "tidelift"
}
],
"time": "2024-01-29T20:11:03+00:00"
"time": "2023-07-28T09:04:16+00:00"
},
{
"name": "symfony/polyfill-php72",
"version": "v1.29.0",
"version": "v1.28.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-php72.git",
"reference": "861391a8da9a04cbad2d232ddd9e4893220d6e25"
"reference": "70f4aebd92afca2f865444d30a4d2151c13c3179"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/861391a8da9a04cbad2d232ddd9e4893220d6e25",
"reference": "861391a8da9a04cbad2d232ddd9e4893220d6e25",
"url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/70f4aebd92afca2f865444d30a4d2151c13c3179",
"reference": "70f4aebd92afca2f865444d30a4d2151c13c3179",
"shasum": ""
},
"require": {
@ -4731,6 +4680,9 @@
},
"type": "library",
"extra": {
"branch-alias": {
"dev-main": "1.28-dev"
},
"thanks": {
"name": "symfony/polyfill",
"url": "https://github.com/symfony/polyfill"
@ -4767,7 +4719,7 @@
"shim"
],
"support": {
"source": "https://github.com/symfony/polyfill-php72/tree/v1.29.0"
"source": "https://github.com/symfony/polyfill-php72/tree/v1.28.0"
},
"funding": [
{
@ -4783,20 +4735,20 @@
"type": "tidelift"
}
],
"time": "2024-01-29T20:11:03+00:00"
"time": "2023-01-26T09:26:14+00:00"
},
{
"name": "symfony/polyfill-php80",
"version": "v1.29.0",
"version": "v1.28.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-php80.git",
"reference": "87b68208d5c1188808dd7839ee1e6c8ec3b02f1b"
"reference": "6caa57379c4aec19c0a12a38b59b26487dcfe4b5"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/87b68208d5c1188808dd7839ee1e6c8ec3b02f1b",
"reference": "87b68208d5c1188808dd7839ee1e6c8ec3b02f1b",
"url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/6caa57379c4aec19c0a12a38b59b26487dcfe4b5",
"reference": "6caa57379c4aec19c0a12a38b59b26487dcfe4b5",
"shasum": ""
},
"require": {
@ -4804,6 +4756,9 @@
},
"type": "library",
"extra": {
"branch-alias": {
"dev-main": "1.28-dev"
},
"thanks": {
"name": "symfony/polyfill",
"url": "https://github.com/symfony/polyfill"
@ -4847,7 +4802,7 @@
"shim"
],
"support": {
"source": "https://github.com/symfony/polyfill-php80/tree/v1.29.0"
"source": "https://github.com/symfony/polyfill-php80/tree/v1.28.0"
},
"funding": [
{
@ -4863,20 +4818,20 @@
"type": "tidelift"
}
],
"time": "2024-01-29T20:11:03+00:00"
"time": "2023-01-26T09:26:14+00:00"
},
{
"name": "symfony/polyfill-php83",
"version": "v1.29.0",
"version": "v1.28.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-php83.git",
"reference": "86fcae159633351e5fd145d1c47de6c528f8caff"
"reference": "b0f46ebbeeeda3e9d2faebdfbf4b4eae9b59fa11"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/86fcae159633351e5fd145d1c47de6c528f8caff",
"reference": "86fcae159633351e5fd145d1c47de6c528f8caff",
"url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/b0f46ebbeeeda3e9d2faebdfbf4b4eae9b59fa11",
"reference": "b0f46ebbeeeda3e9d2faebdfbf4b4eae9b59fa11",
"shasum": ""
},
"require": {
@ -4885,6 +4840,9 @@
},
"type": "library",
"extra": {
"branch-alias": {
"dev-main": "1.28-dev"
},
"thanks": {
"name": "symfony/polyfill",
"url": "https://github.com/symfony/polyfill"
@ -4924,7 +4882,7 @@
"shim"
],
"support": {
"source": "https://github.com/symfony/polyfill-php83/tree/v1.29.0"
"source": "https://github.com/symfony/polyfill-php83/tree/v1.28.0"
},
"funding": [
{
@ -4940,20 +4898,20 @@
"type": "tidelift"
}
],
"time": "2024-01-29T20:11:03+00:00"
"time": "2023-08-16T06:22:46+00:00"
},
{
"name": "symfony/polyfill-uuid",
"version": "v1.29.0",
"version": "v1.28.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-uuid.git",
"reference": "3abdd21b0ceaa3000ee950097bc3cf9efc137853"
"reference": "9c44518a5aff8da565c8a55dbe85d2769e6f630e"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-uuid/zipball/3abdd21b0ceaa3000ee950097bc3cf9efc137853",
"reference": "3abdd21b0ceaa3000ee950097bc3cf9efc137853",
"url": "https://api.github.com/repos/symfony/polyfill-uuid/zipball/9c44518a5aff8da565c8a55dbe85d2769e6f630e",
"reference": "9c44518a5aff8da565c8a55dbe85d2769e6f630e",
"shasum": ""
},
"require": {
@ -4967,6 +4925,9 @@
},
"type": "library",
"extra": {
"branch-alias": {
"dev-main": "1.28-dev"
},
"thanks": {
"name": "symfony/polyfill",
"url": "https://github.com/symfony/polyfill"
@ -5003,7 +4964,7 @@
"uuid"
],
"support": {
"source": "https://github.com/symfony/polyfill-uuid/tree/v1.29.0"
"source": "https://github.com/symfony/polyfill-uuid/tree/v1.28.0"
},
"funding": [
{
@ -5019,7 +4980,7 @@
"type": "tidelift"
}
],
"time": "2024-01-29T20:11:03+00:00"
"time": "2023-01-26T09:26:14+00:00"
},
{
"name": "symfony/process",
@ -5938,40 +5899,40 @@
"packages-dev": [
{
"name": "barryvdh/laravel-ide-helper",
"version": "v2.15.1",
"version": "v2.13.0",
"source": {
"type": "git",
"url": "https://github.com/barryvdh/laravel-ide-helper.git",
"reference": "77831852bb7bc54f287246d32eb91274eaf87f8b"
"reference": "81d5b223ff067a1f38e14c100997e153b837fe4a"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/barryvdh/laravel-ide-helper/zipball/77831852bb7bc54f287246d32eb91274eaf87f8b",
"reference": "77831852bb7bc54f287246d32eb91274eaf87f8b",
"url": "https://api.github.com/repos/barryvdh/laravel-ide-helper/zipball/81d5b223ff067a1f38e14c100997e153b837fe4a",
"reference": "81d5b223ff067a1f38e14c100997e153b837fe4a",
"shasum": ""
},
"require": {
"barryvdh/reflection-docblock": "^2.0.6",
"composer/class-map-generator": "^1.0",
"doctrine/dbal": "^2.6 || ^3.1.4",
"doctrine/dbal": "^2.6 || ^3",
"ext-json": "*",
"illuminate/console": "^9 || ^10",
"illuminate/filesystem": "^9 || ^10",
"illuminate/support": "^9 || ^10",
"nikic/php-parser": "^4.18 || ^5",
"php": "^8.0",
"illuminate/console": "^8 || ^9 || ^10",
"illuminate/filesystem": "^8 || ^9 || ^10",
"illuminate/support": "^8 || ^9 || ^10",
"nikic/php-parser": "^4.7",
"php": "^7.3 || ^8.0",
"phpdocumentor/type-resolver": "^1.1.0"
},
"require-dev": {
"ext-pdo_sqlite": "*",
"friendsofphp/php-cs-fixer": "^3",
"illuminate/config": "^9 || ^10",
"illuminate/view": "^9 || ^10",
"friendsofphp/php-cs-fixer": "^2",
"illuminate/config": "^8 || ^9 || ^10",
"illuminate/view": "^8 || ^9 || ^10",
"mockery/mockery": "^1.4",
"orchestra/testbench": "^7 || ^8",
"phpunit/phpunit": "^9",
"spatie/phpunit-snapshot-assertions": "^4",
"vimeo/psalm": "^5.4"
"orchestra/testbench": "^6 || ^7 || ^8",
"phpunit/phpunit": "^8.5 || ^9",
"spatie/phpunit-snapshot-assertions": "^3 || ^4",
"vimeo/psalm": "^3.12"
},
"suggest": {
"illuminate/events": "Required for automatic helper generation (^6|^7|^8|^9|^10)."
@ -5979,7 +5940,7 @@
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.15-dev"
"dev-master": "2.12-dev"
},
"laravel": {
"providers": [
@ -6016,7 +5977,7 @@
],
"support": {
"issues": "https://github.com/barryvdh/laravel-ide-helper/issues",
"source": "https://github.com/barryvdh/laravel-ide-helper/tree/v2.15.1"
"source": "https://github.com/barryvdh/laravel-ide-helper/tree/v2.13.0"
},
"funding": [
{
@ -6028,7 +5989,7 @@
"type": "github"
}
],
"time": "2024-02-15T14:23:20+00:00"
"time": "2023-02-04T13:56:40+00:00"
},
{
"name": "barryvdh/reflection-docblock",
@ -6321,16 +6282,16 @@
},
{
"name": "doctrine/dbal",
"version": "3.8.2",
"version": "3.8.1",
"source": {
"type": "git",
"url": "https://github.com/doctrine/dbal.git",
"reference": "a19a1d05ca211f41089dffcc387733a6875196cb"
"reference": "c9ea252cdce4da324ede3d6c5913dd89f769afd2"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/doctrine/dbal/zipball/a19a1d05ca211f41089dffcc387733a6875196cb",
"reference": "a19a1d05ca211f41089dffcc387733a6875196cb",
"url": "https://api.github.com/repos/doctrine/dbal/zipball/c9ea252cdce4da324ede3d6c5913dd89f769afd2",
"reference": "c9ea252cdce4da324ede3d6c5913dd89f769afd2",
"shasum": ""
},
"require": {
@ -6414,7 +6375,7 @@
],
"support": {
"issues": "https://github.com/doctrine/dbal/issues",
"source": "https://github.com/doctrine/dbal/tree/3.8.2"
"source": "https://github.com/doctrine/dbal/tree/3.8.1"
},
"funding": [
{
@ -6430,7 +6391,7 @@
"type": "tidelift"
}
],
"time": "2024-02-12T18:36:36+00:00"
"time": "2024-02-03T17:33:49+00:00"
},
{
"name": "doctrine/deprecations",
@ -6570,6 +6531,69 @@
],
"time": "2022-10-12T20:59:15+00:00"
},
{
"name": "fakerphp/faker",
"version": "v1.23.1",
"source": {
"type": "git",
"url": "https://github.com/FakerPHP/Faker.git",
"reference": "bfb4fe148adbf78eff521199619b93a52ae3554b"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/FakerPHP/Faker/zipball/bfb4fe148adbf78eff521199619b93a52ae3554b",
"reference": "bfb4fe148adbf78eff521199619b93a52ae3554b",
"shasum": ""
},
"require": {
"php": "^7.4 || ^8.0",
"psr/container": "^1.0 || ^2.0",
"symfony/deprecation-contracts": "^2.2 || ^3.0"
},
"conflict": {
"fzaninotto/faker": "*"
},
"require-dev": {
"bamarni/composer-bin-plugin": "^1.4.1",
"doctrine/persistence": "^1.3 || ^2.0",
"ext-intl": "*",
"phpunit/phpunit": "^9.5.26",
"symfony/phpunit-bridge": "^5.4.16"
},
"suggest": {
"doctrine/orm": "Required to use Faker\\ORM\\Doctrine",
"ext-curl": "Required by Faker\\Provider\\Image to download images.",
"ext-dom": "Required by Faker\\Provider\\HtmlLorem for generating random HTML.",
"ext-iconv": "Required by Faker\\Provider\\ru_RU\\Text::realText() for generating real Russian text.",
"ext-mbstring": "Required for multibyte Unicode string functionality."
},
"type": "library",
"autoload": {
"psr-4": {
"Faker\\": "src/Faker/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "François Zaninotto"
}
],
"description": "Faker is a PHP library that generates fake data for you.",
"keywords": [
"data",
"faker",
"fixtures"
],
"support": {
"issues": "https://github.com/FakerPHP/Faker/issues",
"source": "https://github.com/FakerPHP/Faker/tree/v1.23.1"
},
"time": "2024-01-02T13:46:09+00:00"
},
{
"name": "filp/whoops",
"version": "2.15.4",
@ -6694,16 +6718,16 @@
},
{
"name": "laravel/breeze",
"version": "v1.28.2",
"version": "v1.28.1",
"source": {
"type": "git",
"url": "https://github.com/laravel/breeze.git",
"reference": "1e48e29d3f769bb90bbdf2934c52f4612e3b5b47"
"reference": "e853918e770822780efd160a73fd676992340aca"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/laravel/breeze/zipball/1e48e29d3f769bb90bbdf2934c52f4612e3b5b47",
"reference": "1e48e29d3f769bb90bbdf2934c52f4612e3b5b47",
"url": "https://api.github.com/repos/laravel/breeze/zipball/e853918e770822780efd160a73fd676992340aca",
"reference": "e853918e770822780efd160a73fd676992340aca",
"shasum": ""
},
"require": {
@ -6752,20 +6776,20 @@
"issues": "https://github.com/laravel/breeze/issues",
"source": "https://github.com/laravel/breeze"
},
"time": "2024-02-13T02:26:19+00:00"
"time": "2024-01-15T16:14:10+00:00"
},
{
"name": "laravel/pint",
"version": "v1.13.11",
"version": "v1.13.10",
"source": {
"type": "git",
"url": "https://github.com/laravel/pint.git",
"reference": "60a163c3e7e3346a1dec96d3e6f02e6465452552"
"reference": "e2b5060885694ca30ac008c05dc9d47f10ed1abf"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/laravel/pint/zipball/60a163c3e7e3346a1dec96d3e6f02e6465452552",
"reference": "60a163c3e7e3346a1dec96d3e6f02e6465452552",
"url": "https://api.github.com/repos/laravel/pint/zipball/e2b5060885694ca30ac008c05dc9d47f10ed1abf",
"reference": "e2b5060885694ca30ac008c05dc9d47f10ed1abf",
"shasum": ""
},
"require": {
@ -6776,13 +6800,13 @@
"php": "^8.1.0"
},
"require-dev": {
"friendsofphp/php-cs-fixer": "^3.49.0",
"illuminate/view": "^10.43.0",
"friendsofphp/php-cs-fixer": "^3.47.1",
"illuminate/view": "^10.41.0",
"larastan/larastan": "^2.8.1",
"laravel-zero/framework": "^10.3.0",
"mockery/mockery": "^1.6.7",
"nunomaduro/termwind": "^1.15.1",
"pestphp/pest": "^2.33.6"
"pestphp/pest": "^2.31.0"
},
"bin": [
"builds/pint"
@ -6818,20 +6842,20 @@
"issues": "https://github.com/laravel/pint/issues",
"source": "https://github.com/laravel/pint"
},
"time": "2024-02-13T17:20:13+00:00"
"time": "2024-01-22T09:04:15+00:00"
},
{
"name": "laravel/sail",
"version": "v1.27.4",
"version": "v1.27.3",
"source": {
"type": "git",
"url": "https://github.com/laravel/sail.git",
"reference": "3047e1a157fad968cc5f6e620d5cbe5c0867fffd"
"reference": "7e01b345072c9604ead9d7aed175bf7ac1d80289"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/laravel/sail/zipball/3047e1a157fad968cc5f6e620d5cbe5c0867fffd",
"reference": "3047e1a157fad968cc5f6e620d5cbe5c0867fffd",
"url": "https://api.github.com/repos/laravel/sail/zipball/7e01b345072c9604ead9d7aed175bf7ac1d80289",
"reference": "7e01b345072c9604ead9d7aed175bf7ac1d80289",
"shasum": ""
},
"require": {
@ -6850,6 +6874,9 @@
],
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.x-dev"
},
"laravel": {
"providers": [
"Laravel\\Sail\\SailServiceProvider"
@ -6880,7 +6907,7 @@
"issues": "https://github.com/laravel/sail/issues",
"source": "https://github.com/laravel/sail"
},
"time": "2024-02-08T15:24:21+00:00"
"time": "2024-01-30T03:03:59+00:00"
},
{
"name": "mockery/mockery",
@ -7391,16 +7418,16 @@
},
{
"name": "phpstan/phpstan",
"version": "1.10.58",
"version": "1.10.57",
"source": {
"type": "git",
"url": "https://github.com/phpstan/phpstan.git",
"reference": "a23518379ec4defd9e47cbf81019526861623ec2"
"reference": "1627b1d03446904aaa77593f370c5201d2ecc34e"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/phpstan/phpstan/zipball/a23518379ec4defd9e47cbf81019526861623ec2",
"reference": "a23518379ec4defd9e47cbf81019526861623ec2",
"url": "https://api.github.com/repos/phpstan/phpstan/zipball/1627b1d03446904aaa77593f370c5201d2ecc34e",
"reference": "1627b1d03446904aaa77593f370c5201d2ecc34e",
"shasum": ""
},
"require": {
@ -7449,7 +7476,7 @@
"type": "tidelift"
}
],
"time": "2024-02-12T20:02:57+00:00"
"time": "2024-01-24T11:51:34+00:00"
},
{
"name": "phpunit/php-code-coverage",
@ -9053,16 +9080,16 @@
},
{
"name": "spatie/laravel-ignition",
"version": "2.4.2",
"version": "2.4.1",
"source": {
"type": "git",
"url": "https://github.com/spatie/laravel-ignition.git",
"reference": "351504f4570e32908839fc5a2dc53bf77d02f85e"
"reference": "005e1e7b1232f3b22d7e7be3f602693efc7dba67"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/spatie/laravel-ignition/zipball/351504f4570e32908839fc5a2dc53bf77d02f85e",
"reference": "351504f4570e32908839fc5a2dc53bf77d02f85e",
"url": "https://api.github.com/repos/spatie/laravel-ignition/zipball/005e1e7b1232f3b22d7e7be3f602693efc7dba67",
"reference": "005e1e7b1232f3b22d7e7be3f602693efc7dba67",
"shasum": ""
},
"require": {
@ -9141,7 +9168,7 @@
"type": "github"
}
],
"time": "2024-02-09T16:08:40+00:00"
"time": "2024-01-12T13:14:58+00:00"
},
{
"name": "squizlabs/php_codesniffer",

View File

@ -1,20 +0,0 @@
<?php
namespace Database\Factories;
use Illuminate\Database\Eloquent\Factories\Factory;
class EntranceExaminationFactory extends Factory
{
public function definition(): array
{
return [
'examination_type_id' => 1,
'direction_id' => 1,
'subject_id' => 1,
'scores' => 45,
'position' => fake()->randomDigit(),
'subject_type_id' => 1,
];
}
}

View File

@ -1,18 +0,0 @@
<?php
namespace Database\Factories;
use Illuminate\Database\Eloquent\Factories\Factory;
class ExaminationTypeFactory extends Factory
{
public function definition(): array
{
return [
'name' => fake()->name(),
'description' => fake()->text(),
'slug' => fake()->slug(),
'position' => fake()->randomDigit(),
];
}
}

View File

@ -1,18 +0,0 @@
<?php
namespace Database\Factories;
use Illuminate\Database\Eloquent\Factories\Factory;
class SubjectFactory extends Factory
{
public function definition(): array
{
return [
'name' => fake()->name(),
'description' => fake()->text(),
'slug' => fake()->slug(),
'position' => fake()->randomDigit(),
];
}
}

View File

@ -1,18 +0,0 @@
<?php
namespace Database\Factories;
use Illuminate\Database\Eloquent\Factories\Factory;
class SubjectTypeFactory extends Factory
{
public function definition(): array
{
return [
'name' => fake()->name(),
'description' => fake()->text(),
'slug' => fake()->slug(),
'position' => fake()->randomDigit(),
];
}
}

View File

@ -1,25 +0,0 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
public function up(): void
{
Schema::create('examination_types', function (Blueprint $table) {
$table->id();
$table->integer('position');
$table->string('name');
$table->text('description')->nullable();
$table->string('slug');
$table->timestamps();
});
}
public function down(): void
{
Schema::dropIfExists('examination_types');
}
};

View File

@ -1,25 +0,0 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
public function up(): void
{
Schema::create('subject_types', function (Blueprint $table) {
$table->id();
$table->integer('position');
$table->string('name');
$table->text('description')->nullable();
$table->string('slug');
$table->timestamps();
});
}
public function down(): void
{
Schema::dropIfExists('subject_types');
}
};

View File

@ -1,31 +0,0 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::create('subjects', function (Blueprint $table) {
$table->id();
$table->integer('position');
$table->string('name');
$table->text('description')->nullable();
$table->string('slug');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::dropIfExists('subjects');
}
};

View File

@ -1,27 +0,0 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
public function up(): void
{
Schema::create('entrance_examinations', function (Blueprint $table) {
$table->id();
$table->foreignId('examination_type_id')->constrained('examination_types');
$table->foreignId('direction_id')->constrained('directions');
$table->foreignId('subject_id')->constrained('subjects');
$table->integer('scores');
$table->integer('position');
$table->foreignId('subject_type_id')->constrained('subject_types');
$table->timestamps();
});
}
public function down(): void
{
Schema::dropIfExists('entrance_examinations');
}
};

View File

@ -2,7 +2,6 @@
namespace Database\Seeders;
use App\Models\ExaminationType;
use App\Models\User;
use Illuminate\Database\Seeder;
@ -19,7 +18,7 @@ class DatabaseSeeder extends Seeder
'password' => 123456
]);
// User::factory(10)->create();
User::factory(10)->create();
$this->call([
EducationalInstitutionSeeder::class,
@ -27,11 +26,7 @@ class DatabaseSeeder extends Seeder
DepartmentSeeder::class,
EducationLevelSeeder::class,
EducationFormSeeder::class,
ExaminationTypeSeeder::class,
SubjectSeeder::class,
SubjectTypeSeeder::class,
DirectionSeeder::class,
EntranceExaminationSeeder::class,
]);
$this->call([

View File

@ -1,40 +0,0 @@
<?php
namespace Database\Seeders;
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;
class EntranceExaminationSeeder extends Seeder
{
public function run(): void
{
DB::table('entrance_examinations')->insert([
[
'examination_type_id' => 1,
'direction_id' => 1,
'subject_id' => 1,
'scores' => 40,
'position' => 1,
'subject_type_id' => 1,
],
[
'examination_type_id' => 1,
'direction_id' => 1,
'subject_id' => 2,
'scores' => 45,
'position' => 2,
'subject_type_id' => 1,
],
[
'examination_type_id' => 1,
'direction_id' => 1,
'subject_id' => 3,
'scores' => 50,
'position' => 3,
'subject_type_id' => 1,
],
]);
}
}

View File

@ -1,34 +0,0 @@
<?php
namespace Database\Seeders;
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;
class ExaminationTypeSeeder extends Seeder
{
public function run(): void
{
DB::table('examination_types')->insert([
[
'name' => 'ЕГЭ',
'description' => 'Unified State Examination',
'position' => '1',
'slug' => 'USE',
],
[
'name' => 'СПО',
'description' => 'secondary vocational education',
'position' => '2',
'slug' => 'SVE',
],
[
'name' => 'магитсратура',
'description' => 'type magistracy',
'position' => '3',
'slug' => 'MAG',
],
]);
}
}

View File

@ -1,33 +0,0 @@
<?php
namespace Database\Seeders;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;
class SubjectSeeder extends Seeder
{
public function run(): void
{
DB::table('subjects')->insert([
[
'name' => 'Обществознание',
'description' => 'social studies',
'position' => '1',
'slug' => 'social-studies',
],
[
'name' => 'Русский язык',
'description' => 'a Russian language course',
'position' => '2',
'slug' => 'russian-language',
],
[
'name' => 'математика',
'description' => 'mathematics',
'position' => '3',
'slug' => 'mathematics',
],
]);
}
}

View File

@ -1,28 +0,0 @@
<?php
namespace Database\Seeders;
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;
class SubjectTypeSeeder extends Seeder
{
public function run(): void
{
DB::table('subject_types')->insert([
[
'name' => 'Обязательные',
'description' => 'compulsory',
'position' => '1',
'slug' => 'compulsory',
],
[
'name' => 'Предметы по выбору',
'description' => 'optional',
'position' => '2',
'slug' => 'optional',
],
]);
}
}

View File

@ -3,8 +3,7 @@
"type": "module",
"scripts": {
"dev": "vite",
"build": "vite build",
"prod": "vite build"
"build": "vite build"
},
"devDependencies": {
"@popperjs/core": "^2.11.6",

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 175 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 141 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 MiB

Some files were not shown because too many files have changed in this diff Show More