Compare commits

..

31 Commits

Author SHA1 Message Date
ROMANGOLIENKO 727d273d97 main page completed 2024-02-29 16:42:44 +03:00
aslan 75452eff7d any fix in Subject type resource 2024-02-19 11:00:44 +03:00
aslan 7d08fb0e12 Merge remote-tracking branch 'github/main'
# Conflicts:
#	app/Http/Controllers/admin/Catalog/Direction/EntranceExaminationController.php
2024-02-19 10:55:31 +03:00
aslan 566087919b add EntranceExamination resource 2024-02-19 10:53:17 +03:00
aslan 881c0c63b7 add EntranceExamination resource 2024-02-19 10:51:20 +03:00
aslan be385af496 fix deploy crash 2024-02-17 13:08:01 +03:00
aslan 1ae23bc31c fix deploy crash 2024-02-17 13:04:41 +03:00
aslan 5b1e4cab99 fix SubjectType recourse 2024-02-17 12:31:22 +03:00
aslan 84061c6c95 fix structure files 2024-02-17 11:31:19 +03:00
aslan 1462d70800 add Subject resource 2024-02-17 11:30:32 +03:00
aslan 5f3c4449c0 add ExaminationTypeTest.php 2024-02-17 10:24:21 +03:00
aslan f5d69e9c7f fix tests error show view on examination type 2024-02-17 10:10:57 +03:00
aslan 1e0cf9a9e0 fix lint 2024-02-17 09:24:45 +03:00
aslan e86a93d3d4 add refresh 2024-02-16 16:28:30 +03:00
aslan a78f2bdef5 add faker to required 2024-02-16 16:23:35 +03:00
aslan c34ba769dd add faker to required 2024-02-16 16:19:38 +03:00
aslan 0fc9053675 add dev to install docker 2024-02-16 16:12:50 +03:00
aslan 8b2736e785 add comand db-prepare and start-app 2024-02-16 16:04:44 +03:00
aslan f8f6d4b3d3 add fix in appservice provider 2024-02-16 15:59:29 +03:00
aslan 65d9b41197 add php 8.3 2024-02-16 15:55:04 +03:00
aslan 96e2e4270c add php 8.3 2024-02-16 15:53:07 +03:00
aslan 4b154e1160 add php 8.3 2024-02-16 15:51:13 +03:00
aslan 90488e5d99 add php 8.3 2024-02-16 15:47:08 +03:00
aslan 46d984b49b add php 8.3 2024-02-16 15:38:13 +03:00
aslan 00271923b1 add xdebud.ini 2024-02-16 15:25:30 +03:00
aslan 6e7ed94654 add Docker for deploy 2024-02-16 15:20:54 +03:00
aslan 7d149e8845 Merge pull request 'new design (blue) font added in public/fonts' (#15) from RomanGolienko/Roman_applicant-site:new-design into main
Reviewed-on: http://gitea.mkgtu.ru/aslan/applicant-site/pulls/15
2024-02-16 14:40:47 +03:00
aslan 33bf946ab2 Merge pull request 'new-design' (#14) from RomanGolienko/Roman_applicant-site:new-design into main
Reviewed-on: http://gitea.mkgtu.ru/aslan/applicant-site/pulls/14
2024-02-16 14:21:22 +03:00
aslan 1070d543c5 add ExaminationType resource 2024-02-16 10:43:55 +03:00
aslan d9362477c2 refactoring move to directory Direction 2024-02-16 09:06:48 +03:00
aslan 23033cbb1f refactoring fix unique field slug in Requests 2024-02-15 14:46:35 +03:00
142 changed files with 3393 additions and 333 deletions

24
Dockerfile Normal file
View File

@ -0,0 +1,24 @@
# 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}

48
Dockerfile.dev Normal file
View File

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

View File

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

View File

@ -0,0 +1,105 @@
<?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

@ -0,0 +1,72 @@
<?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

@ -0,0 +1,72 @@
<?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

@ -0,0 +1,70 @@
<?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,6 +93,9 @@ class DirectionController extends Controller
public function destroy(Direction $direction): RedirectResponse public function destroy(Direction $direction): RedirectResponse
{ {
if ($direction->entranceExaminations()->exists()) {
return back();
}
$direction->delete(); $direction->delete();
return redirect()->route('directions.index'); return redirect()->route('directions.index');
} }

View File

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

View File

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

View File

@ -0,0 +1,25 @@
<?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

@ -0,0 +1,23 @@
<?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

@ -0,0 +1,23 @@
<?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

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

View File

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

View File

@ -0,0 +1,25 @@
<?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

@ -0,0 +1,33 @@
<?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

@ -0,0 +1,33 @@
<?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

@ -0,0 +1,33 @@
<?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', 'position' => 'required|int|numeric|max:255',
'name' => 'required|string|max:255|unique:departments,name', 'name' => 'required|string|max:255|unique:departments,name',
'description' => 'string', 'description' => 'string',
'slug' => 'required|string|max:255', 'slug' => 'required|string|max:255|unique:departments,slug',
'faculty_id' => 'required|numeric|int|max:1000', 'faculty_id' => 'required|numeric|int|max:1000',
]; ];
} }

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -0,0 +1,42 @@
<?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

@ -0,0 +1,25 @@
<?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');
}
}

25
app/Models/Subject.php Normal file
View File

@ -0,0 +1,25 @@
<?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

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

View File

@ -0,0 +1,20 @@
<?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

@ -0,0 +1,18 @@
<?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

@ -0,0 +1,18 @@
<?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

@ -0,0 +1,18 @@
<?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

@ -0,0 +1,25 @@
<?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

@ -0,0 +1,25 @@
<?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

@ -0,0 +1,31 @@
<?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

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

View File

@ -0,0 +1,40 @@
<?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

@ -0,0 +1,34 @@
<?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

@ -0,0 +1,33 @@
<?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

@ -0,0 +1,28 @@
<?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,7 +3,8 @@
"type": "module", "type": "module",
"scripts": { "scripts": {
"dev": "vite", "dev": "vite",
"build": "vite build" "build": "vite build",
"prod": "vite build"
}, },
"devDependencies": { "devDependencies": {
"@popperjs/core": "^2.11.6", "@popperjs/core": "^2.11.6",

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
public/img/faculties/1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

BIN
public/img/faculties/10.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

BIN
public/img/faculties/11.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

BIN
public/img/faculties/12.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

BIN
public/img/faculties/13.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

BIN
public/img/faculties/2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

BIN
public/img/faculties/3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

BIN
public/img/faculties/4.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

BIN
public/img/faculties/5.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

BIN
public/img/faculties/6.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

BIN
public/img/faculties/7.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

BIN
public/img/faculties/8.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

BIN
public/img/faculties/9.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 175 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 141 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

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