Git Product home page Git Product logo

academicstoday-django's Introduction

alt tag

py-academicstoday

Description

A open-source platform for online course-based learning and education.

Support

You can financially support the project by either:

  • Bitcoin donations: 1NdWWNyHJJd5oFhtzAFtApNaHjSuAbGmXZ
  • Dash donations: XcNwdbXmEdnm4ErQuK8A9UkcTwTkUGf7ML

Features

  • Students log in and enroll in the provided courses
  • Watch educational online videos lectures for courses
  • Fill out quizzes tests and assignments to get graded on
  • Earn certificates of completion of courses

System Requirements

  • Python 3.4.x+
  • Postgres SQL DB 9.4+
  • pip 6.1.1+
  • virtualenv 12.1.1+

Dependencies

See requirements.txt for more information.

Build Instructions

Application

For Linux and OSX users, run these commands:

  1. First clone the project locally and then go into the directory
$ git clone https://github.com/AcademicsToday/py-academicstoday.git 
$ cd py-academicstoday
  1. Setup our virtual environment
(OSX)
$ python3 -m venv env

(Linux)
$ virtualenv env
  1. Now lets activate virtual environment
$ source env/bin/activate
  1. OSX USERS ONLY: If you are using ‘Postgres.app’, you’ll need to have pg_config setup in your $PATH. If you already have set this up, skip this step, else simply run this command in the console to set the path manually.
$ export PATH="/Applications/Postgres.app/Contents/Versions/9.4/bin:$PATH"
  1. Now lets install the libraries this project depends on.
$ pip install -r requirements.txt

Database

We are almost done! Just follow these instructions and the database will be setup for the application to use.

  1. Load up your postgres and enter the console. Then to create our database, enter:
# create database academicstoday_db;
  1. To confirm it was created, run this line, you should see the database in the output
# \l
  1. Enter the database
# \c academicstoday_db
  1. If you haven’t created an administrator for your previous projects, create one now by entering:
# CREATE USER django WITH PASSWORD '123password';
# GRANT ALL PRIVILEGES ON DATABASE academicstoday_db to django;
  1. Your database "academicstoday_db" is now setup with an admin user account "django" using the passowrd "123password”.

Application + Database

Run the following command to create your custom settings instance. Note: Please write all your application passwords here as it won't be tracked on git.

$ cd academicstoday_project/academicstoday_project
$ cp secret_settings_example.py secret_settings.py

Run the following commands to populate the database.

$ cd ../academicstoday_project
$ python manage.py makemigrations
$ python manage.py migrate 
$ python manage.py setup_academicstoday

Usage

To run the web-app, you’ll need to run the server instance and access the page from your browser.

Start up the web-server:

$ cd academicstoday_project
$ python manage.py runserver

In your web-browser, load up the following url

http://127.0.0.1:8000/

Congratulations, you are all setup to run the web-app! Have fun coding!

License

This web-app is licensed under the Apache 2.0 license. See LICENSE.md for more information.

Developers

  • Bartlomiej Mika
  • Michael Murray
  • Sebastian Rydzewski

academicstoday-django's People

Contributors

bartmika 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  avatar  avatar  avatar

academicstoday-django's Issues

Update student portal

Since we have finished alpha build of the teachers portal, we now need to make sure the student portal works.

Refresh on List, not entire window!

When a modal gets loaded up and provides ui to add/edit/etc. When every modal is closed, a window refresh is done, this is costly on bandwidth. We need to make an Ajax call which will only refresh the list that needs updating and thus saving bandwidth.

Multiple Choice Correct Answer Check

You can choose to leave all options unchecked for a correct answer, before submitting, I think there needs to be a requirement of one box checked

Break up 'webapp' into many apps

As the 'webapp' grows in size, it is time to break it apart into its separate functions. According to this:

http://media.b-list.org/presentations/2008/djangocon/reusable_apps.pdf

We must use the mindset:

  • Application == some bit of functionality
  • Site == several applications
  • Tend to spin off new applications liberally

We need to break up our app into many apps according to:

  • Is it completely unrelated to the app’s focus?
  • Is it orthogonal to whatever else I’m doing?
  • Will I need similar functionality on other sites?

(If Yes to any above? Then I should break it out into a separate application.)

Certificate of achievement generator

When the student has finished the course with passing grades, s/he may print a certificate of achievement. We will need develop a model-view-controller which handles this.

Login "Enter" function

Having entered my login email and password I hit enter expecting to see the next screen, however the only way to proceed was to click the "Log In" button. People will get annoyed with this, we need to make the enter key on the email text box to shift focus onto the password text box, and on the password text box to trigger "Log In" button click.

course/lectures +Notes

Add the ability for downloading course notes from the instructor for the particular lecture.

landpage/footer

Replace stubs and update for our information. Also makes sure the URLs work.

screen shot 2015-02-15 at 9 11 30 pm

Student Course Pass/Fail

This issue exists because of issue #20. We need a way for the course, that the student is enrolled in, to be evaluated as to whether the student has a PASS/FAIL status and either gets credit or not.

Nav Menu drop down not hiding

If the screen is the size of a smartphone, the nav bar at top gets replaced with a 3-horizontal line button that is supposed to show a navigation menu drop down when clicked upon. The problem is it wont hide if clicked on again, or clicked on any other part of the screen, only when the page is refreshed or a new page is loaded does one get rid of it.

Course settings

Create a "at_course_settings" table which will be used to control what options the course will have. For example: it'll have quizzes but no assignments.

course/home

Develop controller which will fetch the course model information and display a course home page. This page will also have an announcements section.

Coursework "Worth"

To help finish issue #20, we need to mark the course per student. Problem is every teacher/professor has different interpretation of what some assignments/exams are worth. Therefore add 'worth' field to Exam/Assignment/Quiz and find some calculation verifier to make sure they all add up to 100%.

This needs to be done before we start issue #20.

course/grading

Develop controller which will fetch the course model information and displays course grading policy.

Student Marking

To complete issue #20, we need for a way to have student marking done. Implement it.

FAQ page

We should probably create a frequently asked questions page somewhere.

courses listing & enrolment

Develop model-view-controllers for handling course enrolments and listing of current courses on system. Currently we have this developed but we'll need to fix the UI bugs as well.

screen shot 2015-02-15 at 9 20 05 pm

landpage bug

When the page loads up, the UI messes up. Fix it.

"Official" tag in enrolments screen

We want all courses made with Academics Today to have a "Official" tag so logged on students know that a particular course was made by AcademicsToday.

This feature can possible be used to indicate a particular course was created by an institution.

course/syllabus

Develop controller which will fetch the course model information and display a syllabus .

Slow internet and submitting issue

If you have a slow connection and you make a submission, there is opertunity to click a submission again, we need to add defensive code to prevent this.

Add ui button locking when clicking button.

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.