Skip to content
Reach logo

Reach

Reach is an educational social network for communication between students and teachers throughout the process of studying different disciplines at a university. The team built it after seeing groups of students rely on general-purpose social networks such as Facebook to coordinate joint assignments — a task those platforms were not designed for. The goal was a dedicated platform that keeps study collaboration separate from a personal social feed, so coursework stays free of the distractions that come with every social update.

Social network

Reach is a social network for publishing and exchanging information within an educational institution such as a college or university. To start communicating, a user registers, chooses a university, and joins an episode or creates a new one, where the conversation takes place.

Episodes can be open or closed, which determines how members join them: joining a closed episode requires a request and confirmation from its owner.

An invitation system lets members invite both registered and not-yet-registered users to an episode; invitees receive a notification and can join the conversation right away.

Technologies

  • AngularJS logo
    AngularJS
  • Docker logo
    Docker
  • MongoDB logo
    MongoDB
  • NodeJS logo
    NodeJS
  • Sphinx logo
    Sphinx
  • Webpack logo
    Webpack
  • Websockets logo
    Websockets

Integration with Dropbox and Google Drive

The project integrates with the Dropbox and Google Drive online file storages and synchronizes with them, so members don't need to keep all their files on their own computer.

Microservices

The team implemented the following microservices:

  • User authorization
  • Backup
  • Chat
  • Email notification service
  • Event creation
  • Hierarchy
  • Database (MongoDB)
  • Proxy (Nginx)
  • OAuth
  • Preauthorization
  • User profile
  • PubSub
  • Queue
  • Search
  • Data storage
  • User interface

All microservices run in Docker containers that form an isolated network, giving the application complete independence from the host system's architecture. Together this makes deployment, updates, configuration, and management on production servers straightforward.