Bridge-In-Tech (BIT) is an application that allows industries/companies, mentors, and students to actively collaborate with one another.
This is the frontend client of Bridge-In-Tech which is a Reactjs web application that consumes the BridgeInTech backend REST API server. BIT backend server also consumes the Mentorship System (MS) backend server for some of its functionalities. Both BIT and MS backend servers are connected to a single PostgreSQL database.
This project is under active development
Please read our Contributing Guidelines, Code of Conduct and Reporting Guidelines thoroughly.
To start contributing to the project, set up the frontend environment on your local machine. As the BIT web application consumes BridgeInTech backend REST API which connects to Mentorship System (MS) backend REST API, the two backend servers (BIT and MS) need to be run for the BIT web application to work properly.
Contributors have the option to run a local BIT frontend server that connects to BIT and MS backend servers that are also run locally. Another option is to connect to the remote BIT backend on the Heroku server which already connects to the remote MS backend Heroku server that already modified to support BIT development (from this point onward will be called MS-for-BIT). Follow the instructions below to set up the development environment:
- IMPORTANT!!! You must setup the BIT backend server and postgresql database first before setting up the MS-for-BIT server on the next step. To do this, follow the instruction here. Once done, you can proceed to step 2 below.
- Setup MS-for-BIT server by following the setup instruction for Mentorship Backend here but using the codebase from Maya Treacy's fork repository ms-backend-server branch. To do this, run the following codes on the terminal after you fork and clone the MS backend repository:
$ git checkout -b bit-ms-backend-server develop
$ git pull https://github.com/mtreacy002/mentorship-backend.git ms-backend-server
Follow the rest of the setup instructions (providing the environment credentials) mentioned on the MS README Run app
section. Note Notice that since BIT already occupies port 5000 of your localhost, the MS server is set to run on port 4000 for this BridgeInTech project.
- Go to
src/config.js
file - Comment out line 1 that sets
localhost
as the base REST API url for MS server - Uncomment line 2 to set the BIT Heroku server as the base REST url for MS server
Important
-
Heroku servers are currently unavailable because the free services we are using are not able to cope with BridgeInTech architecture. Detailed explanation about this can be found here
-
Even if we found the way to make Heroku servers work, please be aware that there are drawbacks if you chose to run the BIT and MS backend servers remotely (option 2):
- There will be a significant delay from the time when the request is made on the BIT web GUI to the time the response is received. This is because BIT Heroku makes calls to MS-for-BIT Heroku backend server for MS related functionalities. Both of these Heroku servers are running on free
dynos
that have limited capacity. When you run both BIT and MS-for-BIT servers locally, you will not have this time lag issue. - The BIT Heroku backend server will only carry the latest code that have been approved and merged to the develop branch. This means, if you are working on a PR or testing an open PR, this Option 2 (running remote BIT Heroku server) MUST NOT BE USED.
Now that you have set the MS backend, BIT backend and frontend servers, you can run BIT React application by following the steps below:
- install dependencies by running the command below
$ npm install
- run the app using the command below
$ npm start
- go to the browser on http://localhost:3000/
NOTE:If you have chosen to use local BIT and MS backend servers, make sure you run both of them as well as the frontend server. If you chose the Heroku BIT backeend server, then go to config.js
file and uncomment the Heroku server url and comment out the localhost url instead (see screenshot below).
This repository has the following branches:
- master: This branch contains the deployment of the backend.
- develop: This contains the latest code. All the contributing PRs must be sent to this branch.
If you have any questions or want to discuss something about this repo, feel free to join our Zulip Community! If you are a new contributor, head over to this project's stream #bridge-in-tech on Zulip to see ongoing discussions.
The project is licensed under the GNU General Public License v3.0. Learn more about it in the LICENSE file.