{"id":18843621,"url":"https://github.com/adarshaacharya/mentorlabs","last_synced_at":"2025-04-14T07:32:31.823Z","repository":{"id":39978427,"uuid":"373168091","full_name":"adarshaacharya/MentorLabs","owner":"adarshaacharya","description":"Learn, collab and grow together to the moon. :rocket:","archived":false,"fork":false,"pushed_at":"2024-01-10T09:28:05.000Z","size":8117,"stargazers_count":47,"open_issues_count":8,"forks_count":14,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-27T21:38:39.208Z","etag":null,"topics":["express","hacktoberfest","hacktoberfest-accepted","hacktoberfest2021","mentorlabs","nodejs","postgres","postgresql","reactjs","redux-toolkit","socket-io","typeorm","typescript","webrtc"],"latest_commit_sha":null,"homepage":"https://mentorlabs.herokuapp.com/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/adarshaacharya.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-06-02T12:57:12.000Z","updated_at":"2025-01-19T17:23:51.000Z","dependencies_parsed_at":"2023-01-19T05:31:04.391Z","dependency_job_id":null,"html_url":"https://github.com/adarshaacharya/MentorLabs","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adarshaacharya%2FMentorLabs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adarshaacharya%2FMentorLabs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adarshaacharya%2FMentorLabs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adarshaacharya%2FMentorLabs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/adarshaacharya","download_url":"https://codeload.github.com/adarshaacharya/MentorLabs/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248839547,"owners_count":21169828,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["express","hacktoberfest","hacktoberfest-accepted","hacktoberfest2021","mentorlabs","nodejs","postgres","postgresql","reactjs","redux-toolkit","socket-io","typeorm","typescript","webrtc"],"created_at":"2024-11-08T02:58:23.857Z","updated_at":"2025-04-14T07:32:30.497Z","avatar_url":"https://github.com/adarshaacharya.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n\u003ca href=\"https://mentorlabs.herokuapp.com/\"\u003e\n\u003cimg src=\"media/logo.svg\"  alt=\"logo\" height=\"100px\" width=\"200\"/\u003e\n\u003c/a\u003e\n\n\u003ch3 align=\"center\"\u003eLearn, Collab \u0026 Grow Together.\u003c/h3\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"https://img.shields.io/github/workflow/status/adarshaacharya/MentorLabs/build\" alt=\"github actions\" /\u003e\n\n\u003ca href=\"https://github.com/adarshaacharya/MentorLabs/blob/master/LICENSE\" target=\"_blank\"\u003e\n\u003cimg alt=\"License: MIT\" src=\"https://img.shields.io/github/license/adarshaacharya/MentorLabs\" /\u003e\n\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n\u003ca href=\"https://mentorlabs.herokuapp.com\"\u003eView Demo\u003c/a\u003e\n·\n\u003ca href=\"https://github.com/adarshaacharya/MentorLabs/issues\"\u003eReport Bug\u003c/a\u003e\n·\n\u003ca href=\"https://github.com/adarshaacharya/MentorLabs/issues\"\u003eRequest Feature\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\nMentorLabs 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. \n\u003c/p\u003e\n\n\u003e ⚠️ This is pre-released (experimental) version of [Mentor Labs website](https://mentorlabs.herokuapp.com). 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](https://github.com/adarshaacharya/MentorLabs/issues/new/choose) if you find any bugs in the project.\n\n## Features\n\n- Authentication and Authorization\n- Personal Dashboard for Mentor and Mentee\n- Recommendation System\n- Apply and Respond Mentorship Request\n- Create and join private room\n- Video and text based chat\n- Screen sharing\n\n## Tech Stack\n\n- **Frontend** : Typescript, React.js, Redux Toolkit\n- **Styling** : Ant Design, Custom Css with BEM naming convention\n- **Backend** : Typescript, Node.js, Express.js\n- **Database** : TypeORM with PostgreSQL database\n- **Tesing** : Jest, React Testing Library\n- **Realtime Communication** : simple-peer (WebRTC), Socket.io\n- **Algorithms** : Jaccard Similarity, Supervised recommendation algorithm, QuickSort Hoare\n- **Deployment** : Server, Client and Database hosted on Heroku\n\n## Local Development\n\nBefore running app locally make sure that you've install flowiing things in your machine:\n\n- Node.js version _v14.18.1_ (if you are using nvm try `nvm use 14.18.1` ) and yarn version _v1.22.17_\n- PostgreSQL \u003e= _v12.8_\n- Download and install [Beekeeperstudio](https://www.beekeeperstudio.io/) as database toolkit for easy database setup. (Optional)\n\n#### Step 1: Clone the repo\n\n```sh\nhttps://github.com/adarshaacharya/MentorLabs.git\n```\n\n#### Step 2 : Install dependencies\n\ncd into the directory\n\n```sh\n cd MentorLabs\n```\n\nIn the root folder do:\n\n```sh\n  # first install server deps\n  yarn\n\n  # also install client deps\n  cd client \u0026\u0026 yarn\n```\n\n#### Step 3 : Configuration\n\n1.  Create `.env` file in the root directory.\n\n```sh\n  touch .env\n```\n\n2. Open [.env.example](./.env.example) file, copy everything\n\n3. Paste the content in `.env` file\n\n4. Create database named `mentor-labs` with [Beekeeper Studio](https://www.beekeeperstudio.io/) or `postgres-cli` from your terminal. _(You don't have to create tables for database)_\n\n```sql\n  CREATE TABLE \"mentor-labs\";\n```\n\n5. Again open `.env` file and replace fields like `DB_USER`, `DB_PASS` with your own credentials.\n\n6. Create account on [Twilio](https://twilio.com/) and open the [Twilio dashboard](https://console.twilio.com/?frameUrl=/console).\n\n7. Copy `TWILIO_ACCOUNT_SID` and `TWILIO_AUTH_TOKEN` keys and paste it on `.env` file on their respective fields.\n\n8. For client too, we have small issue (might be fixed on near future). Go to `client` folder and create `.env` file.\n\n```sh\n  cd client  \u0026\u0026 touch .env\n```\n\n9. Copy everything of [.env.example](./client/.env.example) located inside client directory and paste it inside `.env` file of client directory. (You ca leave `REACT_APP_SENTRY_DSN` field empty)\n\n_The configuration is quite hard tbh, if you encounter any problems in setup you can directy create [issue](github.com/adarshaacharya/MentorLabs/issues). We will try to work on that._\n\n#### Step 4: Usage\n\nNow, you can run application by\n\n```sh\nyarn dev\n\n# Server runs on http://localhost:5000 and client on http://localhost:3000\n\n```\n\n## Production Deployment\n\nThere 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\n\n## Contributing\n\nContributions, issues and feature requests are welcome. After cloning \u0026 setting up project locally, you can just submit a PR to this repo and it will be deployed once it's accepted.\nRead [CONTRIBUTING.md](https://github.com/adarshaacharya/MentorLabs/blob/master/CONTRIBUTING.md) for complete contributing guidelines.\n\n## Contributors\n\n- WIP\n\n## License\n\nCopyright © 2021 [Aadarsha Acharya](https://adarshaacharya.com.np).\nThis project is MIT licensed.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadarshaacharya%2Fmentorlabs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fadarshaacharya%2Fmentorlabs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadarshaacharya%2Fmentorlabs/lists"}