Skip to content

sicambria/skilltree

Skill Tree

A web application to visualize skills, motivate self-development, and foster a culture of collaboration and knowledge sharing.

Total alerts Maintainability Test Coverage

✨ Features

  • Visual Skill Recording – Track your skills and proficiency levels in visual form
  • Self-Development Awareness – Immediately see growth opportunities, available help & trainings
  • Personal Learning Plans – Create time-framed development roadmaps
  • Expert Discovery – Find people with specific skills willing to share knowledge
  • Peer-to-Peer Training – Request or offer training for specific skills at any level

🛠️ Tech Stack

Component Technology
Runtime Node.js
Framework Express.js
Database MongoDB
Web Server Nginx
SSL Let's Encrypt

🚀 Quick Start

Prerequisites

Local Development

  1. Install dependencies:

    npm install
  2. Initialize Database: Ensure MongoDB is running, then seed the database with initial data:

    npm run db:seed
  3. Run the Application:

    • Development mode (with auto-reload):
      npm run dev
    • Production mode:

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 # Configure before running ./skilltree_install_debian9.sh


**Option 2: Docker (Beta)**

```bash
# Build images
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/

# Run containers (in order)
docker run -d -p <IP>:27017:27017 localhost/skilltree-mongodb
docker run -d -p <IP>:3000:3000 -e DBADDRESS=<IP> localhost/skilltree-nodejs
docker run -d -e BACKEND=<IP> -p 0.0.0.0:80:80 localhost/skilltree-nginx

Production Nginx Setup

After installation, configure /etc/nginx/sites-available/default:

server {
    listen 443 ssl default_server;
    listen [::]:443 ssl default_server;

    ssl_certificate     /etc/letsencrypt/live/YOUR_DOMAIN/cert.pem;
    ssl_certificate_key /etc/letsencrypt/live/YOUR_DOMAIN/privkey.pem;

    location / {
        proxy_pass http://localhost:3000/;
    }
}

server {
    listen 80 default_server;
    listen [::]:80 default_server;
    return 301 https://$host$request_uri;
}

⚙️ Configuration

Environment Variables (.env)

For local development, a .env file is used to store environment-specific settings. This file is ignored by Git.

Default credentials for local testing:

  • Username: admin
    • Password: admin
  1. Domain: Register a domain (e.g., via Freenom)
  2. Security: Update config.js with a long, random secret key
  3. Database: Configure MongoDB connection (local or MongoDB Atlas)

📖 Documentation

🤝 Contributing

We welcome contributions! You can help by:

  • Extending the list of skills and trees
  • Improving code quality and test coverage
  • Creating new features
  • Spreading the word about SkillTree

Please read our Contributing Guidelines before submitting PRs.

📜 License

This project is dual-licensed to ensure both systemic openness and software freedom:

About

Skill tree is a web app to visualize skills, motivating people for self-development and supporting the culture of cooperation and knowledge sharing.

Topics

Resources

License

AGPL-3.0, Unknown licenses found

Licenses found

AGPL-3.0
LICENSE
Unknown
LICENSE-TEXT

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors