Разработка веб-приложения для территориальной государственной организации

Заказать уникальную курсовую работу
Тип работы: Курсовая работа
Предмет: Программирование
  • 48 48 страниц
  • 13 + 13 источников
  • Добавлена 21.02.2024
1 496 руб.
  • Содержание
  • Часть работы
  • Список литературы
СОДЕРЖАНИЕ

ВВЕДЕНИЕ 4
1.Анализ предметной области 6
1.1. Анализ задач автоматизации использования Web-приложений в работе компаний 6
1.2. Общая характеристика Отделения социального Фонда России 8
1.3. Функциональная модель использования сайтов в технологии документооборота 11
2. Проектная часть 20
2.1. Информационная модель технологии документооборота 20
2.2. Моделирование в UML 24
2.3. Описание разработанного приложения 30
2.5. Описание средств обеспечения информационной безопасности 31
2.4. Тестирование разработанной системы 36
ЗАКЛЮЧЕНИЕ 40
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 41

Фрагмент для ознакомления

Описан прототип разработанного программного решения, по результатам тестирования которого показано соответствие поставленным задачам. Использование разработанного приложения предполагает необходимость соблюдения требований в области защиты информации, что включает использование как специализированного ПО, принятие мер организационного характера в рамках эксплуатации системы. Также предполагается использование системы разграничения доступа к режимам работы ПО.ЗАКЛЮЧЕНИЕВ рамках данной работы создана система автоматизации документооборота в формате приложения для использования в деятельности средней школы. В аналитической части работы проведён анализ проблематики использования систем работы с документами. Построена функциональная модель, в которой рассмотрена структура информационных потоков, определены недостатки организации бизнес-процессов, характерные для отсутствия специализированного программного решения. Показано, что в отсутствие использования системы автоматизации наблюдаются потери оперативности при определении исполнителей распорядительных документов, при формировании сводной отчетности по списку документов, находящихся на исполнении. Возможны ошибки, связанные с отправкой документов специалистам профиля, не соответствующего направленности документов.Проведен анализ существующих решений в области автоматизации документооборота. Показано, что большая их часть соответствует типовой технологии работы с документами, но не учитывает специфику деятельности образовательных учреждений. В проектной части работы определен перечень информационных объектов, определены их свойства, установлены связи между ними. Далее проведено построение логической и физической моделей данных, на основе которых проведено проектирование прототипа программного решения в области автоматизации документооборота, проведено обоснование выбора средства разработки, описание пользовательских сценариев и ролевой модели доступа к системе. СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВНетесова, О. Ю. Информационные системы и технологии в экономике: учебное пособие для вузов / О. Ю. Нетесова. — 4-е изд., испр. и доп. — Москва : Издательство Юрайт, 2023. — 178 с.Аврунев О. Е., Стасышин В. М. Бизнес-информатика. [Текст] учебное пособие: / О. Е. Аврунев, В. М. Стасышин. - Новосибирск: Изд-во НГТУ, 2018. – 121с.Рыжко, А. Л. Информационные системы управления производственной компанией: учебник для вузов / А. Л. Рыжко, А. И. Рыбников, Н. А. Рыжко. — Москва : Издательство Юрайт, 2023. — 354 с. Бабиева Н. А., Раскин Л. И. Автоматизация ИТ-сервисов на предприятиях. [Текст] : учебно-методическое пособие / Н. А. Бабиева, Л. И. Раскин. – М.: Инфра-М, 2018. – 208 с.Зараменских, Е. П. Информационные системы: управление жизненным циклом : учебник и практикум / Е. П. Зараменских. — 2-е изд., перераб. и доп. — Москва : Издательство Юрайт, 2023. — 497 с. Баранчиков А. И. Управление ИТ-инфраструктурой организаций [Текст] : учебник / А. И. Баранчиков. - Рязань: РГУ, 2019. - 219 с.Беляева Т. М. Информационные технологии в юридической деятельности[Текст] : учебник /Беляева Т. М., Кудинов А. Т., Пальянова Н.В. - Москва: Проспект, 2018. - 349 с. Советов Б. Я.  Базы данных: учебник для вузов / Б. Я. Советов, В. В. Цехановский, В. Д. Чертовской. — 3-е изд., перераб. и доп. — Москва : Издательство Юрайт, 2023. — 420 с. Бурый А. С. Организация службы технической поддержки [Текст] : учебник / А.С. Бурый. - Москва: Горячая линия - Телеком, 2016. - 128 с. Васильков, А.В. Информационные системы и их безопасность [Текст] : Учебное пособие / А.В. Васильков, А.А. Васильков, И.А. Васильков. - М.: Форум, 2018. - 528 c.Коршунов М. К. Экономика и управление: применение информационных технологий: учебное пособие для вузов / М. К. Коршунов. — 2-е изд. — Москва: Издательство Юрайт, 2022. — 110 с.Гантц И. С. Разработка конфигураций в среде "1С: Предприятие»: учебно-методическое пособие / И. С. Гантц. - Москва : МИРЭА - Российский технологический университет, 2020. - 63 с.Даева С. Г. Основы разработки корпоративных информационных систем на платформе 1С: Предприятие 8.3: учебно-методическое пособие / Даева С. Г. - Москва : РТУ МИРЭА, 2020. – 562с.ПРИЛОЖЕНИЕФрагменты программного кодаfrom django.contrib.auth.decorators import login_requiredfrom django.contrib.auth.mixins import LoginRequiredMixinfrom django.contrib.auth.views import LoginView, LogoutViewfrom django.db.models import Countfrom django.shortcuts import render, redirectfrom django.urls import reverse_lazyfrom django.views.generic import CreateView, TemplateView, UpdateViewfrom .models import *from .forms import *class IncomingDocumentsView(TemplateView):template_name = 'main/incoming_doc.html' def get_queryset(self): return IncomingDocuments.objects.filter(pk=self.kwargs['pk']) def get_context_data(self, *, object_list=None, **kwargs): context = super().get_context_data(**kwargs) user = AdvUser.objects.get(username=self.request.user) if user.status == 'Делопроизводитель': context['docs'] = IncomingDocuments.objects.all() else: context['docs'] = IncomingDocuments.objects.filter(worker=self.request.user).filter(status='вработе') return contextclass IncomingDocumentsUpdateView(UpdateView): model = IncomingDocuments fields = ['status']template_name_suffix = '_update_form'template_name = 'main/update_incoming_doc.html'success_url = reverse_lazy('incoming_doc') def get_context_data(self, *, object_list=None, **kwargs): context = super().get_context_data(**kwargs) return contextclass IncomingDocumentsCreateView(CreateView): model = IncomingDocumentstemplate_name = 'main/create_incoming_doc.html'form_class = IncomingDocumentsCreateFormsuccess_url = reverse_lazy('incoming_doc') def get_context_data(self, *, object_list=None, **kwargs): context = super().get_context_data(**kwargs) return contextclass SenderView(TemplateView):template_name = 'main/sender.html' def get_context_data(self, *, object_list=None, **kwargs): context = super().get_context_data(**kwargs) context['senders'] = Sender.objects.all() return contextclass SenderCreateView(CreateView): model = Sendertemplate_name = 'main/create_sender.html'form_class = SenderCreateFormsuccess_url = reverse_lazy('sender') def get_context_data(self, *, object_list=None, **kwargs): context = super().get_context_data(**kwargs) return contextclass DocumentTypeView(TemplateView):template_name = 'main/doc_type.html' def get_context_data(self, *, object_list=None, **kwargs): context = super().get_context_data(**kwargs) context['types'] = DocumentType.objects.all() return contextclass DocumentTypeCreateView(CreateView): model = DocumentTypetemplate_name = 'main/create_doc_type.html'form_class = DocumentTypeCreateFormsuccess_url = reverse_lazy('doc_type') def get_context_data(self, *, object_list=None, **kwargs): context = super().get_context_data(**kwargs) return contextclass OtchetView(TemplateView):template_name = 'main/otchet.html' def get_context_data(self, *, object_list=None, **kwargs): context = super().get_context_data(**kwargs) user = AdvUser.objects.get(username=self.request.user) if user.status == 'Делопроизводитель': context['docs'] = Otchet.objects.all() else: context['docs'] = Otchet.objects.filter(user=self.request.user) return contextclass OtchetCreateView(CreateView):template_name = 'main/create_otchet.html' model = Otchetform_class = OtchetCreateFormsuccess_url = reverse_lazy('otchet') def get_context_data(self, *, object_list=None, **kwargs): context = super().get_context_data(**kwargs) return contextclass UndoneDocuments(TemplateView):template_name = 'main/undone_documents.html' def get_context_data(self, *, object_list=None, **kwargs): context = super().get_context_data(**kwargs) context['docs'] = IncomingDocuments.objects.filter(status='вработе') return contextclass DocumentByType(TemplateView):template_name = 'main/doc_by_type.html' def get_context_data(self, *, object_list=None, **kwargs): context = super().get_context_data(**kwargs) context['result'] = IncomingDocuments.objects.values('document_type_id__name').annotate(total=Count('document_type')) return contextclass DocumentByWorker(TemplateView):template_name = 'main/doc_by_worker.html' def get_context_data(self, *, object_list=None, **kwargs): context = super().get_context_data(**kwargs) context['result'] = IncomingDocuments.objects.filter(status='вработе').values('worker__username').annotate(total=Count('worker')) return contextclass MainPage(TemplateView):template_name = 'main/index.html' def get_context_data(self, *, object_list=None, **kwargs): context = super().get_context_data(**kwargs) return contextclass RegistrationFormView(CreateView): model = AdvUserform_class = AdvUserCreationFormtemplate_name = 'main/registration.html'success_url = reverse_lazy('login') def post(self, request, *args, **kwargs): form = AdvUserCreationForm(request.POST) if form.is_valid(): user = form.save(commit=False)user.save() return redirect('login') def get_context_data(self, *, object_list=None, **kwargs): context = super().get_context_data(**kwargs)returncontextclass MainLoginView(LoginView):template_name = 'main/login.html'success_url = reverse_lazy('index') def get_success_url(self): return self.success_urlclass MainLogoutView(LoginRequiredMixin, LogoutView):template_name = 'main/logout.html'class RegistrationForm(forms.ModelForm): email = forms.EmailField(required=True, label='Email') password1 = forms.CharField(label='Пароль', widget=forms.PasswordInput, help_text=password_validation.password_validators_help_text_html()) password2 = forms.CharField(label='Пароль(повторно)', widget=forms.PasswordInput,help_text="Введите тот же самый пароль для проверки")def clean_password1(self): password1 = self.cleaned_data['password1'] if password1:password_validation.validate_password(password1) return password1 def clean(self): super().clean() email = self.cleaned_data['email'] password1 = self.cleaned_data['password1'] password2 = self.cleaned_data['password2'] if AdvUser.objects.filter(email=email).exists(): errors = {'email': ValidationError( 'Почтаужезарегистрирована')} raise ValidationError(errors) if password1 and password2 and password1 != password2: errors = {'password2': ValidationError( 'Введенныеданныенесовпадают', code='password_mismatch')} raise ValidationError(errors) class Meta: model = AdvUser fields = ('username', 'email', 'password1', 'password2', 'status', 'job_title', 'phone',) def save(self, commit=True): user = super().save(commit=False)user.set_password(self.cleaned_data['password1'])user.is_active = Falseuser.is_activated = False if commit:user.save()user_registrated.send(RegistrationForm, instance=user) return userclass IncomingDocumentsCreateForm(ModelForm): class Meta: model = IncomingDocuments fields = ('document_type', 'sender', 'worker', 'term', 'description', 'file')class SenderCreateForm(ModelForm): class Meta: model = Sender fields = ('name', 'address', 'phone')class DocumentTypeCreateForm(ModelForm): class Meta: model = DocumentType fields = ('name',)class OtchetCreateForm(ModelForm):classMeta:model = Otchet fields = ('user', 'description', 'recipient', 'file',)class AdvUser(AbstractUser): CHOOSE = ( ('Делопроизводитель', 'Делопроизводитель'), ('Специалист', 'Специалист'), ) status = models.CharField('статус', max_length=512, choices=CHOOSE, default='Специалист')job_title = models.CharField('Должность', max_length=512) phone = models.CharField('Номертелефона', max_length=512) class Meta:verbose_name = 'Сотрудник'verbose_name_plural = 'Сотрудники' def __str__(self): return self.username def get_current_user(request): user = request.user return user def delete(self, *args, **kwargs): for bb in self.additionalimage_set.all():bb.delete()super().delete(*args, **kwargs) class Meta: passclass Sender(models.Model): name = models.CharField('Отправитель', max_length=512) address = models.CharField('Адрес', max_length=512) phone = models.CharField('номертелефона', max_length=512) class Meta:verbose_name = 'Отправитель'verbose_name_plural = 'Отправители' def __str__(self): return self.nameclass DocumentType(models.Model): name = models.CharField('Виддокумента', max_length=512) class Meta:verbose_name = 'Виддокумента'verbose_name_plural = 'Видыдокументов' def __str__(self): return self.nameclass Otchet(models.Model): user = models.ForeignKey(AdvUser, on_delete=models.CASCADE, verbose_name='Сотрудник') recipient = models.ForeignKey(Sender, on_delete=models.CASCADE, verbose_name='Получатель') description = models.TextField('Описание') date = models.DateTimeField('Дата', default=timezone.now) file = models.FileField('Прикрепленныйфайл', upload_to='filesInput/output_files')class IncomingDocuments(models.Model): STATUS_CHOICE = (('в работе', 'в работе'), ('исполнен', 'исполнен'),)document_type = models.ForeignKey(DocumentType, on_delete=models.CASCADE, verbose_name='Виддокумента') sender = models.ForeignKey(Sender, on_delete=models.CASCADE, verbose_name='Отправитель') worker = models.ForeignKey(AdvUser, on_delete=models.CASCADE, verbose_name='Сотрудник') status = models.CharField('Статус', max_length=512, choices=STATUS_CHOICE, default='в работе') term = models.PositiveIntegerField('Срок(в днях)') description = models.TextField('Описание') date = models.DateTimeField('Дата', default=timezone.now) file = models.FileField('Прикрепленныйфайл', upload_to='filesInput/input_files') class Meta:verbose_name = 'Входящийдокумент'verbose_name_plural = 'Входящиедокументы'

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

1. Нетесова, О. Ю. Информационные системы и технологии в экономике: учебное пособие для вузов / О. Ю. Нетесова. — 4-е изд., испр. и доп. — Москва : Издательство Юрайт, 2023. — 178 с.
2. Аврунев О. Е., Стасышин В. М. Бизнес-информатика. [Текст] учебное пособие: / О. Е. Аврунев, В. М. Стасышин. - Новосибирск: Изд-во НГТУ, 2018. – 121с.
3. Рыжко, А. Л. Информационные системы управления производственной компанией: учебник для вузов / А. Л. Рыжко, А. И. Рыбников, Н. А. Рыжко. — Москва : Издательство Юрайт, 2023. — 354 с.
4. Бабиева Н. А., Раскин Л. И. Автоматизация ИТ-сервисов на предприятиях. [Текст] : учебно-методическое пособие / Н. А. Бабиева, Л. И. Раскин. – М.: Инфра-М, 2018. – 208 с.
5. Зараменских, Е. П. Информационные системы: управление жизненным циклом : учебник и практикум / Е. П. Зараменских. — 2-е изд., перераб. и доп. — Москва : Издательство Юрайт, 2023. — 497 с.
6. Баранчиков А. И. Управление ИТ-инфраструктурой организаций [Текст] : учебник / А. И. Баранчиков. - Рязань: РГУ, 2019. - 219 с.
7. Беляева Т. М. Информационные технологии в юридической деятельности[Текст] : учебник /Беляева Т. М., Кудинов А. Т., Пальянова Н.В. - Москва: Проспект, 2018. - 349 с.
8. Советов Б. Я. Базы данных: учебник для вузов / Б. Я. Советов, В. В. Цехановский, В. Д. Чертовской. — 3-е изд., перераб. и доп. — Москва : Издательство Юрайт, 2023. — 420 с.
9. Бурый А. С. Организация службы технической поддержки [Текст] : учебник / А.С. Бурый. - Москва: Горячая линия - Телеком, 2016. - 128 с.
10. Васильков, А.В. Информационные системы и их безопасность [Текст] : Учебное пособие / А.В. Васильков, А.А. Васильков, И.А. Васильков. - М.: Форум, 2018. - 528 c.
11. Коршунов М. К. Экономика и управление: применение информационных технологий: учебное пособие для вузов / М. К. Коршунов. — 2-е изд. — Москва: Издательство Юрайт, 2022. — 110 с.
12. Гантц И. С. Разработка конфигураций в среде "1С: Предприятие»: учебно-методическое пособие / И. С. Гантц. - Москва : МИРЭА - Российский технологический университет, 2020. - 63 с.
13. Даева С. Г. Основы разработки корпоративных информационных систем на платформе 1С: Предприятие 8.3: учебно-методическое пособие / Даева С. Г. - Москва : РТУ МИРЭА, 2020. – 562с.