Диплом: Автоматизация управления проектами в студии APPCRAFT

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
109
15. Маклаков С. В. Моделирование бизнес-процессов с AllFusion
Process Modeler (BPwin 4.1) / С.В. Маклаков. – М. : ДИАЛОГ-МИФИ, 2013. –
340 c.
16. Маклаков С.В. Создание информационных систем с AllFusion
Modeling Suite / С.В. Маклаков. – М. : ДИАЛОГ-МИФИ, 2013. – 512 c.
17. Маклаков С.В. BPwin и Erwin. CASE-средства разработки
информационных систем / С.В. Маклаков. – М. : ДИАЛОГ–МИФИ, 2014. – 369
c.
18. Тельнов, Ю.Ф. Информационные системы и технологии.
Information System and Technologies: науч. издание под ред. Тельнова Ю. Ф. –
М: Юнити-Дана,2012 – 303 с.
19. Флэнаган, Д. Javascript. Подробное руководство / Д. Флэнаган : пер
с англ. – М. : Символ-Плюс, 2013. – 1080 с.
110
ПРИЛОЖЕНИЕ
Приложение 1 SQL-скрипт создания базы данных
CREATE TABLE Comment
( id AUTOINCREMENT INTEGER NOT NULL,
message INTEGER NOT NULL,
created DATE NOT NULL,
userid INTEGER NOT NOT NULL,
projectid INTEGER NOT NOT NULL,
taskid INTEGER NOT NOT NULL,
PRIMARY KEY (id));
CREATE TABLE Files
( id AUTOINCREMENT INTEGER NOT NULL,
caption VARCHAR(20) NOT NULL,
created DATE NOT NULL,
taskid INTEGER NOT NOT NULL,
userid INTEGER NOT NOT NULL,
url VARCHAR(20) NOT NULL,
PRIMARY KEY (id));
CREATE TABLE Project
( id AUTOINCREMENT INTEGER NOT NULL,
caption VARCHAR(20) NOT NULL,
status VARCHAR(20) NOT NULL,
created DATE NOT NULL,
PRIMARY KEY (id));
CREATE TABLE ProjectUser
( id AUTOINCREMENT INTEGER NOT NULL,
111
projectid INTEGER NOT NOT NULL,
userid INTEGER NOT NOT NULL,
roleid INTEGER NOT NOT NULL,
created DATE NOT NULL,
PRIMARY KEY (id));
CREATE TABLE Role
( id AUTOINCREMENT INTEGER NOT NULL,
caption VARCHAR(20) NOT NULL,
PRIMARY KEY (id));
CREATE TABLE Staff
( id AUTOINCREMENT INTEGER NOT NULL,
caption VARCHAR(20) NOT NULL,
PRIMARY KEY (id));
CREATE TABLE Stage
( id AUTOINCREMENT INTEGER NOT NULL,
caption VARCHAR(20) NOT NULL,
projectid INTEGER NOT NOT NULL,
started DATE NOT NULL,
ended DATE NOT NULL,
priority INTEGER NOT NULL,
PRIMARY KEY (id));
CREATE TABLE Task
( id AUTOINCREMENT INTEGER NOT NULL,
caption VARCHAR(20) NOT NULL,
stageid INTEGER NOT NOT NULL,
typeid INTEGER NOT NOT NULL,
started DATE NOT NULL,
112
finished DATE NOT NULL,
ended DATE NOT NULL,
description VARCHAR(20) NOT NULL,
tries INTEGER NOT NULL,
priority INTEGER NOT NULL,
PRIMARY KEY (id));
CREATE TABLE TypeTask
( id AUTOINCREMENT INTEGER NOT NULL,
caption VARCHAR(20) NOT NULL,
PRIMARY KEY (id));
CREATE TABLE User
( id AUTOINCREMENT INTEGER NOT NULL,
email VARCHAR(20) NOT NULL,
fio VARCHAR(20) NOT NULL,
password VARCHAR(20) NOT NULL,
status VARCHAR(20) NOT NULL,
staffid INTEGER NOT NOT NULL,
PRIMARY KEY (id));
ALTER TABLE Comment ADD FOREIGN KEY R_25 (userid) REFERENCES
User(id);
ALTER TABLE Comment ADD FOREIGN KEY R_26 (projectid) REFERENCES
Project(id);
ALTER TABLE Comment ADD FOREIGN KEY R_29 (taskid) REFERENCES
Task(id);
ALTER TABLE Files ADD FOREIGN KEY R_27 (taskid) REFERENCES
Task(id);
ALTER TABLE Files ADD FOREIGN KEY R_28 (userid) REFERENCES
User(id);
ALTER TABLE ProjectUser ADD FOREIGN KEY R_22 (projectid)
REFERENCES Project(id);
113
ALTER TABLE ProjectUser ADD FOREIGN KEY R_23 (userid) REFERENCES
User(id);
ALTER TABLE ProjectUser ADD FOREIGN KEY R_24 (roleid) REFERENCES
Role(id);
ALTER TABLE Stage ADD FOREIGN KEY R_18 (projectid) REFERENCES
Project(id);
ALTER TABLE Task ADD FOREIGN KEY R_19 (stageid) REFERENCES
Stage(id);
ALTER TABLE Task ADD FOREIGN KEY R_21 (typeid) REFERENCES
TypeTask(id);
ALTER TABLE User ADD FOREIGN KEY R_17 (staffid) REFERENCES
Staff(id);
114
Приложение 2
Исходный код программных модулей
<?php
namespace AppBundle\Controller;
use AppBundle\Form\Type\LoginFormType;
use AppBundle\Form\Type\ProfileFormType;
use AppBundle\Controller\InitializableController;
use AppBundle\Entity\Role;
use AppBundle\Entity\User;
use AppBundle\Form\Type\RegistrationFormType;
use AppBundle\Form\Type\RemindPasswordFormType;
use Sensio\Bundle\FrameworkExtraBundle\Configuration as Config;
use Symfony\Component\Form\FormError;
use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
use
Symfony\Component\Security\Core\Authentication\Token\UsernamePassw
ordToken;
use Symfony\Component\Security\Core\Encoder\UserPasswordEncoder;
use Symfony\Component\Security\Core\Security;
require('autoload.php');
class SecurityController extends InitializableController
{
/**
* @return RedirectResponse|Response
* @Config\Route("/login", name = "site_security_login")
*/
public function loginAction()
115
{
if ($this->authChecker->isGranted(Role::USER)) return
$this->redirectToRoute('homepage');
$error = null;
if ($this->request->attributes-
>has(Security::AUTHENTICATION_ERROR))
$error = $this->request->attributes-
>get(Security::AUTHENTICATION_ERROR);
else {
$error = $this->session-
>get(Security::AUTHENTICATION_ERROR, null);
$this->session-
>remove(Security::AUTHENTICATION_ERROR);
}
if (!is_null($error)) {
$this->addNotice('error', 'security_login.html.twig',
array('notice' => 'auth_error'));
}
$form = $this->createForm(new LoginFormType(), new User());
$this->navigation = array('active' => 'login');
$this->forms = array(
'login' => $form->createView(),
'last_username' => $this->session-
>get(Security::LAST_USERNAME, null)
);
return $this-
>render('AppBundle:Security:login.html.twig');
}
116
/**
* @throws NotFoundHttpException
* @Config\Route("/login-check", name =
"site_security_login_check")
*/
public function loginCheckAction()
{
throw $this->createNotFoundException();
}
/**
* @throws NotFoundHttpException
* @Config\Route("/logout", name = "site_security_logout")
*/
public function logoutAction()
{
throw $this->createNotFoundException();
}
/**
* @return RedirectResponse|Response
* @Config\Route("/profile", name = "site_security_profile")
*/
public function profileAction()
{
$form = $this->createForm(new ProfileFormType(), $this-
>user);
$form->handleRequest($this->request);
if ($form->isSubmitted() && $form->isValid()) {
117
if (!is_null($form->get('password')->getData())) {
/** @var UserPasswordEncoder $encoder */
$encoder = $this-
>get('security.password_encoder');
$this->user->setSalt(User::generateSalt())
->setPassword($encoder->encodePassword($this-
>user, $this->user->getPassword()));
}
$this->manager->persist($this->user);
$this->manager->flush();
$this->addNotice('success',
'security_profile.html.twig',
array('notice' => 'user_changed')
);
return $this->redirectToRoute('homepage');
}
$this->forms['profile'] = $form->createView();
$this->navigation = array('active' => 'profile');
return $this-
>render('AppBundle:Security:profile.html.twig');
}
//регистрация на сайте
/**
* @return Response
* @Config\Route("/registration", name =
"site_general_registration")
*/
118
public function registerAction()
{
$user = new User();
$user->getRolesCollection()->add($this-
>getRepository('Role')->findOneByRole(Role::USER));
$form = $this->createForm(new RegistrationFormType(),
$user);
$form->handleRequest($this->request);
//обработка отправки формы
if ($form->isSubmitted() && $form->isValid()) {
$valid = true;
$samesemail = $this->getRepository('User')-
>createQueryBuilder('u')
->select('COUNT(u.id) AS id')
->where('u.email = :email')
->setParameters(array('email' => $user-
>getEmail()))
->getQuery()->getSingleScalarResult();
if ($samesemail > 0) {
$form->get('email')->addError(new
FormError('Пользователь с таким email уже существует.'));
$valid = false;
}
$sameslogin = $this->getRepository('User')-
>createQueryBuilder('u')
->select('COUNT(u.id) AS id')
->where('u.username = :username')
->setParameters(array('username' => $user-
>getUsername()))
->getQuery()->getSingleScalarResult();
if ($sameslogin > 0) {

Смотрите также:

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
IPO - инструмент финансирования деятельности организации. На примере ПАО «Нефтяная компания «Лукойл»
PR как средство продвижения организации (на примере ПАО "Тамбовский завод "Комсомолец им. Н.С. Артемова")
PR-коммуникации в сфере общественного питания (на примере кафе-кондитерской «Cream Cheese»)
SMM как средство повышения эффективности работы учреждений социокультурной сферы (на примере Малого театра)