smartchicago / chicago-early-learning

Chicago Early Learning is a website for exploring early learning programs in Chicago and comparing them side-by-side. Also contains a text feature.
http://chicagoearlylearning.org/
MIT License
18 stars 15 forks source link

Early Childhood Education Portal

About

Purpose and overview

In order to increase transparency and empower parents, the City of Chicago is partnering with the Smart Chicago Collaborative and the University of Chicago’s Urban Education Lab (UEL) to develop a comprehensive early childhood education web portal. The portal serves as a one-stop-shop for finding early learning programs, assessing program quality, and tracking data about Chicago’s early childhood systems.

The portal is currently deployed to http://chicagoearlylearning.org

News

http://chicago.cbslocal.com/2012/11/29/city-offers-early-learning-info-online/ (video)

http://www.examiner.com/article/mayor-emanuel-unveils-online-early-learning-portal-to-help-parents-and-families

Features

Installation

This web application is designed to be deployed using Ansbile and developed locally with vagrant.

Requirements:

Development instructions:

This will create a new Ubuntu 12.04 virtual machine using vagrant. Within the virtual machine Ansible will

Open up a browser to http://localhost:8088/ and you should see the application running.

After the VM is set up you will need to create a super user to sign into the admin interface. You can do the following from a terminal in the chicago-early-learning directory:

vagrant ssh
source /cel/env/bin/activate
cd /cel/app/python/ecep
python manage.py createsuperuser

You will now be able sign into the admin interface at http://localhost:8088/admin

To deploy to another server you will need to modify the hosts file deployment/hosts and the Ansible playbooks to deploy. This should require little more than setting up credentials for the new host for ssh access from the provisioning computer and modifying those files.

For instance, if you are deploying to a server at example.com you would add that to the listing of hosts in deployment/hosts and optionally define any new vars to override defaults in a new vars file at deployment/playbooks/host_vars/example.com or add the host to an existing group in the hosts file. Then to deploy to that server requires the following ansible command:

ansible-playbook deployment/playbooks/all.yml --inventory-file=deployment/hosts --limit=example.com --private-key=PRIVATE_KEY_FILE

This will provision the setup to that host assuming you have set up ssh access with an ssh-key. Alternatively, you can use a password with the --ask-pass option instead. For more information and options for ansible-playbook please check out its documentation.

You also have an option to set up a password restricted website as well (sometimes useful in development). To do so, you can either edit one of the group_vars files or pass command line argument to the ansible-playbook command. For example:

ansible-playbook deployment/playbooks/all.yml --inventory-file=deployment/hosts --limit=example.com --private-key=PRIVATE_KEY_FILE -l staging -e "http_auth=Restricted http_user=USERNAME http_password=PASSWORD"

This command will deploy to your staging server defined in the hosts file, setting up a password restricted website in the process.

To update the FAQs

Fork this repository Create a topic branch Open a pull request with a concise description of the change. Bonus points for a screenshot.

Support

Please log any bugs or errors with the issue tracker on github.