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