Code Monkey home page Code Monkey logo

eduduck's Introduction

EduDuck experimental course delivery platform.
Coded with Python/Django
by Chris McGinlay

**This project provides the rudiments of an Online Course Delivery Platform**.
- Several elements of such a platform are missing, such as assessment tools. If you want to use it, you'll really need to be prepared to contribute back to it, which is of course exactly what I would like to see, having brought the project to version 0.4 on my own.
- There are still many references to my particular installation setup under my workstation user name of 'chris'.
- There is an automated installer for development boxes, staging and production.

See the install.txt file for install instructions.

#Security check#
Run this on branched code prior to merge with master
```python manage.py check --deploy

#Git tag releases#

When ready to push a new tag release (e.g MVP0.3) on to production site, tag the codebase as follows

1. git tag -f LIVE #force re-use of LIVE tag on local repo
2. export TAG=`date +DEPLOYED-%F/%H%M`
3. expport MVPTAG=mvp_x.y.z_name
4. git tag $TAG
5. git tag $MVPTAG
5. git push origin :refs/tags/LIVE #delete LIVE tag from remote repo
6. git push origin LIVE $TAG $MVPTAG

#Need to Create Fixtures?#
We're still using some test fixtures, although some tests use FactoryBoy which is better.


1. Store sets of fixtures together in a directory under fixtures. Could be 
sensible to name directories by date ddmmyy.

mkdir fixtures/ddmmyy
cd fixtures/ddmmyy

2. Dump each app

django-admin.py dumpdata --settings=EduDuck.settings --indent=4 
    courses > courses_data_ddmmyy.json --pythonpath='/home/chris/eduduck/'

Remember to dump auth.User too.

3. Dump the entire database if desired. Maybe remove session data

django-admin.py dumpdata --settings=EduDuck.settings --indent=4
    eduduck_data_ddmmyy.json --pythonpath='/home/chris/eduduck/'

eduduck's People

Contributors

chrismcginlay avatar mrintegrity avatar

Stargazers

William Adolfo Urrea  avatar  avatar

Watchers

 avatar James Cloos avatar  avatar

eduduck's Issues

Login should redirect to courses page...

Presently, a user logging in is taken to their profile page. This is annoying and confusing.
Instead, default should be a redirect to the courses index page. Even better would be redirect to whatever page they were on prior to login.

Course model course organiser should be a FK to user not CharField

Around line 32 of course.models, course_organiser is simply a CharField. This should be a Foreign Key to a user.

There could also be a field for tutor/instructor/or lecturer if the organiser were to be a different person from the tutor. (As seems to be the case on a lot of courses, there is a sidekick for each rockstar tutor)

Implement site search

Using google site search or similar. Should be able to restrict search to

  • Whole site
  • 'This course'
  • 'This lesson'

NB that .htaccess file currently keeping eduduck.com obviously bars sitesearch.

Drop login required for lesson.

Drop login_required for views.lesson at present.
It's a pointless restriction. Also default course view views.index should list all courses.

User resource access recording.

Most of the accesses that a user makes to a lesson, attachment, video should be recorded, so as to be able to inform a user that they have

  1. watched a video,
  2. completed a quiz
  3. accessed a lesson
  4. altered a learning outcome 'traffic light' status

etc.
Could be implemented with a unified 'resource' model (as opposed to multiple individual table join classes ('through' models) between user and each resource table).

Logging insufficient for development

There is not enough logging on the dev server to troubleshoot issues (at least, not where I can find it). Django should log to file on every action. Apache access logs on the server already show which url's are being accessed, by who and http return codes.

Note taking app

A note taking facility for individual users using jQuery to make available next to resources such as Videos, as well as attached to lessons.
Should support content markdown.

Customer Support page

We require a customer support page with admin/support email address such as
[email protected]

There is a hanging reference to this from
templates/register/activate.html
templates/register/registration_closed.html

Use CSS reset / normalize

It will make for easier development of the style if there is a css normalize / reset loaded first.

Template and block redesign

Design some proper templates, with some thought given to over-ridable blocks in base template.
*This will need to be done with workflow/appearance wireframes in mind.
*Target output HTML5

Deploy with virtualenv

Use virtualenv on deployment / staging at least.
Nice on development boxes, but not essential as I tend to be quite happy to reinstall laptop / dev box every so often.

Feature complete checklist

A feature complete learning platform should include the following (may not be exhaustive)
-admissions
-lectures or lessons
-peer interaction
-teacher or tutor interaction
-problem solving
-assignments
-exams
-deadlines
-certification

Implement test coverage analysis

coverage tool provides useful data on test coverage statistics.
To use it per 'two-scoops' best practice, will first require modularised settings.

Deletion testing

What happens if a course gets deleted? Do related records with FKs get orphaned? This has not been tested.
Write tests for correct behaviour of deletion of various model instances.

Login Persistence on ED test site

There seems to be something going on with login persistence on the eduduck.com test deployment. After a following a few links or waiting a little while, the user is logged out.

I can't reproduce this locally.

Implement note in courses.views.lesson

The interaction module, userlesson class supports a simple 'note' field where theuser can leave themselves a note about each lesson, such as 'revise this'.

Needs implemented in the view under courses/views
def lesson(request, course_id, lesson_id):

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.