Структура web-приложения

ОТЧЕТ

по курсовой работе

по курсу «ПвБД»

Хранилище фотоальбомов

Выполнил: студент группы A-91 Орищенко Тимофей Проверил: доцент каф. МОП ЭВМ Хашковский В.В. Оценка ______________________ «____» __________ 2015 г.  

Оглавление

Введение. 5

Постановка задачи.. 6

Описание инструментов. 7

СУБД.. 7

Язык программирования.. 7

Структура базы данных. 9

Диаграмма. 9

Описание таблиц.. 10

users. 10

friends. 10

dialogs. 10

messages. 11

categories. 11

albums. 11

photos. 11

marks. 12

comments. 12

Структура web-приложения.. 13

Определение основных страниц.. 13

Определение реализации страниц.. 13

Контроллеры... 13

Модели.. 14

Виды... 15

Описание страниц.. 16

Пользователи.. 16

Просмотр списка пользователей.. 17

Просмотр профиля пользователя.. 18

Вход пользователя в систему. 20

Выход пользователя из системы... 22

Регистрация нового пользователя.. 23

Редактирование профиля.. 25

Удаление профиля.. 26

Восстановление пароля.. 26

Категории.. 28

Просмотр категорий пользователя.. 29

Добавление новой категории.. 30

Редактирование категории.. 31

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

Альбомы... 33

Вывод списка альбомов. 34

Отображение списка альбомов в категории.. 35

Отображение альбомов конкретного пользователя.. 36

Добавление альбома. 36

Изменение альбома. 38

Удаление альбома. 39

Фотографии.. 40

Вывод списка фотографий.. 41

Вывод списка фотографий в альбоме. 42

Вывод списка фотографий пользователя.. 44

Просмотр фотографии.. 45

Добавление фотографии.. 46

Редактирование фотографии.. 48

Удаление фотографии.. 49

Поиск фотографии.. 50

Комментарии.. 52

Добавление комментариев. 53

Просмотр комментариев. 54

Оценки.. 56

Оценивание фотографии.. 57

Просмотр средней оценки.. 57

Друзья.. 58

Просмотр друзей пользователя.. 61

Добавление в друзья.. 62

Запросы в мои друзья.. 63

Принятие заявки.. 63

Отклонение заявки.. 64

Просмотр отправленных мной заявок.. 64

Удаление пользователя из списка друзей.. 65

Сообщения.. 66

Отправка сообщения.. 68

Просмотр списка диалогов. 69

Просмотр диалога. 69

Заключение. 71

Введение

Само понятие «программирование в базах данных» подразумевает написание хорошо структурированных и оптимизированных запросов к серверу базы данных для получения какого-либо результата, согласно цели запроса. Но, естественно, почти никто (кроме администраторов) не работает с базой данных через прямое написание запросов. Вся работа осуществляется через определенное приложение, которое предоставляет доступ к необходимым данным из базы. В подавляющем большинстве случаев любая информационная система – это простая база данных с разработанным для взаимодействия с ней интерфейсом. В данной курсовой работе я описал создание приложения для работы с фотоальбомами.




Постановка задачи

В рамках данной курсовой работы необходимо разработать Web-приложение для взаимодействия с сервером базы данных в рамках создания системы «Хранилище фотоальбомов»

Задание:

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

1. Реализация полноценного приложения на основе БД с пользовательским интерфейсом

2. Создание соединения с БД и модулей

3. Создание классов

4. Использование валидации

5. Создание аутентификации

Описание инструментов

СУБД

В качестве системы управления базами данных я выбрал свободно распространяемую СУБД MySQL версии 5.5. Она отвечает требованиям по таким критериям как

· надежность

· безопасность

· скорость работы.

СУБД MySQL реализует язык SQL, совместимый со стандартом SQL:2008, который на сегодняшний день является крайним, что говорит об относительной «свежести» данного продукта.

Язык программирования

Для написания web-приложений используется множество языков, например: PHP, Perl, технология ASP, и т.д. Из всего множества этих языков я выбрал язык PHP версии 5.3, который является наиболее подходящим инструментом для реализации необходимого web-приложения, так как имеет понятный Си-подобный синтаксис, реализует парадигму ООП на достаточном уровне и обладает чрезвычайной гибкостью.

Как известно, писать что-либо свое необходимо лишь тогда, когда задача, решаемая программистом уникальна. В противном случае полезно использовать уже готовые инструменты. В данном случае для реализации своего приложения я использовал функционал PHP фреймворка CodeIgniter версии 2.1. Данный фреймворк реализует шаблон MVC, который подразумевает разделение логики и представления web-приложения.

Ход выполнения приложения CodeIgniter: Структура web-приложения - student2.ru

Фреймворк CodeIgniter имеет следующую файловую структуру:

Application

----controllers

----models

----views

----...

System

----...

Для разработчиков важны лишь папки controllers, models и views, в которых расположены соответственно контроллеры, модели и представления.

Структура базы данных

Диаграмма

Структура web-приложения - student2.ru

Описание таблиц

Users

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

Поле Описание Тип данных Default NULL
Структура web-приложения - student2.ru id Уникальный номер пользователя на сайте INT   нет
name Имя пользователя в системе VARCHAR(30)   нет
email Адрес электронной почты пользователя VARCHAR(254)   нет
password Пароль от аккаунта. Хранится в зашифрованном виде VARCHAR(32)   нет
birthday Дата рождения пользователя DATE   нет
reg_date Дата регистрации пользователя DATE   нет
active Флаг активности пользователя TINYINT нет
admin Флаг администратора TINYINT нет

Friends

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

Поле Описание Тип данных Default NULL
Структура web-приложения - student2.ru id Уникальный идентификатор отношения INT   нет
friend1 Идентификатор пользователя, который предложил INT   нет
friend2 Идентификатор пользователя, которому предложили INT   нет
confirmed Флаг принятия приглашения TINYINT нет
date Дата создания связи DATE   нет

Dialogs

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

Поле Описание Тип данных Default NULL
Структура web-приложения - student2.ru id Уникальный идентификатор INT   нет
user_1 Идентификатор пользователя, инициировавшего диалог INT   нет
user_2 Идентификатор пользователя, с которым инициировался диалог INT   нет

Messages

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

Поле Описание Тип данных Default NULL
Структура web-приложения - student2.ru id Уникальный идентификатор сообщения INT   нет
dialog_id Идентификатор диалога INT   да
from_id Идентификатор отправителя INT   нет
to_id Идентификатор получателя INT   нет
text Текст сообщения TEXT   нет
date Дата отправления сообщения DATETIME   нет
read Флаг прочтения сообщения получателем TINYINT нет

Categories

Таблица для хранения созданных пользователем категорий альбомов.

Поле Описание Тип данных Default NULL
Структура web-приложения - student2.ru id Уникальный идентификатор категории INT   нет
user_id Идентификатор пользователя-владельца. Берется из таблицы Users INT   нет
title Заголовок категории NVARCHAR(200)   нет
date Дата создания категории DATETIME   нет

Albums

Таблица содержит информацию о созданных пользователем альбомах в определенной категории.

Поле Описание Тип данных Default NULL
Структура web-приложения - student2.ru id Уникальный идентификатор альбома INT   нет
user_id Идентификатор пользователя-владельца. Берется из таблицы users INT   нет
category_id Идентификатор категории, которой принадлежит альбом INT   нет
title Название альбома NVARCHAR(100)   нет
description Описание альбома TEXT   да
date Дата создания альбома DATE   нет
           

Photos

Таблица для хранения информации о загруженных пользователем фотографиях.

Поле Описание Тип данных Default NULL
Структура web-приложения - student2.ru id Уникальный номер фотографии INT   нет
user_id Номер пользователя, загрузившего файл. Берется из таблицы users INT   нет
album_id Номер альбома, в котором будет размещена фотография. INT   нет
title Название фотографии NVARCHAR(50)   нет
file_name Имя файла, с которым фотография хранится на диске. NVARCHAR(50)   нет
size Размер физического файла фотографии в килобайтах INT   нет
width Ширина изображения в пикселах INT   нет
height Высота изображения в пикселах INT   нет
date Дата загрузки фотографии DATE   нет

Marks

Таблица содержит информацию о поставленных пользователем оценках фотографии.

Поле Описание Тип данных Default NULL
Структура web-приложения - student2.ru id Идентификатор оценки INT   нет
photo_id Идентификатор оцениваемой фотографии INT   нет
user_id Идентификатор автора оценки INT   нет
mark Оценка TINYINT   нет

Comments

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

Поле Описание Тип данных Default NULL
Структура web-приложения - student2.ru id Уникальный идентификатор комментария INT   нет
user_id Идентификатор пользователя – автора комментария. Если гость, то NULL INT   да
photo_id Идентификатор комментируемой фотографии INT   нет
text Текст комментария TEXT   нет
guest_email Если комментарий оставил гость, то заносим сюда E-mail NVARCHAR(254)   да
date Дата оставления комментария DATETIME   нет

Структура web-приложения

Наши рекомендации