Skip to content

fakedrake/django-profapp

Repository files navigation

ProfApp

An application to assist a university professor with his data management.

Install

Create a virtualenv:

$ virtualenv --no-site-packages .

Install django development version and django-bootsrap-toolkit:

$ bin/pip install git+https://github.com/django/django  git+https://github.com/fakedrake/django-bootstrap-toolkit

Create a django project and clone this project into it:

$ bin/django-admin.py startproject ProfessorSite
$ cd ProfessorSite
$ git clone git@github.com:fakedrake/django-profapp profapp

Edit ProfessorSite/settings.py to know of our application and dependencies, also define a static directory and setup the database to your preference (sqlite3 here):

...

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
        'NAME': 'database',                      # Or path to database file if using sqlite3.
        # The following settings are not used with sqlite3:
        'USER': '',
        'PASSWORD': '',
        'HOST': '',                      # Empty for localhost through domain sockets or '127.0.0.1' for localhost through TCP.
        'PORT': '',                      # Set to empty string for default.
    }
}

   ...

STATIC_ROOT=os.path.join(BASE_DIR, 'static/')

...

TEMPLATE_CONTEXT_PROCESSORS = (
    "django.contrib.auth.context_processors.auth",
    "django.core.context_processors.debug",
    "django.core.context_processors.i18n",
    "django.core.context_processors.media",
    "django.core.context_processors.static",
    "django.core.context_processors.tz",
    "django.contrib.messages.context_processors.messages",
    "django.core.context_processors.request",)


...

INSTALLED_APPS = (
...
'profapp',
'bootstrap_toolkit'
)

Then you need to add our application to the ProfessorSite/urls.py.

...

urlpatterns = patterns('',
                    # Examples:
                    # url(r'^$', 'ProfessorSite.views.home', name='home'),
                    # url(r'^blog/', include('blog.urls')),

                    url(r'^admin/', include(admin.site.urls)),
                    url(r'^profapp/', include('profapp.urls')),
)

Now you can run manage.py

$ ../bin/python manage.py syncdb
$ ../bin/python manage.py collectstatic
$ ../bin/python manage.py runserver

If you want sample data in your database run:

$ ../bin/python manage.py sample_data

And you have a fully functional development server! Open your favourite web browser at http://localhost:8000/profapp/home

Roadmap

There is still very very much to do before this is alpha. This is a roadmap mockup:

  • Buildout project structure.
  • List/Create/Update/Delete each content type:
    Student
    This represents a student, ideally it should communicate with LDAP.
    Semester Subject
    This is a subject per semesster. Each semester a professor should need to create a new set of these for each subject.
    Exam
    This is an exam.
    Grade
    A student’s grade on a specific exam.
  • Copy semester subjects from old years.
  • Grade exports for semester subjects.
  • Graphic design
  • Searching: Find a smart way to make searching efficient.
  • Professor accounts.

About

A webapp for professors to manage their work

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages