Skip to content

puzzle/skills

Repository files navigation

contributions welcome Build Status Stable Build Status GitHub contributors GitHub last commit License: AGPL v3 GitHub stars

PuzzleSkills is an open source webapplication to facilitate skill management.
With the help of PuzzleSkills Users can manage their profiles, CVs and Skills. Managing employees and getting an overview of each of their skills has never been easier.

Skills Workflow

Disclaimer

We are currently rewriting the application and completely removing EmberJS. The new Techstack will solely rely on Rails and some Hotwire/Stimulus. Therefore, the documentation below is not accurate anymore and will be rewritten soon.

If you still need the old state you can find the last release here. The EmberJS-based Application will no longer be maintained.

However, we intend to provide the same functionality in the new Tech Stack without any fundamental data changes.

Prerequisites

You will need the following things properly installed on your computer:

Setup dockerized Application👩🏽‍💻

We're glad you want to setup your machine for PuzzleSkills development 💃

Openshift deployment

To deploy the project to openshift make sure you set the following environment variables:

  • LOCAL=false
  • client_id:
  • secret:
  • host_url:
  • realm:
  • admin_role: (Not required)

Windows users

If you're on Windows you should be able to Download Ubuntu from Microsoft Store. Note that you need to enable Subsystem for Linux and virtual machine platform in your Windows features.
Then you can open Ubuntu and follow the manual using the Ubuntu console.
When you finished use your Windows IDE and open the skills folder that's located in your Linux subsystem -> Ubuntu and start developing.
If this doesn't work you can always use a VM.

First you need to clone this repository:

mkdir -p ~/git/ && cd ~/git/
git clone https://github.com/puzzle/skills.git && cd ~/git/skills

⚡ If your user id is not 1000 (run id -u to check), you need to export this as env variable: export UID=$UID before running any of the further commands. Maybe you want to add this to your bashrc.

Start Development Containers

To start the PuzzleSkills application, run the following commands in your shell:

docker compose build
docker compose up -d

⚡ This will also install all required gems and seed the database, which takes some time to complete if it's executed the first time. You can follow the progress using docker-compose logs --follow rails (exit with Ctrl+C).

After the startup has completed (once you see Listening on tcp://0.0.0.0:4200 in the logs), make sure all services are up and running:

docker-compose ps

This should look something like this:

Name                           Command                State   Ports                                                            
-------------------------------------------------------------------------------------------------------
skills-ember-1                 skills-postgres-1      Up      0.0.0.0:4200->4200/tcp, :::4200->4200/tcp
skills-postgres-1              docker-entrypoint.s…   Up      0.0.0.0:5432->5432/tcp, :::5432->5432/tcp
skills-rails-1                 rails-entrypoint ra…   Up      0.0.0.0:3000->3000/tcp, :::3000->3000/tcp

Access the web application by browser: http://localhost:4200 and enjoy the ride! docker whale

Testing

  • To run the backend tests run rake spec
  • Frontend tests can be executed with rake spec:frontend
  • Frontend tests with livereload rake spec:frontend:serve
  • To run a single test run the following command in the frontend folder npm test --filter "some filter words"
  • There is also rake ci and rake ci:nightly which should be periodically exectued by a build job (e.g. on jenkins)
  • To use a user without admin privileges change email in app/controllers/application_controller.rb#authenticate_auth_user" to "user@skills.ch"

Documentation

Find further Documentation at the links below

Changelog
Configuration
Contributing
DockerImage