Coder Social home page Coder Social logo

opencompetencies's Introduction

Open Competencies

Sections

Vision

Open Competencies is a dynamic list of all the information you could learn. It is a tree of knowledge, with different relationships identified between all of the bits of knowledge.

How do you use it? Let's say you want to be a professional programmer. You click a button, and all of the bits of knowledge needed to be a programmer light up. You realize you don't just want to be a programmer. You also want to write really well, not just about technical topics. So you click a few buttons that describes how you want to use writing in your life. All of the bits that relate to writing well light up.

A separate tool will let you take a copy of your learning targets, and track your progress in learning them. That needs to be a separate tool, because it requires a different kind of security model.

More information is included in the VISION.md document.

top

Setting up a local development version

You can see a live version of this project at http://opencompetencies.org, as long as it does not get clobbered because it is not set up for scale yet. If you want to ask questions or discuss the project, feel free to share your thoughts in issue 2, Initial Feedback and Discussion.

Instructions at this point are based on an Ubuntu development environment, or something similar. You may need some system-wide tools installed, which we can help clarify if you need. If you have any questions about setting up a local development environment for this project, please visit issue 1, Installation Questions.

Go to a directory where you want to work with this project, and clone the repository, and cd into the new directory:

$ cd /srv
/srv $ git clone https://github.com/openlearningtools/opencompetencies
/srv $ cd opencompetencies

Create a virtual environment called venv, and install requirements:

/srv/opencompetencies $ virtualenv --distribute venv
/srv/opencompetencies $ source venv/bin/activate
(venv)/srv/opencompetencies $ pip install -r requirements.txt

Create a database for this project. The settings, and some of the documentation assume you are using postgres.

$ su postgres
$ psql template1
template1=# CREATE DATABASE opencompetencies_db OWNER db_username ENCODING 'utf8';
 template1=# \q
 $ su comp_username

Set the DATABASE_URL environment variable. If you want to turn on debugging, set the DJANGO_DEBUG environment variable. If you are going to hack on this project, you can make these settings part of your venv/bin/activate script, and they will be set each time you activate the venv. You will also need to set a DJANGO_SECRET_KEY environment variable.

(venv)/srv/opencompetencies $ export DATABASE_URL=postgres://db_username:password@localhost/opencompetencies_db
(venv)/srv/opencompetencies $ export DJANGO_DEBUG=True
(venv)/srv/opencompetencies $ export DJANGO_SECRET_KEY=your_secret_key

Run syncdb, create a superuser, migrate competencies, and start the development server:

(venv)/srv/opencompetencies $ python manage.py syncdb
(venv)/srv/opencompetencies $ python manage.py migrate competencies
(venv)/srv/opencompetencies $ python manage.py runserver

Visit http://localhost:8000, and verify that your local deployment works.

To avoid having to set the environment variables each time you open this project, you can have the virtual environment's activate script do it for you. Create a file called .env, in /srv/opencompetencies:

(venv)/srv/opencompetencies $ touch .env

Add the following lines to .env:

DATABASE_URL=postgres://db_username:password@localhost/opencompetencies_db
DJANGO_DEBUG=True
DJANGO_SECRET_KEY=your_secret_key

Add the following lines to the end of /venv/bin/activate:

# Use my env variables:
export $(cat /srv/opencompetencies/.env)

Now these environment variables will be loaded each time you activate your virtual environment. Both the .env file and the venv/ directory are listed in .gitignore, so neither will be committed in your local repository.

top

Pre-coding decisions

A number of decisions need to be made before we write any code, beyond the demo code that has already been written:

  • Agree on the overall scope of this project, as laid out in the Vision and Use Cases sections.
  • Write any additional functional specs needed before coding.
  • Agree on a taxonomy for the hierarchy of learning targets.
  • Ensure the taxonomy is trademark-free, and designate an appropriate open license for the taxonomy.
  • Agree on an overall approach to identifying the kinds of relationships between different pieces of knowledge?
  • (done) Write a glossary for the first few levels in the taxonomy
  • Move much of this file to a wiki? May be better than current /docs folder setup.

top

License

Open Competencies is released under the AGPLv3. If you feel it should be released under a more permissive license, please get in touch and I will reconsider. I want to build a developer community around the project, but I don't want to see this code used in a proprietary ed-tech startup.

top

About

Open Competencies is currently being developed by Eric Matthes (ehmatthes). If you would like to get in touch feel free to send me an email at [email protected], or find me on twitter @ehmatthes.

If you would like to support development of Open Competencies, please consider supporting me on Gittip:

Gittip

top

opencompetencies's People

Contributors

ehmatthes avatar

Watchers

Alex Moser avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.