Coder Social home page Coder Social logo

p2pu / lernanta Goto Github PK

View Code? Open in Web Editor NEW

This project forked from theinterned/batucada

144.0 12.0 65.0 21.07 MB

Platform for running open online courses.

Home Page: https://courses.p2pu.org

License: Other

Makefile 0.02% Python 35.92% HTML 14.60% Shell 0.01% JavaScript 36.16% PHP 0.61% CSS 11.87% CoffeeScript 0.06% Ruby 0.01% SCSS 0.76%

lernanta's Introduction

Lernanta

This project is outdated. If you would like to run your own course, have a look at https://course-in-a-box.p2pu.org.

Lernanta is the software that supports P2PU's site, which started as a fork of Mozilla drumbeat's Batucada project.

Get Involved

To help out with Lernanta, join the P2PU dev mailing list and introduce yourself. We're currently looking for help from Django / Python and front-end (HTML, CSS, Javascript) developers.

Interested in getting involved in Lernanta code development? Check out the development wiki for more info!

Setup the lernanta development environment quickly with our environment setup script Or if you enjoy linux command line hacking, check out our install docs on our wiki.

lernanta's People

Contributors

arturh avatar benrito avatar brianloveswords avatar cillian avatar dirkcuys avatar ercchy avatar gvwilson avatar houshuang avatar inkbug avatar jacojoubert avatar jessykate avatar jledbetter avatar joelcrocker avatar johndbritton avatar josmas avatar jtatum avatar juliakm avatar laurahilliger avatar mkcode avatar mozzadrella avatar paulosman avatar phn avatar platvampb avatar rossbruniges avatar rsoares avatar theinterned avatar vtamara avatar walkah avatar zarrabeitia avatar zuzelvp avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

lernanta's Issues

Display dates in the timezone of the user

Currently dates on the site are displayed according to the timezone django is configured for. This should be changed so that dates displays according to the timezone of the user browsing the site

Testing Github Tasks

Please ignore. I am testing a number of issues/task trackers for use at P2PU.

OAuth Provider Support

In order to provide standards based authentication to the P2PU API, we'll need to implement support for OAuth 2.0. I've started a first cut of this with bd269c9. To test out what is currently there:

  • Create a client application using the Django console:
from django.contrib.auth.models import User
from oauth2app.models import Client

user = User.objects.get(...) # get some user
client = Client.objects.create(name='Sample App', user=user, redirect_uri='http://localhost:3000')

# print client credentials
print client.key
print client.secret
  • Construct authorization URL and authorize the app.

http://localhost:8000/oauth/authorize?client_id=<from_above>&redirect_uri=http://localhost:3000/callback&response_type=code

  • Approve the app's authorization request and you'll be redirected to the callback URL (it's fine if it 404s) with a code query string parameter. Save that code for the following step.
  • Exchange authorization code for access token. This is best done with curl:

curl -X POST http://localhost:3000/oauth/token -d'client_id=from_above' -d'client_secret=from_above' -d'code=from_above' -d'redirect_uri=http://localhost:3000/callback' -d'grant_type=authorization_code'

If successful, the response should be a JSON object with information about the access token.

  • Extract the access token property to test out an authenticated request:

curl "http://localhost:3000/oauth/test?bearer_token=from_above"

Recommended steps to complete this issue:

  1. Security audit. This uses oauth2app which seems fairly popular. We should still make sure we're not introducing any security vulnerabilities by adding this.
  2. Pretty up the Authorization page (templates/oauth/authorize.html).
  3. Implement support for authentication throughout the existing API.

Use commenter username for from address of notifications

When a user replies to a comment, the username should be used in the from address. Ex. if john replied on a message, the from address should be set as "john [email protected]"

This will require that the module sending the notification needs to include the user that causes the notification. This may require some consideration to avoid complicating the notification interface unnecessarily.

See https://github.com/p2pu/lernanta/blob/master/lernanta/apps/notifications/tasks.py#L23

Use username instead of email address for reply callback

The current implementation of reply by email will send the user's email address as identifying the user. This isn't a problem currently, but in the future may expose user emails to external components using the notifications module.

Rather that using the email address, the username should be used!

ImportError: No module named djcelery (yet pip install says it is there)

What could be missing here? djcelery can't be found, yet pip says it is already installed:

[bnesbitt@web309 myaskbot2]$ python settings.py
Traceback (most recent call last):
  File "settings.py", line 221, in <module>
    import djcelery
ImportError: No module named djcelery

[bnesbitt@web309 myaskbot2]$ python
>>> import djcelery
ImportError: No module named djcelery
>>> import django-celery
  File "<stdin>", line 1
    import django-celery
                 ^
SyntaxError: invalid syntax
>>> 

[bnesbitt@web309 myaskbot2]$ pip install django-celery
Requirement already satisfied (use --upgrade to upgrade): django-celery in /home/bnesbitt/lib/python2.7/django_celery-2.2.7-py2.7.egg
Requirement already satisfied (use --upgrade to upgrade): django-picklefield in /home/bnesbitt/lib/python2.7/django_picklefield-0.1.9-py2.7.egg (from django-celery)
Requirement already satisfied (use --upgrade to upgrade): celery==2.2.7 in /home/bnesbitt/lib/python2.7/celery-2.2.7-py2.7.egg (from django-celery)
Requirement already satisfied (use --upgrade to upgrade): python-dateutil>=1.5.0,<2.0.0 in /home/bnesbitt/lib/python2.7/python_dateutil-1.5-py2.7.egg (from celery==2.2.7->django-celery)
Requirement already satisfied (use --upgrade to upgrade): anyjson>=0.3.1 in /home/bnesbitt/lib/python2.7/anyjson-0.3.1-py2.7.egg (from celery==2.2.7->django-celery)
Requirement already satisfied (use --upgrade to upgrade): kombu>=1.1.2,<2.0.0 in /home/bnesbitt/lib/python2.7/kombu-1.5.1-py2.7.egg (from celery==2.2.7->django-celery)
Requirement already satisfied (use --upgrade to upgrade): pyparsing>=1.5.0,<2.0.0 in /home/bnesbitt/lib/python2.7/pyparsing-1.5.6-py2.7.egg (from celery==2.2.7->django-celery)
Requirement already satisfied (use --upgrade to upgrade): amqplib>=1.0 in /home/bnesbitt/lib/python2.7/amqplib-1.0.2-py2.7.egg (from kombu>=1.1.2,<2.0.0->celery==2.2.7->django-celery)
Cleaning up...

[bnesbitt@web309 myaskbot2]$ yolk --list
DecoratorTools  - 1.7          - active 
MySQL-python    - 1.2.2        - active 
setuptools      - 0.6c9        - active 
yolk            - 0.4.1        - active development (/home/bnesbitt/lib/python2.4/yolk-0.4.1-py2.4.egg)
''''

Issue test

This is a test. Sorry for the email you're all about to receive.

load secure recaptcha

The current reCaptcha field loads from an insecure URL causing it to not show up on some browsers. This should be fixed so that the reCaptcha loads via https

Error when installing

Hi @dirkcuys, I am trying to install Lernanta without Chef and Vagrant but...
When I try to execute the app

python manage.py whatever

I get:

Error: cannot import name setup

GET member-missing.png

I just noticed, in Firebug, that on course pages there is a GET request for every generic member photo (gray silhouetted figure). This is slowing down my page loads and hampering usability on the client side.

The other images seem to cache successfully between page loads.

Would it be possible/difficult to generate a single image out of the member images for the course and then use CSS sprites to render the participants block? This would decrease the number of GET requests, on large courses and probably site wide, drastically.

fix task reordering

Tasks (content.models.Page) associated with a course aren't guaranteed to have contiguous indexes after deleting tasks. This breaks task reordering

update jquery to 1.8

Update jquery to version 1.8. Also ensure that other plugins (like jquery.ui) works with new version and update them if possible. JQuery is included in the base template

Display "Follow" button missing for courses when user logged out

When a user is not logged in, only the participate button is showing up. When the user is logged in, both the follow and participate buttons shows up.

Both buttons should show up whether or not the user is logged in. Verify that the redirects work when a user that is not logged in presses the "Follow" button, both for login and after login (this may be the reason why it doesn't show up currently?)

Hovering over user menu while page loads causes problems

If one hovers over the menu that has the user tools (Dashboard etc.) before the page completes loading, then it seems to get stuck - I can't describe it so well (where can I put a screenshot?). I have only tested this in Firefox 13.

Only challenges are displayed in learn page

There is a bunch of code in the projects view that applies conditions depending on fields supposedly coming from the filter form, but they don't seem to exist. One of them filters out everything that is not a Challenge.

Dirk, feel free to assign it to me (I can't assign it myself).

ImportError: No module named djcelery

When I try to run Lernata via 'python manage.py runserver' I get the following error:

File "manage.py", line 16, in
import settings
File "/home/brylie/dev/python/lernanta/settings.py", line 6, in
import djcelery
ImportError: No module named djcelery

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.