Git Product home page Git Product logo

rendezvous-meetings's Introduction

Rendezvous Meetings

Rendezvous (find here) is a web-application on which people can connect with others around the world through video calls. It uses native WebRTC technology to form the peer connections.

This project was built during the coding phase of Microsoft Engage 2021

Table of Contents

Setup Instructions

Setting up the application is made extremely simple with the help of Docker. For both development and production environments, the code-base is exactly the same, and setup is almost the same - production setup having one extra step. The project consists of 3 or 4 docker containers running, which is orchestrated by docker-compose.

Database

The database is a PostgreSQL container. In postgres/, copy database-stencil.env to database.env and populate the environment variables. These will be used as the name and credentials to the database when the container starts up.

These will be the same credentials enterd in the Django configuration file.

Backend

In /backend/configuration/ copy the config-stencil.env file to config.env and fill in ALL the correct values. For more information on the backend directory structure and configuration, click here

Frontend

In /frontend/src/configuration/ copy the config-stencil.json file to config.json and fill in ALL the correct values. For more information on the frontend directory structure and configuration, click here

All steps till now are common to setting up both development as well as production environments. The next step is unique to the production environment, where we set up a reverse-proxy server

NGINX

Once you generate the SSL certificate and private key for your server, place them in folder /nginx/ssl/ with these exact names:

  • certificate.crt
  • certificate.prv

Starting the servers

Once the configuration is complete, run one of the following commands in / to start the server:

  • For development:
    • docker-compose -f rendezvous_build/development.yml up
  • For production:
    • docker-compose -f rendezvous_build/production.yml up
  • In the above commands, use the flag -d to run in detached mode (preferable in production).

Technological Stack

Purpose Technology
Backend Framework Django
Message Broker Redis
Task Queue Celery
Frontend Library React
Application State Management Redux
UI Components Semantic UI
Database PostgreSQL
Containerisation Docker
Orchestration Docker Compose

Directory Structure

├── backend
├── frontend
├── nginx
├── postgres
├── README.md
└── rendezvous_build
  • /backend contains the Dockerfile and code for the Rendezvous Django project.
  • /frontend contains the Dockerfile and code for the frontend in React.
  • /nginx contains the Dockerfile configuration files, and SSL certificates for the NGINX server.
  • /postgres contains the configuration file for the database
  • /rendezvous_build contains the YAML files used by docker-compose while starting the development or production server.

Features

Contact Me

If you have any queries, or suggestions for the project, feel free to reach out to me at [email protected].

rendezvous-meetings's People

Contributors

dependabot[bot] avatar shreyastheone avatar

Stargazers

 avatar

Watchers

 avatar

rendezvous-meetings's Issues

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.