Free-Twitter is a project mainly written in ..., it's free.
My test work
Задание
Реализовать минимальный функционал популярной соц. сети twitter.com
- Регистрация пользователей Логин = Email Пароль Аватар (необязательно) Captcha при регистрации, активация аккаунта по почте
- Отправка/удаление коротких сообщений в свою ленту (не более 140 символов) с помощью ajax
- Пейджинатор ленты как на twitter.com (на странице не более 10 сообщений, при клике на ссылку "еще", автоматически подгружать следующие 10 с помощью ajax)
- Изменение профиля (пароля и аватарки)
- Возможность стать читателем лент других аккаунтов
- Отображать список пользователей и их количество: которых читаете Вы которые читают Вас
Для выполнения данного задания есть смысл использовать фреймворк, т.к. задание является единым приложением, а не отдельной его частью. В нем я решил отказаться от прослойки для работы с базой данных в пользу PDO
users - здесь храним все данные о пользователях twitts - здесь храним все "твитты" following - здесь храним связи между пользователями
users - отвечает за авторизацию, регистрацию, профиль пользователя flow - отвечает за формировании потока сообщений, за добавление новых сообшений и управление связями между пользователями
Данная модель является упрощенной. В рабочем проекте есть смысл вынести упраление связями между пользователями в отдельный контроллер
users - отвечает за хранение данных о пользователях flow - отвечает за сообщения.
Пояснение: Т.к. при формировании потока сообщений нам требуется использовать две таблицы (twitts и following) есть смысл делать единую управляющую модель для этих данных. При росте проекта будет смысл разбить ее на три модели: