Skill tree is a web app to visualize skills, motivating people for self-development and supporting the culture of cooperation and knowledge sharing.
Main features:
- Record your current skills and their levels in a visual form
- Immediately see the self-development options ahead of you (increase awareness of skills, available help & trainings)
- Inspire people to think about their future & create a personal learning plan with time-framed steps
- Find people fast with a specific skill & willingness to share their knowledge (enhance collaboration)
- Making it easy to offer/request training for a specific skill and a specific skill level (build p2p training culture)
See the Projects tab.
Skill Tree needs the following components to operate:
- node.js - An open-source, cross-platform JavaScript run-time environment that executes JavaScript code outside of a browser.
- Express - A web framework for Node.js
- MongoDB - A free and open-source cross-platform document-oriented database program. Classified as a NoSQL database program, MongoDB uses JSON-like documents with schemata.
- Nginx - A web server which can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache.
- A GNU/Linux distribution, e.g. Debian or Ubuntu.
Do you want to contribute? Awesome!
- You can help us extending the list of skills and trees
- You can help improving code quality, test coverage and creating new features
- You can let more people know what SkillTree is & attract more contributors
Please read the contribution guidelines.
You will need a domain name to install (HTTPS will be configured by default via Let's Encrypt.)
If you are not familiar with server setup, we recommend to read through the following tutorials:
-
Preferred - using Nginx: How To Secure Nginx with Let's Encrypt on Debian 9
- Or if you want to use Apache:
cd
mkdir skilltree
cd skilltree
wget https://raw.githubusercontent.com/sicambria/skilltree/master/install/skilltree_install_debian9.sh ; chmod +x skilltree_install_debian9.sh ; nano skilltree_install_debian9.sh
After running the install script, finalize server configuration.
For Nginx, edit "sites-available/default" (or your domain specific config file) after the installation. Replace YOUR_DOMAIN.ORG to you own domain name.
nano /etc/nginx/sites-available/default
server {
listen 443 ssl default_server;
listen [::]:443 ssl default_server;
ssl_certificate /etc/letsencrypt/live/YOUR_DOMAIN.ORG/cert.pem;
ssl_certificate_key /etc/letsencrypt/live/YOUR_DOMAIN.ORG/privkey.pem;
location / {
proxy_pass http://localhost:3000/;
}
}
server {
listen 80 default_server;
listen [::]:80 default_server;
return 301 https://$host$request_uri;
}
docker build --no-cache -t localhost/skilltree-mongodb:latest ./docker-build/mongodb/
docker build --no-cache -t localhost/skilltree-nginx:latest ./docker-build/nginx/
docker build --no-cache -t localhost/skilltree-nodejs:latest ./docker-build/nodejs/
docker run -d -p <IPADDRESS>:27017:27017 localhost/skilltree-mongodb
docker run -d -p <IPADDRESS>:3000:3000 -e DBADDRESS=<IPADDRESS> localhost/skilltree-nodejs
docker run -d -e BACKEND=<IPADDRESS> -p 0.0.0.0:80:80 localhost/skilltree-nginx
- Domain name required, you can register a free domain with Freenom
- Modify config.js "secret" to be a long and random key
- Update mongoDB connection. If you want, you can use a cloud-hosted MongoDB with a GUI editor
BSD License 2.0