Веб-приложение для изучения английского языка

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

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 30.06.2017
Размер файла 2,3 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

· Тип задания.

· Временной промежуток.

Рисунок 3.7. Страница с установкой параметров получения статистики пользователя

После того, как пользователь установил параметры получения статистики и нажал на кнопку «Get statistic», он получает подробную статистику по выполненным заданиям (см. рис. 3.8).

Рисунок 3.8. Отображение статистики пользователя

В случае, когда пользователь вошел в систему под ролью «Преподаватель», в меню навигации появляются новые элементы:

· Управление предметными областями заданий (Topics).

· Создание заданий (Create task).

· Редактирование заданий (Edit task).

· Выход из системы (Logout).

При переходе по ссылке «Topics» с навигационного меню приложения в верхней части экрана, пользователь попадает на страницу со списком предметных областей, который можно изменять путем добавления или удаления предметной области (см. рис. 3.9).

Рисунок 3.9. Страница со списком предметных областей

При переходе по ссылке «Create task» с навигационного меню приложения пользователь попадает на страницу создания заданий (см. рис. 3.10). На данной странице пользователь имеет возможность выбрать предметную область для заданий, а также ввести текст, который в последующем будет разбит на предложения, которые будут использоваться для генераций типов задания. Предложения, полученные из текста, который ввел пользователь, будут привязаны к выбранной предметной области, а также к выбранному уровню сложности.

Рисунок 3.10. Страница создания нового задания

3.2 Авторизация пользователей в приложении

Для реализации авторизации в приложении, будет использоваться JSON Web Token (JWT). JWT является открытым стандартом (RFC 7519) который определяет компактный способ безопасной передачи информации между клиентов и сервером в объекте JSON. Информация, передаваемая в JWT, может быть проверена, так как она подписывается с помощью специальной цифровой подписи. JWT может быть подписан с использованием секретного ключа таким образом, что его можно будет расшифровать любому участнику, кто получил доступ к нему, но для того чтобы подтвердить достоверность информации, необходимо иметь секретный ключ.

В разрабатываемом приложении для авторизации JWT будет использоваться следующим образом:

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

2. При получении JWT клиентской частью приложения для всех будущих запросов, приложение устанавливает HTTP заголовок «Authorization» со значением полученного JWT. А также записывает JWT в локальное хранилище (local storage).

3. В дальнейшем при получении сервером запросов от клиентской части приложения сервер будет проверять заголовок «Authorization» HTTP запроса на наличие JWT. В случае если JWT был передан, сервер попытается проверить данный JWT с помощью секретного ключа, которым он когда-то подписывал этот JWT. Таким образом, если JWT был успешно проверен с помощью секретного ключа, сервер будет распознавать полученный запрос как «авторизованный запрос».

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

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

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

· Почта пользователя.

· Идентификатор роли пользователя.

· Ключ для подписки на пользователя (необходим для роли «Преподаватель»).

Информация о роли пользователя необходима для формирования соответствующего навигационного меню приложения.

Для реализации авторизации через JWT сначала необходимо подключить необходимые библиотеки, а также определить секретный ключ для подписи JWT:

import express from 'express'; //фреймворк для node JS

import shortid from 'shortid'; //библиотека для генерации уникальных ключей

import jwt from 'jsonwebtoken';//библиотека для аутентификация по JWT для http

import bookshelf from 'bookshelf';//библиотека для работы с базой данных mysql

var jwtSecret = 'dsafsdf345252343sdsdsd';//секретный ключ для подписи JWT

Далее создадим новую API команду для авторизации на сервере, которая будет принимать запросы типа POST, а также установим ей маршрут «/api/auth»:

bookshelf({

client: 'mysql',

connection: {

host: '192.168.100.124',

user: 'root',

port: '3306',

database: 'sentences_quiz',

charset: 'utf8'

}

});

var User = bookshelf.Model.extend({

tableName: 'users'

});

let router = express.Router();

router.post('api/auth/', (req, res) => {

const {identifier, password} = req.body;

User.query({

where: {email: identifier}

}).fetch().then(user => {

if (user) {

if (password === user.get('password')) {

const token = jwt.sign({

name: user.get('name'),

lastName: user.get('lastName'),

email: user.get('email'),

idRole: user.get('idRole'),

specialKey: shortid.generate()

}, jwtSecret);

res.json({token});

} else {

res.status(401).json({errors: {form: 'Invalid Credentials'}});

}

} else {

res.status(401).json({errors: {form: 'Invalid Credentials'}});

}

});

Также создадим специальную функцию, которая будет проверять каждый запрос на наличие JWT в HTTP заголовке «Authorization»:

var authenticate = (req, res, next) => {

const authorizationHeader = req.headers['authorization'];

let token;

if (authorizationHeader) {

token = authorizationHeader.split(' ')[1];

}

if (token) {

jwt.verify(token, config.jwtSecret, (err, decoded) => {

if (err) {

res.status(401).json({error: 'Authorization failed'});

} else {

User.query({

where: {email: decoded.email},

}).fetch().then(user => {

if (!user) {

res.status(404).json({error: 'Such user not exist'});

} else {

req.currentUser = user.toJSON();

next();

}

});

}

});

} else {

res.status(403).json({

error: 'Method cannot be accessed without token''

});

}

}

Для реализации возможности регистрации в приложении, необходимо создать еще одну API команду для возможности регистрации в приложении, которая будет принимать запросы типа POST, по маршруту «/api/user»:

function validateInput(data, otherValidations) {

let {errors} = otherValidations(data);

return User.query({

where: {email: data.email}

}).fetch().then(user => {

if (user) {

if (user.get('email') === data.email) {

errors.email = 'User with such email not found';

}

}

return {

errors,isValid: isEmpty(errors)

};

})

}

router.post('api/user/', (req, res) => {

validateInput(req.body, commonValidations).then(({errors, isValid}) => {

if (isValid) {

const {name, lastName, email, password, role} = req.body;

let createdAt = new Date();

let subKey = shortid.generate();

User.forge({

idRole: role,

name: name,

lastName: lastName,

email: email,

password: password,

createdAt: createdAt,

specialKey: subKey

}).save()

.then(user => res.json({success: true}))

.catch(err => res.status(500).json({error: err}));

} else {

res.status(400).json(errors);

}

});

});

export default router;

3.3 Создание тестовых заданий

Для того чтобы упростить процесс создания тестовых заданий, сведем данный процесс к следующим этапам:

1. Преподаватель вводит текст на английском языке в форму для создания задания.

2. Далее, преподаватель выбирает предметную область, к которой будет относиться введенный текст, а также уровень сложности предложений в тексте.

3. В завершении, при нажатии на кнопку «Submit» данный текст с установленными настройками (предметная область и уровень сложности) будет отправлен на обработку серверу, где он будет разбит на предложения, которые будут записаны в базу данных.

Таким образом, генерация любого задания в приложении базируется на этих предложениях, так как для реализации таких заданий, как «составление предложения из последовательности слов», «выбор слова-связки из предложенных слов для подстановки в пропущенное место в предложении», необходим лишь список предложений.

Для того чтобы реализация тестовых заданий стала возможной при данных условиях, в приложении будет использоваться библиотека «pos-js» [17]. Библиотека «pos-js» основана на наборе правил, которые применяются к списку самых часто употребляемых английских слов. Таким образом, данная библиотека позволят определить часть речи английского слова в предложении с высокой вероятностью, что позволит генерировать задания, используя лишь набор обычных строк на английском языке. Данная библиотека состоит из двух основных компонентов:

· Компонент «Tagger», позволяющий корректно разбить предложение на набор слов.

· Компонент «Lexer», позволяющий определить часть речи слова.

Сначала необходимо подключить необходимые библиотеки:

import express from 'express'; //фреймворк для node JS

import authenticate from '../middlewares/authenticate'; //функция для проверки авторизации

import User from '../models/user'; //Класс для доступа к сущности User в бд

import Sentence from '../models/sentence'; //Класс для доступа к сущности Sentence в бд

import isEmpty from 'lodash/isEmpty';

import pos from 'pos'; //Класс для определения части речи выбранного слова

import Tokenizer from 'sentence-tokenizer';//Класс для разбиения текста на предложения

Для реализации возможности преобразования текста на предложения, а также их записи в БД, создадим еще одно команду API. Данная команда будет принимать запросы типа POST по маршруту «/api/sentences»:

router.post('/api/sentences', authenticate, (req, res) => {

const {idTopic, idDifficulty, text} = req.body;

const {idUser} = req.currentUser;

let tokenizer = new Tokenizer();

tokenizer.setEntry(text);

let sentences = tokenizer.getSentences();

for (let i in sentences) {

let taskType=1;

if(isSentenceSecondTaskType(sentences)) {

taskType=1;

}

Sentence.forge({

sentenceText: text,

idOwner: idUser,

idTopic: idTopic,

idDifficulty: idDifficulty,

taskType: taskType

}).save()

}

return res.status(204);

});

//Функция которая определяет, возможно ли использовать предложения для 2 типа задания

function isSentenceSecondTaskType(sentence) {

let tempPos = ['for', 'and', 'but', 'yet', 'or', 'so', 'nor'];

let lexer = new pos.Lexer();

let tagger = new pos.Tagger();

let words = lexer.lex(sentencesList[i]);

let tags = tagger.tag(words);

let result = false;

for (let j in tags) {

if (tags[1] === 'CC')

if (tempPos.indexOf(tags[0].toLowerCase())) {

result = true;

}

}

return result;

}

Далее, для реализации возможности получения заданий, направленных на выбор правильного слова-связки для подстановки в пропущенное место в предложении использованием библиотеки «pos-js», необходимо создать еще одну API команду, которая будет принимать запросы типа GET по маршруту «/api/sentences»:

router.get('api/sentences/', authenticate, (req, res) => {

const {subKey} = req.currentUser;

const {selectedTopic, selectedDifficulty, selectedTaskNumber, taskType} = req.body;

let idOwner = null;

let sentencesList = [];

//Получение id Преподавателя по ключу подписки

User.query({

select: ['idUser'],

where: {subKey: subKey}

}).fetch().then(idUser => {

idOwner = idUser;

}).catch(err => {

return res.status(404).json({'err': err})

}).then(() => {

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

Sentence.query({

where: {idOwner: idOwner, difficulty: selectedDifficulty, idTopic: selectedTopic},

limit: {selectedTaskNumber}

}).fetchAll().then(sentences => {

sentencesList = sentences;

}).catch(err => {

return res.status(404).json({'err': err})

}).then(() => {

if(taskType==1) {

return res.status(200).json(trimSentencesOnWords (sentencesList));

}

//Формирование JSON объекта, который содержит массив заданий

return res.status(200).json(parseSentences(sentencesList));

});

}

);

});

//Функция для формирования тестовых заданий 1 типа

function trimSentencesOnWords(sentencesList)

{

let result=[];

let tokenizer = new Tokenizer('Chuck');

let lexer = new pos.Lexer();

for (let i in sentencesList) {

let words = lexer.lex(sentencesList[i]);

result.push(words);

}

return Object.assign([], result);

}

//Функция для формирования тестовых заданий 2 типа

function parseSentences(sentencesList) {

let sentences = Object.assign({}, sentencesList);

let lexer = new pos.Lexer();

let tagger = new pos.Tagger();

let answerList = [];

for (let i in sentencesList) {

let words = lexer.lex(sentencesList[i]);

let tags = tagger.tag(words);

let randomWord = pickRandomWordIndex(tags);

let subAnswers = [];

if (randomWord !== null) {

let correctAnswer = '';

let iterations = 0;

for (let j in tags) {

let tag = tags[j];

let normalTag = tag[1].slice(0, 2);

if (randomWord[0] === normalTag) {

if (iterations === randomWord[1]) {

correctAnswer = tag[0];

subAnswers = createFakeAnswers(normalTag);

}

iterations++;

}

}

if (subAnswers !== []) {

let answer = [];

answer.push({

text: sentences[i],

correct: correctAnswer,

answers: shuffle(subAnswers),

});

answerList.push(answer);

}

}

}

return answerList;

}

//Функция для генерации ответов на задание

function createFakeAnswers(rightAnswer) {

let tempPos = ['for', 'and', 'but', 'yet', 'or', 'so', 'nor'];

let subAnswers = [];

subAnswers.push({'value': rightAnswer, 'is_right': true});

tempPos = tempPos.filter(function (pos) {

return pos !== rightAnswer;

});

for (let i = 0; i < 3; i++) {

let result = tempPos[Math.floor(Math.random() * (tempPos.length))];

subAnswers.push({'value': result, 'is_right': false});

tempPos = tempPos.filter(function (pos) {

return pos !== result;

});

}

return Object.assign([], subAnswers);

}

Пример ответа, полученного от реализованной команды API типа GET по маршруту «/api/sentences», будет возвращать следующие данные в формате JSON, в случае успешного выполнения:

[

{"text": "Listen to the story {{answer}} answer the questions in complete sentences?",

"correct": "and",

"answers": [

{

"is_right": true,

"value": "and"

},

{

"is_right": false,

"value": "or"

},

{

"is_right": false,

"value": "but"

},

{

"is_right": false,

"value": "nor"

}

]

ЗАКЛЮЧЕНИЕ

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

1. Составление предложения из последовательности слов (установление последовательности).

2. Выбор правильного слова-связки из предложенных слов для подстановки в пропущенное место в предложении (альтернативный выбор).

На основе анализа предметной области была спроектирована архитектура приложения, а также база данных. По окончании этапов анализа и проектирования, было составлено техническое задание.

Спроектированное приложение покрывает недостатки приложений-аналогов, тем самым, делая процесс формирования навыков построения предложений на английском языке более разносторонним. В конечном счете, на основе проекта приложения и технического задания, приложение было реализовано.

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

БИБЛИОГРАФИЧЕСКИЙ СПИСОК

1. Обучение за рубежом // Обзор мобильных приложений для обучения английскому языку [Электронный ресурс] [Режим доступа: http://mastersinesl.com/essential-esl-app-guide/] [Проверено: 12.02.2017].

2. Nino A. Language Learners Perceptions and Experiences on the Use of Mobile Applications for Independent Language Learning in Higher Education // The IAFOR Journal of Education. 2015. P. 73-84.

3. Andersen I. Mobile Apps for Learning English // A Review of 7 Complete English Course Apps. 2013.

4. Zhang Yu. Handbook of Mobile Teaching and Learning // Characteristics of mobile teaching and learning. 2015.

5. Scarry S. The writer's workplace with readings // Building College Writing Skills. 2008.

6. Walter J. Building writing skills the hands-on way, The IAFOR Journal of Education. 2017.

7. Newson M., Hordos M., Pap D., Vincze V. Basic English Syntax // Basic English Syntax with Exercises. 2006.

8. Лучшие веб сайты для обучения английскому языку // Engblog [Электронный ресурс] [Режим доступа: http://engblog.ru/top-sites-for-learners] [Проверено: 12.02.2016].

9. Тест на порядок слов в английском языке // Skyeng [Электронный ресурс] [Режим доступа: http://quiz.skyeng.ru/poryadok-slov/] [Проверено: 12.02.2017].

10. Englisch Lernen Online - Grammatik // Englisch-hilfen Skyeng [Электронный ресурс] [Режим доступа: http://www.englisch-hilfen] [Проверено: 12.02.2017].

11. ESL/ELL-English Grammar and Vocabulary Tests // Learnenglishfeelgood Skyeng [Электронный ресурс] [Режим доступа: http://www.learnenglishfeelgood.com /] [Проверено: 12.02.2016].

12. Graham S., Perin D. Writing next // Effective strategies to improve writing of adolescents in middle and high schools. 2007. P. 11-29.

13. Interactive Writing and Grammar // Quill Skyeng [Электронный ресурс] [Режим доступа:https://www.quill.org/ /] [Проверено: 23.02.2017].

14. Обучение английскому онлайн // Lingualeo Skyeng [Электронный ресурс] [Режим доступа: http://lingualeo.com /] [Проверено: 10.04.2017].

15. Learn English online with Wlingua // Wlingua Skyeng [Электронный ресурс] [Режим доступа: http://www.wlingua.com/] [Проверено: 10.04.2017].

16. Learn English // Busuu Skyeng [Электронный ресурс] [Режим доступа: https://www.busuu.com/] [Проверено: 10.04.2017].

17. Pos JS library official page // Pos-js library [Электронный ресурс] [Режим доступа: https://code.google.com/archive/p/jspos/] [Проверено: 01.05.2017].

СПИСОК ТЕРМИНОВ И СОКРАЩЕНИЙ

1. БД - база данных.

2. ТЗ - техническое задание.

3. API - Application Programming Interface (набор готовых классов, процедур, функций, структур и констант, предоставляемых приложением (библиотекой, сервисом) для использования во внешних программных продуктах).

4. IDEF0 - нотация описания бизнес-процессов.

5. URL - единый указатель ресурса.

6. HTTPS - протокол передачи данных, поддерживающий шифрование.

7. JSON (JavaScript Object Notation) - формат обмена данными.

8. UML (Unified Modeling Language) - язык графического описания для объектного моделирования в области разработки программного обеспечения.

ПРИЛОЖЕНИЕ А. Техническое задание

1. Общие сведения
1.1. Полное и краткое наименования приложения

Полное наименование - приложение «Sentences guru».

Краткое наименование - «S-M».

1.2. Наименование предприятия Заказчика и его реквизиты
Заказчик - Стринюк Светлана Александровна
Адрес: 614007 г. Пермь, ул. б-р Гагарина, 37а.
1.3. Перечень документов, на основе которых создается приложение

Техническое задание.

Плановые сроки начала и окончания работ по созданию приложения.

Сроки исполнения представлены в таблице А.1.

Таблица А.1. Этапы и сроки выполнения работ

Этапы работ

Сроки

Ответственный

1

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

1-7 апреля

Гареев А.Ф.

2

Утверждение дизайна приложения

8-12 апреля

Гареев А.Ф.

3

Программирование

13 апреля - 10 мая

Гареев А.Ф.

4

Отладка приложения

11- 17 мая

Гареев А.Ф.

5

Наполнение БД

18-21 мая

Гареев А.Ф.

6

Сдача проекта

22 мая

Гареев А.Ф.

2. Цели и задачи приложения

2.1. Цель создания приложения
Цели создания приложения:
· Автоматизация формирования навыков построения предложений на английском языке.
· Автоматизация процесса добавления новых данных для тестовых заданий.
· Автоматизация процесса отслеживания данных об успешности выполнения заданий учениками.
2.2. Целевая аудитория приложения
Целевая аудитория приложения состоит из двух групп пользователей:

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

· Преподаватели, заинтересованные в возможности предоставления данных для тестовых заданий, а также в возможности отслеживать ход обучения учеников.

2.3. Основные функции приложения
Основные функции приложения:

1. Предоставление тестовых заданий для формирования навыков построения предложений на английском языке.

2. Выбор предметной области, в качестве источника данных для тестовых заданий.

3. Создание предметной области.

4. Добавление данных для тестовых заданий в соответствующую предметную область.

5. Подписка на задания учителя.

6. Отслеживание статистики по выполненным заданиям.

7. Отслеживание статистики по подписчикам.

8. Регистрация в приложении.

9. Авторизация в приложении.

3. Требования к приложению
3.1. Общие технические требования

Приложение должно быть разработано в программной среде PhpStorm IDE, с использованием программной платформы Node JS. Для записи и извлечения данных в БД будет использоваться БД MySQL 5.6. Графический интерфейс пользователя должен быть разработан с использованием технологий: HTML, CSS, JavaScript. Приложение должно быть разработано на основе двухзвенной архитектуры (клиент-сервер), а также на основе “тонкого” веб-клиента, с выполнением всей бизнес логики на стороне сервера.

3.2. Требования к функциональным характеристикам
Система должна обладать следующими свойствами:

· Отказоустойчивость - система не должна завершаться преждевременно в независимости от поведения ее пользователя.

· Быстродействие - система не должна зависать, при выполнении каких-либо длительных операций.

3.3. Требования к составу выполняемых функций
Требования, предъявляемые к системе, с точки зрения пользователя: возможность входа в систему.
Требования, предъявляемые к системе, с точки зрения ученика:
1. Возможность конфигурации заданий.
2. Возможность выбрать задание.
3. Возможность выполнять задания.
4. Возможность выбора подписки.
5. Возможность подписываться на задания по уникальному коду.
6. Возможность отслеживать статистику по выполненным заданиям.
7. Возможность регистрации в приложении как ученик.
Требования, предъявляемые к системе, с точки зрения преподавателя:
1. Возможность создания задания.
2. Возможность установки параметров здания.
3. Возможность выбора заданий из списка.
4. Возможность редактирования зданий.
5. Возможность добавления предметной области.
6. Возможность получения ключа для подписчиков.
7. Возможность отслеживать статистику подписчиков.
3.5. Требования к стилистическому оформлению приложения

Стилистическое оформление приложения должно соответствовать требованиям заказчика. Форма подачи информации определяется совместно с Заказчиком. Предпочтительным является использование изображений и наглядной информации для минимизации количества текстовых символов. Должны присутствовать: стилистическая целостность всех страниц приложения, удобство навигации по приложению.

После согласования графического эскиза приложения с заказчиком переделка стилистического оформления приложения невозможна (за исключением незначительных правок).

3.6. Требования к взаимодействию приложения с сервером
Приложение должно получать актуальные данные по HTTPS протоколу в формате JSON.
3.7. Языковые версии приложения
Приложение имеет одну языковую версию:Английскую.
4. Структура и описание разделов приложения
4.1 Структура приложения
Главная страница
На главной странице приложения должна отображаться форма авторизации пользователя, в случае если вход не был выполнен. Если вход был выполнен под категорией пользователя “ученик”, главная страница должна содержать меню для ученика, которое включает:

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

Ссылка для перехода по ссылке на страницу получения статистики по выполненным заданиям.

Ссылка для управления подписками ученика.

Если вход был выполнен под категорией пользователя “преподаватель”, главная страница должна содержать меню для преподавателя, которое включает:

Ссылка для перехода по ссылке на страницу создания заданий.

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

Поле с уникальным ключом для возможности передачи ключа для подписки ученикам.

Ссылка для перехода по ссылке на страницу получения статистики подписчиков.

Выполнение заданий

На данной странице должны содержаться следующие элементы:

* Выпадающий список с выбором предметной области.

* Выпадающий список с выбором сложности заданий.

* Кнопка для возможности начать выполнение заданий.

Создание заданий

В левой части страницы “Создание заданий” помещается выпадающий список с предметными областями, а также выпадающий список с типом заданий. В центральной части страницы помещается текстовое поле для ввода теста задания. Ниже поля ввода текста задания находится кнопка для создания задания.

4.2 Реализация структуры приложения

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

Состав и содержание работ по созданию приложения

Работы по созданию приложения делятся на следующие этапы (табл. А.2):

1. Разработка дизайна приложения.

2. Проектирование базы данных.

3. Разработка приложения.

4. Тестирование и отладка.

5. Наполнение БД информацией.

6. Сдача проекта.

Таблица A.2. Этапы создания приложения

Этап работы

Содержание

Сроки исполнения, раб. дней

1

Разработка дизайна

Разработка дизайна приложения

6

2

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

Проектирование базы данных

4

3

Программирование

Разработка приложения

18

4

Тестирование и отладка

Тестирование и отладка всех компонентов приложения

4

5

Наполнение БД

Наполнение первичных справочников в БД.

2

6

Сдача проекта

Сдача работ Заказчику

Итого

33-40

Порядок сдачи-приемки работ

Промежуточные и окончательные результаты проводимой разработки принимаются представителями сторон. Для проверки качества выполнения работ по приложению Заказчик использует визуальный контроль и производит серию тестов с отслеживанием функциональности и скорости всех компонентов приложения.

Размещено на Allbest.ru


Подобные документы

  • Разработка приложения, позволяющего автоматизировать документооборот предприятия по списанию основных средств. Мероприятия по защите и обеспечению целостности базы данных. Разработка клиентского приложения. Запросы к базе данных, руководство пользователя.

    курсовая работа [700,0 K], добавлен 14.01.2015

  • Разработка программного приложения WindowsForms для работы с базой данных на языке высокого уровня C# в автономном режиме с использованием ADO.NET. Проектирование реляционной модели базы данных, интерфейса приложения, основных функций и возможностей.

    курсовая работа [4,3 M], добавлен 30.06.2015

  • Разработка приложения для проверки использования времен глаголов в английском языке. Создание базы данных. Анализ используемых средств для реализации автоматического разбора текста. Проектирование мобильного приложения с помощью диаграмм деятельности.

    дипломная работа [2,6 M], добавлен 13.09.2017

  • Разработка клиент-серверного приложения, позволяющего взаимодействовать друг с другом с использованием доступа к базам данных. Проектирование связи сервера с базой данных с помощью технологии ODBC. Разработка интерфейса программы, ее тестирование.

    курсовая работа [352,0 K], добавлен 24.08.2016

  • Создание, изучение и разработка приложение на Android. Среда разработки приложения DelphiXE5. Установка и настройка среды программирования. Этапы разработки приложения. Инструменты для упрощения конструирования графического интерфейса пользователя.

    курсовая работа [1,6 M], добавлен 19.04.2017

  • Разработка приложения для работы с базой данных с использованием объектно-ориентированного и визуального программирования. Обзор языка элементов языка программирования Delphi. Проектирование базы данных автозаправки. Клиентская система приложения.

    курсовая работа [2,3 M], добавлен 31.01.2016

  • Разработка логической схемы базы данных автомобилестроительного предприятия. Инфологическое моделирование системы. Создание графического интерфейса пользователя для базы данных средствами языка программирования Java. Тестирование программных средств.

    курсовая работа [2,3 M], добавлен 16.12.2013

  • Характеристика объекта автоматизации. Создание многоуровневой архитектуры приложения, отладка метода безошибочной идентификации пользователей системы. Разработка нестандартного метода преобразования объектов базы данных в объекты классов приложения.

    курсовая работа [395,4 K], добавлен 28.04.2015

  • Основные инструменты построения Web-приложения. Язык сценариев PHP. Системный анализ предметной области базы данных. Коды SQL запросов на создание таблиц. Разработка Web-приложения. Описание функциональности модулей. Система управления содержимым статей.

    курсовая работа [4,8 M], добавлен 28.04.2014

  • Понятие, законодательное регулирование и виды электронных подписей. Разработка структурной схемы приложения и базы данных. Создание диаграммы прецедентов и классов. Проектирование интерфейса программы. Анализ руководства пользователя web-приложения.

    дипломная работа [869,8 K], добавлен 12.08.2017

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.