{"id":13595950,"url":"https://github.com/cfpb/collab","last_synced_at":"2025-04-09T20:15:22.996Z","repository":{"id":13285333,"uuid":"15971137","full_name":"cfpb/collab","owner":"cfpb","description":"Collab is a Django project with a standard set of configurations to provide services to reusable apps.","archived":false,"fork":false,"pushed_at":"2020-04-13T12:24:09.000Z","size":1771,"stargazers_count":81,"open_issues_count":6,"forks_count":37,"subscribers_count":32,"default_branch":"master","last_synced_at":"2025-04-09T20:15:16.606Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://cfpb.github.io/collab","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"cc0-1.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cfpb.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"COPYING.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-01-16T15:05:50.000Z","updated_at":"2025-02-23T18:15:54.000Z","dependencies_parsed_at":"2022-09-23T11:49:35.820Z","dependency_job_id":null,"html_url":"https://github.com/cfpb/collab","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cfpb%2Fcollab","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cfpb%2Fcollab/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cfpb%2Fcollab/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cfpb%2Fcollab/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cfpb","download_url":"https://codeload.github.com/cfpb/collab/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248103872,"owners_count":21048245,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-01T16:02:02.044Z","updated_at":"2025-04-09T20:15:22.960Z","avatar_url":"https://github.com/cfpb.png","language":"Python","readme":"# Collab\n\n[![Build Status](https://travis-ci.org/cfpb/collab.svg)](https://travis-ci.org/cfpb/collab)\n\n## What is Collab?\n\nCollab is a [Django](https://www.djangoproject.com/) project with a standard set of configurations to provide services to reusable apps.\n\n## What is included?\n\nCore Collab comes with:\n* Tagging (using a customized version of [django-taggit](https://github.com/alex/django-taggit))\n* Notifications\n* Search (using [Haystack](http://haystacksearch.org/) and [Elasticsearch](http://www.elasticsearch.org/))\n* Migrations (using [South](http://south.readthedocs.org/en/latest/))\n* [jQuery](https://jquery.org/)\n* Improved Caching\n\n\n## Setting up a development environment\n\nRequirements:\n- Python (\u003e= 2.6)\n- Mysql\n\n\nFollow these steps to set up collab:\n\n1. Clone this repo or a fork of it\n   ```bash\n   git clone https://github.com/cfpb/collab.git\n   cd collab\n   ```\n\n1. Make sure you have `pip` and `virtualenv` installed:\n\n   ```bash\n   easy_install -U pip\n   pip install -U pip\n   pip install -U virtualenv\n   ```\n\n   You may have to prepend these commands with `sudo`, depending on your setup.\n\n1. Create a virtual environment for the project and install the necessary packages:\n\n   ```bash\n   virtualenv --no-site-packages --distribute venv    # creates the virtualenv named \"venv\"\n   source venv/bin/activate                           # activates (places you in) the virtualenv\n   pip install -r requirements.txt                    # installs main required packages for collab\n   pip install -r requirements-test.txt               # installs packages required for testing\n   ```\n\n   _**Important Note:** Anytime you restart your terminal and return to work on this project, you will need to \n   reactivate the virtualenv by running the `source venv/bin/activate` command from the collab root. See \n   [virtualenv](http://pypi.python.org/pypi/virtualenv) for more details._\n\n1. Copy `collab/local_settings_template.py` to `collab/local_settings.py` and edit to match your current \n   environment. In particular, update the `DATABASES` information. You will need to create the database you choose \n   for the default schema.\n   * Edit `DATABASES` (in the `else` block) to set the database user and password to whatever user you have set up \n     in MySQL (probably `root` with no password, since it's local to your machine).\n   * Set a `SECRET KEY`. This can be any string you want.\n   * If you have already set up any other child apps besides the four required, uncomment them in `INSTALLED_APPS`.\n\n1. Set up the database:\n\n   ```bash\n   mysql.server start\n   mysql -u \u003cuser\u003e -e 'create database collab'\n   python ./manage.py syncdb\n   python ./manage.py syncdb --noinput --migrate\n   python ./manage.py loaddata core/fixtures/core-test-fixtures.json\n   ```\n\n   Optionally, you can create random users for local testing.\n\n   ```bash\n   python ./manage.py create_users \u003cnumber of users\u003e\n   ```\n\n1. Run the Django server:\n\n   ```bash\n   python ./manage.py runserver\n   ```\n\n1. Go to \u003chttp://localhost:8000\u003e in your browser and log in with user `test1@example.com` and password `1`.\n\n1. You are a winner!\n\n\n## Testing\n\nTo run tests:\n\n```\npython manage.py test\n```\n\nModels should have a robust set of unit tests.\n\nWhen writing unit tests for models, try to separate functionality which needs the DB from functionality which does \nnot. Aim to avoid hitting the DB in a test for optimal results.\n\nViews should have unit testing for functional parts of them: that is, try to extract functionality without side effects from the view functions, and then test those extracted functions.\n\nViews should have system testing using [WebTest](http://pypi.python.org/pypi/django-webtest) for page interaction.\n\n","funding_links":[],"categories":["Python"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcfpb%2Fcollab","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcfpb%2Fcollab","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcfpb%2Fcollab/lists"}