{"id":22538213,"url":"https://github.com/cfpb/idea-box","last_synced_at":"2026-03-11T02:37:48.961Z","repository":{"id":7510230,"uuid":"8860406","full_name":"cfpb/idea-box","owner":"cfpb","description":"An application that lets an organization collect ideas, comment on them, and vote them up. ","archived":false,"fork":false,"pushed_at":"2022-11-22T00:54:09.000Z","size":1229,"stargazers_count":160,"open_issues_count":13,"forks_count":49,"subscribers_count":19,"default_branch":"master","last_synced_at":"2025-04-23T18:08:29.642Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","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":"CHANGELOG.txt","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":"2013-03-18T17:54:36.000Z","updated_at":"2025-02-28T03:02:56.000Z","dependencies_parsed_at":"2023-01-11T18:45:37.006Z","dependency_job_id":null,"html_url":"https://github.com/cfpb/idea-box","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/cfpb/idea-box","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cfpb%2Fidea-box","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cfpb%2Fidea-box/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cfpb%2Fidea-box/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cfpb%2Fidea-box/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cfpb","download_url":"https://codeload.github.com/cfpb/idea-box/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cfpb%2Fidea-box/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30367815,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-10T21:41:54.280Z","status":"online","status_checked_at":"2026-03-11T02:00:07.027Z","response_time":84,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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-12-07T11:10:49.127Z","updated_at":"2026-03-11T02:37:43.944Z","avatar_url":"https://github.com/cfpb.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# IdeaBox\n\n[![Build Status](https://travis-ci.org/cfpb/idea-box.svg?branch=master)](https://travis-ci.org/cfpb/idea-box)\n\nIdeaBox is a Django app for collecting and surfacing ideas from users, in the vein of\nIdeaScale, IdeaX, and Django Voice. IdeaBox differs from these projects in its minimal,\neasily integrate-able interface. IdeaBox also takes a strong stance on transparency,\nsuch that ideas, votes, etc. are tied to specific users.\n\n## Features\n* Idea Submission\n* Tagging (via taggit)\n* Voting\n* Comments\n* Listing by trending, likes, and recently added\n* Archive/hide ideas\n* Customizable challenges for specific campaigns\n\n## Screen shot\n\n![Idea Profile](https://raw.github.com/cfpb/idea-box/master/doc/images/profile.png)\n\n## Requirements\n* django (1.5.4) - This is a Django app, so you need Django.\n* django-taggit - A library for tags within Django\n* mock - A library for creating mock objects for testing. \n* south - A library for schema and data migrations.\n* django-mptt - A library enabling nested/reply-to comments\n\n### Optional\n* [collab platform](http://github.com/cfpb/collab) - Installing IdeaBox as an app inside a collab platform provides several convenience features:\n  * Autocomplete when adding new tags (requires elasticsearch server)\n  * User can delete tags he/she created\n  * Email notifications\n\n\n## Installation\n\n* Use pip to install the dependencies listed above\n* If not using collab as the Django platform, you still need to install collab for `custom_comments` and `taggit`\n\n```\npip install git+https://github.com/cfpb/collab.git#egg=collab\n```\n\n### Settings File\nModify your settings file to add the following to your `INSTALLED_APPS`:\n```\n'django.contrib.comments',\n'south',\n'mptt',\n'core.custom_comments',\n'core.taggit',\n'idea'\n```\n\n#### Optional: Django-taggit\n\nIf your project is already using [taggit](https://github.com/alex/django-taggit), you can use that instead of collab's taggit but you will lose some minor functionality.  To use the generic taggit, replace `core.taggit` with `taggit` in the `INSTALLED_APPS` step above.\n\n### Folder Structure\n\nYou will need to get the contents of the ```src/idea``` directory into\nyour Django project. The simplest way to do this might be a symbolic\nlink.\n\n```\nmydjango_project/\n  |- idea/      (includes models.py, views.py, etc.)\n  |- mydjango_project/ (settings.py, url.py, etc.)\n  |- manage.py\n  |- etc etc etc\n```\n\n### URLs\n\nAdd the idea.urls and comments.urls to your url.py. For \nexample:\n\n```python\nfrom mydjango_project import settings\n\nif 'idea' in settings.INSTALLED_APPS and \\\n        'django.contrib.comments' in settings.INSTALLED_APPS:\n    urlpatterns.append(url(r'^comments/',\n        include('django.contrib.comments.urls')))\n    urlpatterns.append(url(r'^idea/', include('idea.urls', namespace='idea')))\n```\n\n\n### Migrations\n\nFrom your project root, synchronize and migrate the new apps.  Make sure to set your database settings.\n\n```bash\n$ python ./manage.py syncdb --noinput --migrate\n```\n\n### Templates\n\nA basic set of templates has been provided. The 'base.html' template should\nprobably be overwritten into something less basic for a better user experience. \n\nIf users in the system have a profile module specified our templates will use\nthis to link users to a profile page.  This is specified through the\nAUTH_PROFILE_MODULE setting. Your profile module will also have to specify a\nget_absolute_url() method.\n\n### CSS\n\nThe default CSS style for IdeaBox is not ready for production.  This was done\nintentionally so that IdeaBox's style can match the style of the platform in\nwhich it resides (i.e. not everyone wants a green header).  The simplest way to\nimprove the styling is to source `src/idea/static/idea/css/sample_style.css`\nin the `css_files` block in the `/src/idea/templates/idea/idea-base.html` template:\n\n```\n{% block \"css_files\" %}\n    # ... existing code ...\n    \u003clink rel=\"stylesheet\" href=\"{{ STATIC_URL }}idea/css/sample_style.css\"\u003e\n{% endblock %}\n```\n\nIdeally, your Django platform will provide styles that can be sourced in the\n`base.html` template described in the section above so IdeaBox can match the\nlook and feel of your system.\n\n\n### Campaign Banner\n\nTo create a challenge, use Django's administrative panel to add a Banner model object. The\ntext field will be displayed at the right of the IdeaBox idea listing page. The banner\nwill only be displayed between Start Date and End Date (or indefinitely after the Start\nDate if the End Date is empty.)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcfpb%2Fidea-box","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcfpb%2Fidea-box","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcfpb%2Fidea-box/lists"}