An application to assist a university professor with his data management.
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
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.