Northside Digital Innovation Alliance (NDIA) project prototype in Django
The Django portion of the NDIA project aims to build a backend to manage and provide information about public technology centers, classes, and events in North Minneapolis. The backend will include an API endpoint that enables API clients to query the above information. The backend will also provide a UI for administrators to edit and manage the above information.
ndia-angular is intended to be a client of this backend.
This backend is deployed online at http://ndia.herokuapp.com/. See http://ndia.herokuapp.com/api/events/?format=json for example output.
##Python
Make sure you have Python on your computer. The following two commands should work:
python --version
pip --version
Virtualenv makes it possible to install multiple Python environments on one computer; including installing a Python environment just for this project. It is not required to run this, but if you're working on multiple Python projects, you should probably install this.
virtualenvwrapper provides commands and organization for using multiple virtualenvs.
Instructions in this README assume that virtualenv and virtualenvwrapper are installed and make use of those tools.
pip install virtualenv
pip install virtualenvwrapper
git clone https://github.com/OpenTwinCities/ndia-django.git
cd ndia-django
mkvirtualenv ndia-djagno
pip install -r requirements.txt
By default, the Northside Digital Assets System Backend will use a SQLite database named ndia.db, which requires no configuration for connection. See Configure Northside Digital Assets System Database below if you would like to use a PostgreSQL database instead.
Regradless of which database you use, you will need to run database migrations to prepare the database.
cd ndia-django/ndiaDjango
python manage.py migrate
In order to login to the backend's UI and add data, you're going to need a superuser in the database. To create one, simply run
cd ndia-django/ndiaDjango
python manage.py createsuperuser
cd ndia-django/ndiaDjango
workon ndia-django
python manage.py runserver
Visit http://localhost:8000/admin/
and enter the username and password
created above. Then, use the UI to add an Organization, then an Event.
Visit http://localhost:8000/api/events/?format=json
cd ndia-django
git pull
ndia-django
pip install -r requirements.txt
cd ndiaDjango
python manage.py migrate
This section will help you setup the Northside Digital Asset System to use a PostgreSQL database.
Obviously, you'll need to have PostgreSQL installed and running. So download and install it.
First, create a user and database in PostgreSQL
sudo su postgres
createuser ndia -W
createdb ndia
We also need to update PostgreSQL to allow for password based authentication of
the user that we just created. Edit the PostgreSQL Authentication Configuration
File (located at /etc/postgresql//main/pg_hba.conf in Debian) and
add the following to the file immediately after # "local" is for Unix domain socket connections only
:
local all ndia trust
Save and exit. Now restart PostgreSQL
sudo service postgresql restart
Next, configure the Northside Digital Assets System to use what we just created.
cd ndiaDjango/ndiaDjango
cp config.py.sample config.py
Now edit settings.py with your favorite editor. If you have a default installation of PostgreSQL on your local machine, then you do not need to change the host or port settings.