Файл: Разработка сайта страховой компании «Согласие».pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 24.05.2023

Просмотров: 155

Скачиваний: 5

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Рисунок 8 - Физическая модели базы данных

Пройдемся по сущностям.

Сущность "Pokypkas" предназначена для хранения результатов оформления заявак.

Состоит из:

Id - Уникальный номер таблицы.

Kol - общая цена текущего заказа .

Сущность "Razdels" предназначена для хранения названий разделов. Состоит из:

Id - Уникальный номер таблицы.

RazdelName - Название раздела.

Сущность "Texts" предназначена для хранения описания услуг. Состоит из:

Id - Уникальный номер таблицы.

Id_tovar - Вторичный ключ для связи с таблицей "Tovars" .

TextOp - Описание определенной услуги.

Сущность "Tovars" предназначена для хранения услуг.

Состоит из:

Id - Уникальный номер таблицы.

N - Номер раздела.

TName - Название услуги.

Zena - Цена услуги.

Id_Razdel - Вторичный ключ для связи с таблицей "Razdels" .

Сущность "Users" предназначена для хранения информации о пользователях.

Состоит из:

Id - Уникальный номер таблицы.

UserName - Логин пользователя.

Password - Пароль пользователя.

Email - Электронный адрес.

CreateDate - Дата регистрации.

FirstName - Имя пользователя.

LastName - Фамилия пользователя.

MiddleName - Отчество пользователя.

Status - Статус пользователя(покупатель, менеджер, директор).

В БД пять таблиц и две связи. Основная цель связей на основании выбранного товара получить описания данного товара и раздел, к которому принадлежит товар.

Созданная БД полностью замкнутая и обеспечивает полное функционирования данного приложения.

2 Тестирование

На этом этапе представим доказательства того, что спроектированное ПС работает в соответствии с требованиями. Тест кейсы представим в таблице 2.

Таблица 2 - Таблица тестов программы

ID

Summary

Steps

Expected Result

Да/

Fail

1

Загрузка категорий

1. Запуск программы

Категории сайта

Да

2

Проверка наличия услуг

1. Запуск программы

2. Выбор категории

Наблюдение

услуг

Да

3

Регистрация

1. Запуск программы

2. Главная

3. Выход

4 Зарегистрироваться

5 Ввод данных

Успешное сообщение

Да

4

Проверка корректности ввода

данных при регистрации(на пустоту)

1. Запуск программы

2. Главная

3. Выход

4 Зарегистрироваться

5 Ввод данных

6 Не заполнить поля

Сообщение ошибке

Да

5

Проверка корректности ввода

данных при регистрации(дублирование пароля и Email)

1. Запуск программы

2. Главная

3. Выход

4 Зарегистрироваться

5 Ввод данных

6 Заполнить поля пароль и Email неверно.

Сообщение ошибке

Да

6

Вход нового пользователя

1. Запуск программы

2. Главная

3. Выход

4. Ввод логина и пароля

5. Вход

Вход

Да

7

Просмотр результатов

1. Запуск программы

2. Директор

3. Результаты работы

Просмотр результатов работы

Да

8

Создание менеджера

1. Запуск программы

2. Директор

3. Создать менеджера

4. Заполнения данных

Созданный менеджер

Да

9

Удаление менеджера

1. Запуск программы

2. Директор

3. Удаление менеджера

Удаление

менеджера

Да

10

Создание категории

1. Запуск программы

2. Менеджер

3. Создание категории

4. Заполнения данных

5. Создать

Новая категория

Да

11

Удалить

категорию

1. Запуск программы

2. Менеджер

3. Удаление

Удаление категории

Да

12

Добавление

услуги

1. Запуск программы

2. Менеджер

3. Добавить

4. Добавить услугу

5. Заполнить данные

6. Создать

Новая услуга

Да

13

Оформление услуги

1. Запуск программы

2. Покупатель

3. Выбор категории

4. Выбор услуги

5. Купить

Покупка услуги

Да


3. Инструкция по эксплуатации

Запускаем. Главная страница представим на рисунке 9.

Рисунок 9 - Главная страничка

Описание услуг во вкладке "Описания". Смотрите рисунок 10.

Рисунок 10 - Описание услуг

Проведение авторизации. Путь "Главная - выход". Смотрите рисунок 11.

Рисунок 11 - Авторизация

Далее возможно регистрация. Смотрите рисунок 12.

Рисунок 12 - Регистрация

Если перейти по пути "Пользователь - выбор раздела " можно заказать услуги. Смотрите рисунок 13.

Рисунок 13 - Заказ услуг

Далее рассмотрим страничку "Менеджер". Смотрите рисунок 14.

Рисунок 14 - Страничка менеджера

Далее есть возможность создать раздел услуг, добавить услугу или удалить и то и другое. Смотрите рисунки 15 и 16.

Рисунок 15 - Создание раздела

Рисунок 16 - Добавление услуги

Далее рассмотрим страничку "Директора". Смотрите рисунок 17.

Рисунок 17 - Страничка директора

На этой страничке директор может создать менеджера, удалите менеджера или просмотреть результат своего магазина. Смотрите рисунок 18.

Рисунок 18 - Создание менеджера

Также меню позволяет посетить странички "Новости", "О компании" и Контактная информация. Смотрите рисунки 19, 20 и 21.

Рисунок 19 - Новости

Рисунок 20 - О компании

Рисунок 19 - Контактная информация

Заключение

В процессе выполнения курсовой работы были выполнены все основные задачи курса «Разработка серверных приложений для WEB». В качестве доказательства, будет представлен проект «Сайт страховой компании». Настоящая работа посвящена разработке через тестирование «Сайта страховой компании» на технологии ASP.NET MVC 3 с использованием движка визуализации Razor появившегося в ASP.NET MVC 3.


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

В ходе выполнения работы была изучена технология ASP.NET MVC 3, усовершенствованы навыки Web – разработки, работы с ORM Entity Framework, а так же были приобретены навыки разработки программного обеспечения через тестирование, для управления разработкой использовалась централизованная система контроля версий SVN и клиент для неё Tortoise SVN.

Учитывая простату данного программного комплекса можно сделать вывод, он будет очень перспективен, прост и удобен в поддержке.

Программное средство, может совершенствоваться в течении всего времени его пользования. Разработанное программное средство просто и удобно в использовании, имеет простой и интуитивно-понятный интерфейс.

Список литературы

  1. Фримен, A. ASP.NET МVС 3 для профессионалов /А. Фримен, С. Сандерсон. – Москва: Вильямс, 2012. – 680 с.: ил.
  2. Троелсен, Э. Язык программирования C# 5.0 и платформа.NET 4.5 /Э. Троелсен – Москва: Вильямс, 2013–1312 с.: ил.
  3. Либерти, Д. Программирование на C# /Д. Либерти. – СПб.: Питер, 2009. – 688 с.:ил.
  4. Микелсен, К. Язык программирования C# /К. Микелсен. – ДиаСофт, 2002. – 656 с.:ил.
  5. Информационные системы и технологии. Методические указания по выполнению дипломного проекта для студентов специальностей 1–40 01 02 «Информационные системы и технологии» / сост.: О.И. Наранович. – Барановичи: РИО БарГУ, 2009. – 39 с.
  6. Петзольд, Ч. Программирование для Microsoft Windows на С# /Ч. Петзольд. – М.: Русская редакция, 2010. – 880 с.:ил.
  7. Рихтер, Д. Программирование на платформе Microsoft.NET Framework / Д. Рихтер. – СПб.: Русская редакция, 2012. – 836 с.:ил.
  8. Оформление раздела «Охрана труда» в дипломных проектах: методические указания по выполнению дипломных работ и проектов для студентов специальности 1–27 01 01 Экономика и организация производства; 1–40 01 02 Информационные системы и технологии / сост. Ю.И. Шадид. – Барановичи: РИО БарГУ, 2009. – 12 с.
  9. Троелсен, Э. Язык программирования C# 4.0 и платформа.NET 4.0 /Э. Троелсен – Москва: Вильямс, 2011–1214 с.: ил.

Приложение

using System.Data.Entity; //Прямое подключение к БД

namespace PK.Models

{

public class EFDbcontext : DbContext

{

public EFDbcontext(string connectionString)

{

Database.Connection.ConnectionString = connectionString;

}

public DbSet<User> Users { get; set; }


public DbSet<Razdel> Razdels { get; set; }

public DbSet<Tovar> Tovars { get; set; }

public DbSet<Pokypka> Pokypkas { get; set; }

}

}

using System; //Модуль работы с БД

using System.Collections.Generic;

using System.Configuration;

using System.Linq;

using System.Web.Security;

using System.Data;

namespace PK.Models

{

public class EFUsersRepository

{

private EFDbcontext context;

public EFUsersRepository()

{

context = new EFDbcontext(ConfigurationManager.ConnectionStrings[0].ConnectionString);

}

public IEnumerable<User> GetUsers()//Все данные С БД

{

return context.Users;

}

public User GetUserById(int id) //Выборка данных по ID

{

return context.Users.FirstOrDefault(x => x.Id == id);

}

public User GetUserByStatus(int status) //Выборка данных по роли

{

return context.Users.FirstOrDefault(x => x.Status == status);

}

public User GetUserByName(string userName) //Выборка данных по имени

{

return context.Users.FirstOrDefault(x => x.UserName == userName);

}

public User UserDelete(int id) //Удаление данных по ID

{

User user = context.Users.FirstOrDefault(x => x.Id==id);

context.Entry(user).State = EntityState.Deleted;

context.SaveChanges();

return null;

}

public MembershipUser GetMembershipUserByName(string userName)//Проверка пользователя

{

User user = context.Users.FirstOrDefault(x => x.UserName == userName);

if (user != null)

{

return new MembershipUser(

"CustomMembershipProvider",

user.UserName,

user.Id,

user.Email,

"",

null,

true,

false,

user.CreateDate,

DateTime.Now,

DateTime.Now,

DateTime.Now,

DateTime.Now

);

}

return null;

}

public string GetUserNameByEmail(string email) //Выборка данных по имени и адресу

{

User user = context.Users.FirstOrDefault(x => x.Email == email);

return user != null ? user.UserName : "";

}

public void CreateUser(string userName, string password, string email, string firstName, string lastName, string middleName,int status) //Создать данные

{

var user = new User

{

UserName = userName,

Email = email,

Password = password,

CreateDate = DateTime.Now,

FirstName = firstName,

LastName = lastName,

MiddleName = middleName,

Status=status

};

SaveUser(user);

}

public bool ValidateUser(string userName, string password)//Существование данных

{

User user = context.Users.FirstOrDefault(x => x.UserName == userName);

if (user != null && user.Password == password)

return true;

return false;

}

public void SaveUser(User user) //Сохранить данные

{

if (user.Id == 0)

context.Users.Add(user);

else

context.Entry(user).State = EntityState.Modified;

context.SaveChanges();

}

}

}

Исходный текст модуля моделей данных.

using System;

using System.ComponentModel.DataAnnotations;

using System.Web.Mvc;

using System.Collections.Generic;

namespace PK.Models

{

public class User //модель пользователя

{

public int Id { get; set; }

public string UserName { get; set; }

public string Password { get; set; }

public string Email { get; set; }

public DateTime CreateDate { get; set; }

public string FirstName { get; set; }

public string LastName { get; set; }

public string MiddleName { get; set; }

public int Status { get; set; }

}

public class LoginViewModel//модель авторизации пользователя

{

[Required(ErrorMessage="*")]

public string UserName { get; set;}

[Required(ErrorMessage = "*")]


[DataType(DataType.Password)]

public string Password { get; set; }

}

public class RegisterViewModel//модель регистрации пользователя

{

[Required(ErrorMessage = "*")]

public string UserName { get; set; }

[Required(ErrorMessage = "*")]

[DataType(DataType.Password)]

public string Password { get; set; }

[Required(ErrorMessage = "*")]

[DataType(DataType.Password)]

[Compare("Password", ErrorMessage = "Пароль подтвержден неверно")]

public string ConfirmPassword { get; set; }

[Required(ErrorMessage = "*")]

[RegularExpression(@"^[a-zA-Z0-9.-]{1,20}@[a-zA-Z0-9]{1,20}\.[A-Za-z]{2,4}",

ErrorMessage = "Неверный формат Email")]

public string Email { get; set; }

[Required(ErrorMessage = "*")]

[RegularExpression(@"^[a-zA-Z0-9.-]{1,20}@[a-zA-Z0-9]{1,20}\.[A-Za-z]{2,4}",

ErrorMessage = "Неверный формат Email")]

[Compare("Email", ErrorMessage = "Email подтвержден неверно")]

public string ConfirmEmail { get; set; }

[Required(ErrorMessage = "*")]

public string FirstName { get; set; }

[Required(ErrorMessage = "*")]

public string LastName { get; set; }

[Required(ErrorMessage = "*")]

public string MiddleName { get; set; }

}

public class menViewModel//модель создания менеджера пользователя

{

[Required(ErrorMessage = "*")]

public string UserName { get; set; }

[Required(ErrorMessage = "*")]

[DataType(DataType.Password)]

public string Password { get; set; }

[Required(ErrorMessage = "*")]

[RegularExpression(@"^[a-zA-Z0-9.-]{1,20}@[a-zA-Z0-9]{1,20}\.[A-Za-z]{2,4}",

ErrorMessage = "Неверный формат Email")]

public string Email { get; set; }

[Required(ErrorMessage = "*")]

public string FirstName { get; set; }

[Required(ErrorMessage = "*")]

public string LastName { get; set; }

[Required(ErrorMessage = "*")]

public string MiddleName { get; set; }

[Required(ErrorMessage = "*")]

public int Status { get; set; }

}

public class Razdel//модель раздела техники

{

public int Id { get; set; }

public string RazdelName { get; set; }

}

public class ViewRazdel//модель создания нового раздела

{

[Required(ErrorMessage = "*")]

public string RazdelName { get; set; }

}

public class Tovar//модель товара техники

{

public int Id { get; set; }

public int IdRazd { get; set; }

public int N { get; set; }

public string TName { get; set; }

public int Zena { get; set; }

}

public class ViewTovar//модель создания нового товара

{

[Required(ErrorMessage = "*")]

public int IdRazd { get; set; }

[Required(ErrorMessage = "*")]

public int N { get; set; }

[Required(ErrorMessage = "*")]

public string TName { get; set; }

[Required(ErrorMessage = "*")]

public int Zena { get; set; }

}

public class ViewPakypka

{

}

public class Pokypka

{

public int Id { get; set; }

public int Kol { get; set; }

}

}

Исходный текст модуля обработки запросов клиента на сервере.

using System.Linq;

using System.Web.Mvc;

using System.Web.Security;

using PK.Models;

namespace PK.Controllers

{

public class HomeController : Controller

{

private DataManager data;

public ActionResult Index()

{

ViewBag.Title = "Мой первый магазин!!!";

EFRazdelRepository razd = new EFRazdelRepository();

ViewBag.dan = razd.GetRazdel();

return View();

}

[HttpGet]

public ActionResult next(int id)

{

EFTovarRepository tovar = new EFTovarRepository();

ViewBag.dann = tovar.GetTovar().Where(x => x.IdRazd == id);

return View();

}

[Authorize(Users = "tank")]

public ActionResult direct_admin()