По node'у полным полно примеров, простых модулей и т.п.
Главное начать.
То что будет 200-300 человек, ты не упомянул однако ранее
или я не дочитал :D
Тогда да, можно чатик за пару дней с клиентами и всеми фичами написать. Или даже что-то готовое поднять.
Push Notifications - не нужно использовать когда клиент открыт, т.к. он должен соединяться.
PN - нужен только если клиент вырублен и пользователь не был активен на других клиентах. ~5 сек задержки после активности все же нужно, чтобы избежать ситуации где прочитал в вебе, а он еще и на мобилку пушает.
Если речь идет о 200-300 человек, то и redis не нужен. Поднимай один процесс и храни все в памяти.
Бд чисто для аутентификации и хранения истории.
С nodejs mongodb идет очень легко и гладко. Ты пример какой-нибудь глянь, там все просто.
var mongo = require('mongodb').MongoClient;
var url = 'mongodb://localhost:27017/mydb';
mongo.connect(url, function(err, db) {
if (err) throw err;
console.log("connected to db");
db
.collection('users')
.findOne({
login: 'user',
password: 'hash'
}, function(err, user) {
if (err) throw err;
if (! user)
return console.log('wrong login / password');
console.log(user);
});
});
Соединение конечно держать нужно одно, а не много (как в пхп). Ну и тут пример как найти поьзователя с бд.
Крч, копай и пробуй, примеров в интернете куча, и на форуме помогу если где-то застопоришься.