Académica is a free enrollment system made with python3 and Django, it is basic, easy to setup and easy to use.
Donation is always welcome by Paypal donate here or contac us in info[at]solvosoft.com o by github.
For demo go to: https://academica.solvosoft.com/
Contents:¶
Features¶
Features in stable branch¶
- Social authentication for students
- Clasic authentication by email with password recovery
- Course management
- Groups management
- Pre-enrollment
- Enrollment
- Student list (Pre-enrolled, enrolled)
- Paypal payment System (optional, see matricula.contrib.bills)
- Multilingual (spanish and english, translators are welcome)
- Page content
- Multilevel Menu and admin menu editor
Features in gache branch¶
Warning
They are unstable and untested.
All stable features are here too.
- Profesor management
- Classroom management (different type of classroom)
- Group, Profesor, Classroom asignation management
Installation¶
To install this program you need python 3 (tested with python 3.4)
$ git clone https://github.com/luisza/academica.git
$ cd academica/
$ pip install -r matricula/requirements/matricula.txt
To install billing system (Installing this is high recomended)
$ pip install -r matricula/requirements/bills.txt
To install documentation
$ pip install -r matricula/requirements/docs.txt
Configure the database
$ python manage.py migrate
$ python manage.py createsuperuser
Run in development mode¶
Using two shells, in the first shell run
$ python manage.py runserver
In the second shell run a debug email server
$ python -m smtpd -n -c DebuggingServer localhost:1025
If you want to use billing system you will need Paypal account https://developer.paypal.com/
Note
For paypal payment you will need a public access point see https://ngrok.com/ for secure tunnels
Run in production mode¶
This is a configuration basic modification, you probably need to adjust to your institutional security policy
Take a look django deploy documentation. https://docs.djangoproject.com/en/1.8/howto/deployment/
Change in academica/settings.py all variables that you want but especially this variables
Warning
SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = ‘*‘
SECURITY WARNING: don’t run with debug turned on in production!
Set debug to False
DEBUG = False
ALLOWED_HOSTS = ["your domain", "your subdomain"]
Put your email account correctly
EMAIL_HOST = "yourhost"
EMAIL_PORT = 25
EMAIL_USE_TLS = True
DEFAULT_FROM_EMAIL = 'youruser@yourhost'
see Django email documentation. https://docs.djangoproject.com/en/1.8/topics/email/
Change paypal account
PAYPAL_TEST = False
PAYPAL_RECEIVER_EMAIL = "user-buyer@example.com"
MY_PAYPAL_HOST = "https://miserver.com"
We recomends to deploy in https for security reason
see this howto http://michal.karzynski.pl/blog/2013/06/09/django-nginx-gunicorn-virtualenv-supervisor/ if you never deploy django.
# https
SECURE_PROXY_SSL_HEADER=('HTTP_X_FORWARDED_PROTO', 'https')
SESSION_COOKIE_SECURE=True
CSRF_COOKIE_SECURE=True
Building new modules¶
New modules are django apps that can comunicate with academica, for example bills, create new apps with
$ python manage.py startapp mymodule
Inside you can add all functionalities that you want.