View Demo · Report Bug · Request Feature
MentorLabs is a a WebRTC based video conferencing app. Apply for mentorship to the top mentors recommended by our powerful algorithm based on your profile. Enjoy one-to-one live mentorship in our interactive video streaming labs for free.
⚠️ This is pre-released (experimental) version of Mentor Labs website. That means we are still working to improve the site and breaking changes may occur anytime. So please avoid providing your real profile details as the app isn't fully secure and data may get erased any time. Meanwhile, you can help us by raising an issue if you find any bugs in the project.
- Authentication and Authorization
- Personal Dashboard for Mentor and Mentee
- Recommendation System
- Apply and Respond Mentorship Request
- Create and join private room
- Video and text based chat
- Screen sharing
- Frontend : Typescript, React.js, Redux Toolkit
- Styling : Ant Design, Custom Css with BEM naming convention
- Backend : Typescript, Node.js, Express.js
- Database : TypeORM with PostgreSQL database
- Tesing : Jest, React Testing Library
- Realtime Communication : simple-peer (WebRTC), Socket.io
- Algorithms : Jaccard Similarity, Supervised recommendation algorithm, QuickSort Hoare
- Deployment : Server, Client and Database hosted on Heroku
Before running app locally make sure that you've install flowiing things in your machine:
- Node.js version v14.18.1 (if you are using nvm try
nvm use 14.18.1
) and yarn version v1.22.17 - PostgreSQL >= v12.8
- Download and install Beekeeperstudio as database toolkit for easy database setup. (Optional)
https://github.com/adarshaacharya/MentorLabs.git
cd into the directory
cd MentorLabs
In the root folder do:
# first install server deps
yarn
# also install client deps
cd client && yarn
- Create
.env
file in the root directory.
touch .env
-
Open .env.example file, copy everything
-
Paste the content in
.env
file -
Create database named
mentor-labs
with Beekeeper Studio orpostgres-cli
from your terminal. (You don't have to create tables for database)
CREATE TABLE "mentor-labs";
-
Again open
.env
file and replace fields likeDB_USER
,DB_PASS
with your own credentials. -
Create account on Twilio and open the Twilio dashboard.
-
Copy
TWILIO_ACCOUNT_SID
andTWILIO_AUTH_TOKEN
keys and paste it on.env
file on their respective fields. -
For client too, we have small issue (might be fixed on near future). Go to
client
folder and create.env
file.
cd client && touch .env
- Copy everything of .env.example located inside client directory and paste it inside
.env
file of client directory. (You ca leaveREACT_APP_SENTRY_DSN
field empty)
The configuration is quite hard tbh, if you encounter any problems in setup you can directy create issue. We will try to work on that.
Now, you can run application by
yarn dev
# Server runs on http://localhost:5000 and client on http://localhost:3000
There is a Heroku post build script so that you do not have to compile your React frontend manually, it is done on the server. Simply push to Heroku and it will build and load the client index.html page
Contributions, issues and feature requests are welcome. After cloning & setting up project locally, you can just submit a PR to this repo and it will be deployed once it's accepted. Read CONTRIBUTING.md for complete contributing guidelines.
- WIP
Copyright © 2021 Aadarsha Acharya. This project is MIT licensed.