Giter Site home page Giter Site logo

chatsock's Introduction

Чат на Node.js + Sock.js

Реализовать простой чат. Требования к реализации:

  • SockJS
  • ECMASCRIPT 6
  • nodejs 6.5
  • хотя бы пару unit-тестов

Фичи:

  1. Первоначально вводится имя
  2. При входе в чат, всем сообщается о входе нового человека.
  3. Новому человеку подгружается история чата, которая была до него.
  4. При вводе сообщения отображается время + имя + сообщение.
  5. Когда кто-то покидает чат, всем об этом оповещаются.
  6. при добавлении нового сообщения чат прокручивается к последнему сообщению.

Для запуска

npm i && npm start

Для тестов

npm start && npm test

Добавил для красоты:

  1. Сделал более приятную расцветку чата, и вообще просто сделал чтобы были хоть какие либо стили.
  2. Свои собственные посты выделяются сиреневым цветом
  3. Слева видны юзеры-онлайн, при регистрации нового юзера - они туда добавляются, а при выходе юзера, они оттуда удаляются.

Заключение

Чат определенно можно улучшать:

  • можно сделать чтобы дата сообщения была не в сообщении а под ним.
  • было бы хорошо также сохранять данные о пользователи, чтобы чат не обновлялся при перезагрузке страницы.
  • код можно разбить на модули как серверную, так и клиентскую часть
  • можно дописать больше тестов, которые бы тестировали ответы сервера
  • было бы правильно также прикрутить базу данных например Монго, чтобы сообщения хранились на ней
  • правильно было бы сделать более правильные стили(чтобы были красиво видно и на больших и на маленьких экранах), возможно их больше продумать
  • в конце концов все можно было сминифицировать, пересжать, картинки собрать в спрайты
  • если чат будет расти дальше, то правильней было бы положить его на какую либо структуру/фреймворк, для более удобного масштабирования.

chatsock's People

Contributors

mikhailrojo avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.