Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Overview

This document describes the soup-to-nuts process for creating and maintaining a "cspace_django_project" Project for your institution.

...

This document is an outline that links to the details.

Prerequsites to development

At UCB, development of Django webapps is done using Pycharm. Therefore, your first step in any case is to install Pycharm on your development system.

Once you have PyCharm installed and working, you can create new projects and webapps in this framework or maintain existing ones. Follow the steps below that are appropriate to where you are in the process.

Creating a new CSpace Django Project for an institution

The UCB practice for Django Webapps is to have one (or perhaps more) Django Projects per institution.  Each of this is forked from the parent project, called cspace_django_projectThe following .

If no Django project exists for your institution, or you need to make another one, the following steps will create such an institution level project in GitHub:   

Checking out an existing institution's project for development

Once an institutional project exists, you can check the code for it out from GitHub and do what you need to do on your local system. In general, we don't modify code directly on our VM deployments. The process of getting your code back into a GitHub repo and making deployments and releases is described further below.

  • From the command line: git clone myforkofinstituionsproject.git
  • Open this directory in PyCharm

Creating of a new webapp for an existing project

If the webapp you want to work on exists, go to the next step, otherwise:

  • Run startapp
  • Edit cspace_django_site/settings.py (INSTALLED_APPS)
  • Edit cspace_django_site/urls.py (urlpatterns)
  • Resolve any other site-level dependencies: logging, cacheing, configuration, other python or code dependencies
  • Create an example config file (if necessary) See: Use of the config directory and .cfg files

Maintaining an existing webapp

 

...

  • Check out latest code (details?)

- modify

- test locally

...

  • Modify
  • Test on your local system
  • git add, commit and push (where exactly?)

Deploying an institution project to a "Linux Server"

...

The initial deployment of Django projects on any server entail

Resolve dependencies (Apache (i.e. mod_wsgi), Python, Django, virtenv, python packages)

- clone project to /usr/local/share/django

- copy example files to config/ and customize per deployment (if any)

- restart Apache

Pushing your spiffy revised project to Dev or Production Server

Your project is already deployed and running (see the step above). You need to update the code to the latest version:

...

manage.py collectstatic

restart apache

Maintaining the parent CSpace Django Project

- defer

Souping up your webapps

Solr

PIL

...