Техническое задание
Дальнейшие linux-задания представляют собой последовательное создание web-проекта. Для упрощения задачи ниже приведено техническое задание описывающее проект целиком.
Назначение
Проект представляет собой сервис ответов на вопросы. Пользователь сервиса имеет возможность зарегистрироваться, задать вопрос, ответить на вопросы других пользователей. Так же пользователь может отметить вопросы с помощь кнопки "лайк", изменяя их рейтинг. В качестве прототипа образца можно использовать http://stackoverflow.com/
Основные сущности проекта
- Пользователь - email, имя, пароль, аватарка
- Вопрос - заголовок, текст, автор, рейтинг вопроса
- Ответ - текст, вопрос, автор, флаг "правильности"
- Лайк - вопрос, пользователь
Формы и страницы проекта
Главная страница
- URL: /
- Назначение: представляет из себя список "популярных" вопросов. В списке выводятся вопросы за последнюю неделю в порядке убывания рейтинга.
Список новых вопросов
- URL: /new/
- Назначение: список вопросов по дате их добавления начиная с самого свежего.
Страница одного вопроса
- URL: /question/123/
- Назначение: на этой странице можно прочитать текст вопрос и список ответов к нему. Авторизованные пользователи могут добавить свой ответ.
Страница регистрации
- URL: /signup/
- Назначение: пользователь может ввести свой email, пароль, имя, выбрать аватарку и зарегистрироваться в проекте
Страница авторизации
- URL: /login/
- Назначение: пользователь может ввести email и пароль и авторизоваться (войти) в проекте.
Страница добавления вопроса
- URL: /ask/
- Назначение: авторизованный пользователь может задать вопрос, после чего перейдет на страницу этого вопроса.
AJAX запросы
- URL: /like/123/
- Назначение: пользователь может нажать кнопку "Лайк" у вопроса и это увеличит рейтинг вопроса. Пользователь может ставить "лайк" не более 1 раза для 1 вопроса.