Вывод к четвертому разделу

На основании приведенных данных можно сделать вывод, что при правильной организации работы компании-провайдера будет несложно получить достаточное количество абонентов и обеспечить хорошую стабильную прибыль. Но перед реализацией проекта крайне необходимо провести детальный анализ конъюнктуры рынка, чтобы определиться, в каком направлении следует действовать для обеспечения максимально эффективного результата.

Предоставление доступа к сети Интернет требует значительных капиталовложений, хороших знаний в данной сфере и ответственного отношения к каждому этапу – от разработки бизнес-плана до ввода в эксплуатацию узла связи. Этот рынок еще не перенасыщен, а множество объективных факторов способствует его активному развитию. Соблюдение описанных выше рекомендаций поможет легко занять свою нишу и быстро расширить свой бизнес.

 

ЗАКЛЮЧЕНИЕ

При выполнении выпускной квалификационной работы выполнено проектирование локальной вычислительной сети интернет-провайдера, веб-приложения «Учет абонентов» и рассмотрена экономическая часть проекта.

При проектировании информационной системы были построены функциональные модели (IDEF0, IDEF3, DFD), а также модели UML (Use Case, последовательности, классов, активности, состояний, компонентов). Все схемы разработаны с помощью Microsoft Visio, программы создания всевозможных видов схем и диаграмм.

В ходе работы была изучена теория по проектированию информационных систем, источники информации представлены в библиографическом списке

Таким образом, в результате работы над выпускной квалификационной работы спроектирована информационная система. Её проектирование предназначено для дальнейшей технической разработки локальной вычислительной сети инфраструктуры интернет-провайдера с учет расходов на внедрение проекта и расчета прибыли после ввода в эксплуатацию.

В данной работе была разработана информационно-аналитическая система, позволяющая структурировать, хранить и оптимально использовать имеющуюся информацию.

Приложение А

 

В данном приложении приведены пояснения к разделу «Разработка моделей данных». В приложении приведено содержание файлов миграции основных классов моделей данных, а также код формирования самих классов.

Migration

Schema::create('abonents', function (Blueprint $table) {

$table->id();

$table->string('name');

$table->string('patronymic');

$table->string('surname');

$table->date('date');

$table->string('phone_number');

$table->timestamps();

});

public function up()

{

Schema::create('passports', function (Blueprint $table) {

//$table->increments('id');

$table->id();

$table->string('series');

$table->string('number');

$table->string('issued');

$table->string('date_of_issue');

$table->timestamps();

});

}

public function up()

{

Schema::create('addresses', function (Blueprint $table) {

//$table->increments('id');

$table->id();

$table->string('сity');

$table->string('street');

$table->string('house');

$table->string('apartment');

$table->string('entrance');

$table->string('floor');

$table->timestamps();

});

}

public function up()

{

Schema::create('tariffs', function (Blueprint $table) {

$table->id();

$table->string('name');

$table->string('speed');

$table->string('price');

$table->timestamps();

});

}

public function up()

{

Schema::create('contracts', function (Blueprint $table) {

$table->id();

$table->string('data_contract');

$table->index('abonent_id','сontracts_abonent_idx');

$table->index('passport_id','сontracts_passport_idx');

$table->index('address_id','сontracts_address_idx');

$table->index('tariff_id','сontracts_tariff_idx');

$table->foreignIdFor(\App\Models\Abonent::class)->default()->constrained('abonents')->cascadeOnDelete()->cascadeOnUpdate();

$table->foreignIdFor(\App\Models\Passport::class)->default()->constrained('passports')->cascadeOnDelete()->cascadeOnUpdate();

$table->foreignIdFor(\App\Models\Address::class)->default()->constrained('addresses')->cascadeOnDelete()->cascadeOnUpdate();

$table->foreignIdFor(\App\Models\Tariff::class)->default()->constrained('tariffs')->cascadeOnDelete()->cascadeOnUpdate();

$table->timestamps();

});

}

Controller

class AbonentController extends Controller

{

public function create()

{

return view('abonent', [

'abonent' => [],

]);

}

// Добавление в пользователя в базу данных Abonent

public function store(Request $request)

{

$abonent=Abonent::create($request->all());

$passport=Passport::create($request->all());

$address=Address::create($request->all());

Contract::query()->create([

'data_contract'=>'data_contract',

'abonent_id'=>$abonent->id,

'passport_id'=>$passport->id,

'address_id'=>$address->id,

//'tariff_id'=>$request->id,

]);

// Получение данных из запроса

$data = $request->all();

// Создание нового экземпляра модели

$contract = Contract::create($data);

// Получение связанных моделей

$abonent = Abonent::find($data['abonent_id']);

$passport = Passport::find($data['passport_id']);

$address = Address::find($data['address_id']);

$tariff = Tariff::find($data['tariff_id']);

// Установка связей

$contract->abonent()->attach($abonent);

$contract->passport()->attach($passport);

$contract->address()->attach($address);

$contract->tariff()->attach($tariff);

// Сохранение модели

$contract->save();

return response()->json($contract, 201);

return redirect()->route('abonent.create')->with('success', 'Контактные данные добавлены');

}

// Отображение всех пользователей с базы даннных Abonent

public function index()

{

$abonents = Abonent::all();

return view('search',compact('abonents'));

//dd($abonent);

}

// Поиск по базе данных Abonent

public function searchData(Request $request){

$s =$request->s;

$abonents = Abonent::query()->where('name', 'LIKE', "%{$s}%")->orderBy('name')->get();

return view('search',compact('abonents'));

}

public function allData(Request $request)

{

$s =$request->s;

$abonents = DB::table('contracts')

->join('abonents', 'abonents.id', '=', 'contracts.abonent_id')

->join('passports', 'passports.id', '=', 'contracts.passport_id')

->join('addresses', 'addresses.id', '=', 'contracts.address_id')

->select('contracts.id','abonents.name','abonents.patronymic','abonents.surname','abonents.date','abonents.phone_number',

'passports.series','passports.number','passports.issued','passports.date_of_issue',

'addresses.сity','addresses.street','addresses.house','addresses.apartment','addresses.entrance','addresses.floor',)

//->where('contracts.id', '=', 2)

//->where('contracts.id', 'LIKE', "%{$s}%")->orderBy('id')

->get();

return view('edit',compact('abonents'));

}

public function edit(Abonent $abonent)

{

}

public function update(Request $request, Abonent $abonent)

{

$abonent->update($request->all());

($abonent->animal()->count()) ?

$abonent->animal()->update($request->only('name_animal')) : $abonent->animal()->create($request->only('name_animal'));

}

public function destroy(Abonent $abonent)

{

$abonent->contract()->delete();

$abonent->delete();

return redirect()->route('abonent');

}

}

Route::view('/', 'welcome')->name('welcome');

Route::middleware('guest')->group(function () {

Route::get('/register', [RegisterController::class, 'create'])

->name('register');

Route::post('/register', [RegisterController::class, 'store']);

Route::get('/login', [LoginController::class, 'create'])

->name('login');

 

Route::post('/login', [LoginController::class, 'store']);

Route::get('/forgot-password', [ForgotPasswordController::class, 'create'])

->name('password.request');

Route::post('/forgot-password', [ForgotPasswordController::class, 'store'])

->name('password.email');

Route::get('/reset-password', [ResetPasswordController::class, 'create'])

->name('password.reset');

Route::post('/reset-password', [ResetPasswordController::class, 'store'])

->name('password.update');

});

Route::middleware('auth')->group(callback: function () {

Route::post('/logout', [LoginController::class, 'destroy'])

->name('logout');

Route::get('/email/verify', [EmailVerificationPromptController::class, '__invoke'])

->name('verification.notice');

Route::get('/email/verify/{id}/{hash}', [VerifyEmailController::class, '__invoke'])

->middleware('signed')

->name('verification.verify');

Route::post('/email/verification-notification', [EmailVerificationNotificationController::class, '__invoke'])

->name('verification.send');

Route::view('/dashboard', 'dashboard')->middleware('verified')

->name('dashboard');

Route::view('/profile', 'profile')

->middleware(['verified', 'password.confirm'])

->name('profile');

Route::get('/confirm-password', [PasswordConfirmationController::class, 'show'])

->name('password.confirm');

Route::post('/confirm-password', [PasswordConfirmationController::class, 'store']);

//Главная страница

Route::view('/index', 'index')->middleware('verified')

->name('index');

//Страница добавления контакта

/* Route::view('/abonent', 'abonent')->middleware('verified')

->name('abonent');*/

Route::get('/abonent', [AbonentController::class, 'create'])

->name('abonent.create');

Route::post('/abonent/store', [AbonentController::class, 'store'])

->name('abonent.store');

Route::get('/abonent/{id}', [\App\Http\Controllers\TariffController::class, 'index'])

->name('abonent.index');

 

//Страница поиска

/*Route::view('/search', 'search')->middleware('verified')

->name('search');*/

//Показать все данные

Route::get('/search', [AbonentController::class, 'index']) //index

->name('search');

Route::get('/search/user', [AbonentController::class, 'searchData'])

->name('search.abonent');

//Изменить данные

Route::get('/search/edit', [AbonentController::class, 'allData'])

->name('edit');

 

//Удалить данные

Route::delete('/search', [AbonentController::class, 'destroy'])

->name('search.destroy');

 

// Статистика сети

Route::view('/stat', 'stat')->middleware('verified')

->name('stat');

 

});

Приложение Б

Рисунок 22 – Форма авторизации аккаунта

Рисунок 23 – Форма регистраций аккаунта

 

Рисунок 24 – Экранная форма добавления нового абонента

Рисунок 25 – Сообщение об успешном добавлений клиента

Рисунок 26 – Экранная форма выдачи абонентской базы и поиска

Рисунок 26 – Вкладка статистика сети

Приложение В

 

Я, Мартюшев Николай Васильевич, автор выпускной квалификационной работы «Проектирование локальной вычислительной сети интернет-провайдера», сообщаю, что мне известно о персональной ответственности автора за разглашение сведений, подлежащих защите законами Российской Федерации о защите объектов интеллектуальной собственности.

Одновременно сообщаю, что:

1. При подготовке к защите (опубликованию) выпускной квалификационной работы не использованы источники (документы, отчеты, диссертации, литература и т.п.), имеющие гриф секретности или «Для служебного пользования» ВятГУ или другой организации.

2. Данная работа не связана (связана) с незавершенными исследованиями или уже с завершенными, но еще официально не разрешенными к опубликованию ВятГУ или другими организациями.

3. Данная работа не содержит (содержит) коммерческую информацию, способную нанести ущерб интеллектуальной собственности ВятГУ или другой организации.

4. Данная работа является (не является) результатом НИР или ОКР, выполняемой по договору с организацией (указать согласие заказчика)

_____________________________________________________________________________

_____________________________________________________________________________

5. В предлагаемом к опубликованию тексте нет данных по незащищенным объектам интеллектуальной собственности других авторов.

6. Согласен на использование результатов своей работы безвозмездно в ВятГУ для учебного процесса, а также на размещение своей работы в электронной информационно-образовательной среде ВятГУ.

7. Использование моей выпускной квалификационной работы в научных исследованиях оформляется в соответствии с законодательством Российской Федерации о защите интеллектуальной собственности.

 

Автор ____________________ _______Мартюшев Н.В._____

(подпись) (И.О. Фамилия)

«____»___________ 20_____ г.

 

Сведения по авторской справке подтверждаю:

И.о. зав. каф. ____________________ _________Ланских Ю.В._______

(подпись) (И.О. Фамилия)

«____»___________ 20_____ г.

 

 

Приложение Г

 

Перечень принятых определений и терминов

 

В настоящей ВКР применяются следующие термины:

ИС – информационная система;

БД – база данных;

ВКР – выпускная квалификационная работа;

ПО – программное обеспечение;

IDEF – Integration Definition for Information Modeling;

DFD – Data Flow Diagram;

UML – Unified Modeling Language.

 

 

Приложение Д

(справочное)

Библиографический список

1. [Электронный ресурс]. - http://svoy-business.com/nachalo-deyatelnosti/biznes-planyi/kak-stat-provayderom-interneta-biznes-plan.html