/talentbook

A platform for sharing skills, finding mentors and building teams

Primary LanguageTypeScriptMIT LicenseMIT

Talentbook

Build Status

Talentbook is a skill directory platform where you can share your experience level in certain technologies and wether you prefer to work with the technology or not.

This can help building teams or finding a mentor if you want to learn a new technology.

This project is inspired by the SkillWill tool at SinnerSchrader and the related bachelor thesis by Torben Reetz.

Tech stack

Running talentbook on Docker

talentbook comes with a ready-to-use docker configuration:

  • copy the .sample.env configuration to .env and adjust settings accordingly.
  • to build the docker images, you can use the ./docker-build.sh shell script
  • docker compose up -d to start, docker compose down to stop the services
  • docker compose --profile dev up to additionally start development-related containers (such as smtp4dev and adminer)
  • note: when you used docker compose --profile dev up -d with the --profile dev option, remember to also specify it when shutting the services down: docker compose --profile dev down -d
  • to reset the database, delete the volume via docker volume rm talentbook_pgdata

Running talentbook locally

npm install
npm run bootstrap

# start backend
npm run backend

# start frontend
npm run frontend

# start smtp4dev
npm run smtp4dev

# Run backend, frontend and smtp4dev both concurrently
npm start

Additional setup

Database

The database connection is configured in the .env.local file. You can copy the defaults from the .env file.

Defaults are:

DB_TYPE=postgres
DB_HOST=localhost
DB_PORT=5432
DB_USER=talentbook
DB_PW=talentbook
DB_NAME=talentbook

Currently, only postgres is supported.

GitHub integration

You can provide a "Login/Sign Up via Github" button. Create an oauth key and put them in the backend's .env.local file (or when using docker, use the top .env file):

# packages/backend/.env.local:
GITHUB_CLIENT_ID=deadbeefdeadbeef
GITHUB_CLIENT_SECRET=deadbeefdeadbeefdeadbeefdeadbeef

Backend API