Code2Gather is designed to help programmers to secure internships and jobs by facilitating mock interviews. It allows you to focus on practicing, instead of spending time finding people to practice with.
On our platform, you can simply select a question difficulty that you wish to attempt, and we will match you with a suitable mock interview partner! No need to worry about the questions or channels for feedback - Code2Gather will settle everything for you.
Members of CS3219 Team 32:
This project requires Docker and Docker Compose to be installed. We will be using the docker-compose family of commands.
We will also have some local dependencies to help with developer UX. This will require the following:
One easy way to install Node is to simply download from their website.
Another alternative way is to utilise nodenv. Do check out their README.md for OS-specific installation instructions.
Once you have Node installed, simply install Yarn using npm:
npm install --global yarnWe will be using Yarn for Node dependency management, as well as for its workspaces functionality, the latter of which will streamline some project-level processes, such as pre-commit checks.
Similar to Node, use pyenv to make your life easier.
curl https://pyenv.run | bash
pyenv install 3.9.4 # >= 3.9
pyenv local 3.9.4Install Poetry, version 1.1.9.
curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/install-poetry.py | env POETRY_VERSION=1.1.9 python -Or if you already have Poetry installed, simply run:
poetry self updatePoetry is our choice of dependency manager for our Python packages.
You can install Go from their website.
First, clone this repository:
git clone https://github.com/CodeToGather/Code2Gather.gitThen, navigate to the project root and install the dependencies:
cd Code2Gather
yarn install-all
# Or if your machine cannot cope with the installations being run parallel,
# you can run `yarn install-all-ci` instead, which does things sequentiallyPlease do not navigate to the packages/services individually! This single
yarn install-allwill do the trick.
Make a copy of the docker-compose.yml file:
cp docker-compose.yml docker-compose.local.ymlFill up the environment variables that are empty in the docker-compose.local.yml file.
Then, start developing by running:
yarn startPlease read CONTRIBUTING.md for our commit guidelines.
The easiest way to start committing is to run the following command anywhere within the project directory:
yarn commitYou will be guided through an interactive prompt that will help you craft a beautiful commit message, using commitizen.
First, create a new directory and add a package.json file there:
mkdir package
cd package
touch package.jsonThen copy the following content into the new package.json:
{
"name": "",
"version": "0.0.1",
"description": "",
"private": true
}The above is the bare minimum you must have for the new package. Then, head over to the root package.json and add a new install-all:package script:
"scripts": {
"install-all:package": "cd package && yarn install"
}You will then need to check for the following cases:
-
Do you have non-Node installations? For example, you're using Python and Poetry.
If so, add the relevant installation command under the
postinstallscript for your package'spackage.json:"scripts": { "postinstall": "poetry install" }
See
code-executor/package.jsonfor an example. -
Do you have files besides
.js,.jsx,.tsor.tsxto lint?If so, add a lint command under your package's
package.jsonand add the following to the rootpackage.json:"scripts": { "lint:package": "cd package && lint" }
You will also need to add the
lint-stageddev dependency to your package and add the relevant linting tolint-stagedunder your package'spackage.json. An example would beroom'spackage.json:"lint-staged": { "**/*.go": [ "gofmt -w ." ] }
You will then need to head over to the root
package.jsonand add a newpre-commit:packagescript:"scripts": { "pre-commit:package": "cd package && yarn lint-staged" }
-
Do you have any set-up required? Such as creating a database.
If so, add a new
setup:packagescript to the rootpackage.json."scripts": { "setup:package": "<insert commands here>" }
Note that this won't be utilised generally because of Docker Compose. But just to support local development without Docker, this would be ideal to add.

