{"id":15049794,"url":"https://github.com/mozilla/caseconductor-ui","last_synced_at":"2025-10-04T12:30:32.621Z","repository":{"id":33867020,"uuid":"1093355","full_name":"mozilla/caseconductor-ui","owner":"mozilla","description":"INACTIVE - http://mzl.la/ghe-archive - This repository is superseded by the (still in-progress) all-Django version at http://github.com/mozilla/caseconductor","archived":true,"fork":false,"pushed_at":"2019-03-29T04:42:15.000Z","size":48147,"stargazers_count":14,"open_issues_count":0,"forks_count":6,"subscribers_count":7,"default_branch":"master","last_synced_at":"2024-09-20T02:29:34.671Z","etag":null,"topics":["inactive","unmaintained"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mozilla.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":"COPYING.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2010-11-19T00:08:12.000Z","updated_at":"2023-01-28T03:55:05.000Z","dependencies_parsed_at":"2022-08-07T23:30:21.605Z","dependency_job_id":null,"html_url":"https://github.com/mozilla/caseconductor-ui","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mozilla%2Fcaseconductor-ui","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mozilla%2Fcaseconductor-ui/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mozilla%2Fcaseconductor-ui/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mozilla%2Fcaseconductor-ui/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mozilla","download_url":"https://codeload.github.com/mozilla/caseconductor-ui/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":219866556,"owners_count":16554245,"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":["inactive","unmaintained"],"created_at":"2024-09-24T21:22:32.419Z","updated_at":"2025-10-04T12:30:29.697Z","avatar_url":"https://github.com/mozilla.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"Case Conductor is a Test Case Management system.\nCopyright (C) 2011 uTest Inc.\n\nThis file is part of Case Conductor.\n\nCase Conductor is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nCase Conductor is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with Case Conductor.  If not, see \u003chttp://www.gnu.org/licenses/\u003e.\n\nCase Conductor UI\n=================\n\nThis Django project is the user interface to the Case Conductor test case\nmanagement system.  It lives at\nhttps://github.com/mozilla/caseconductor-ui/, and is built to speak via HTTP\nAPI to the platform at https://github.com/mozilla/caseconductor-platform.\n\n\nPlatform\n--------\n\nThis version of the UI expects to use git commit hash\n'be67224de3336790deb23fceb420a8feb062c40c' of the platform.  A pre-built WAR\nfile of this version of the platform is provided at ``platform/tcm.war``. \nThe database scripts required to set up an initial platform database are in\n``platform/db_scripts``, and ``platform/reset-mysql.sh`` automates setting\nup the database.  (See the platform README at ``platform/README.rst``).\n\n\nDevelopment\n-----------\n\nThe Case Conductor UI requires Python 2.6 or 2.7.\n\nFirst, update git submodules (dependency source distribution tarballs are\nstored in a git submodule). From the root of this repo, run::\n\n    git submodule init; git submodule update\n\nIf you want to run this project in a `virtualenv`_ to isolate it from other\nPython projects on your system, create the virtualenv and activate it. Then run\n``ui/bin/install-reqs`` to install the dependencies for this project into your\nPython environment.\n\nYou'll need to create a ``ccui/settings/local.py`` file with some details of\nyour local configuration. See ``ccui/settings/local.sample.py`` for a sample\nthat can be copied to ``ccui/settings/local.py`` and modified.\n\nTwo settings are required:\n\n``CC_COMPANY_ID``\n    The UI is per-company, and will ignore all data related to other\n    companies. This setting should be the (integer) id of the company whose\n    data this instance of the UI should manage.\n\n``CC_NEW_USER_ROLE_ID``\n    The (integer) id of the role that all new user registrations should be\n    given by default.\n\nThe ``create_company`` management command is available to create an initial\ncompany and default user roles.  Run ``./manage.py create_company \"Company\nName\"``; a new company named \"Company Name\" and three roles, named \"Tester\",\n\"Test Manager\", and \"Admin\" will be created, and the command will output\ntheir IDs, which can then be used for the above two settings.\n\nSeveral other settings have reasonable defaults, but may need to be modified:\n\n``CC_API_BASE``\n    The base URL for the platform API. Defaults to\n    ``\"http://localhost:8080/tcm/services/v2/rest/\"``\n\n``CC_ADMIN_USER``\n    The UI generally uses the privileges of the logged-in user for all API\n    calls, but requires admin privileges on the platform API for certain\n    operations, such as creating new users and assigning them their default\n    role. This should be the email address of the admin credentials to use;\n    defaults to ``\"admin@utest.com\"``.\n\n``CC_ADMIN_PASS``\n    Password for ``CC_ADMIN_USER``. Defaults to ``\"admin\"``.\n\nOnce this configuration is done, you should be able to run ``./manage.py\nrunserver`` and access the UI in your browser at ``http://localhost:8000``.\n\nAll Compass/Sass files are pre-compiled to CSS, so no gems are development, run\n``bin/install-gems requirements/gems.txt``.  Update\n``requirements/gems.txt`` if newer gems should be used.\n\n.. _virtualenv: http://www.virtualenv.org\n\nRunning the tests\n~~~~~~~~~~~~~~~~~\n\nThe UI codebase has an automated test suite. The platform is mocked out in the\ntest suite, so having the platform running is not a requirement for running the\ntests.\n\nTo run the tests, after installing all Python requirements into your\nenvironment::\n\n    bin/test\n\nTo view test coverage data, load ``coverage/index.html`` in your browser after\nrunning the tests.\n\nTo run just a particular test module::\n\n    bin/test tests.core.test_api\n\n\nCreating sample data\n~~~~~~~~~~~~~~~~~~~~\n\nTo quickly populate the platform with a small amount of sample data for\ndevelopment and manual testing, run ``./manage.py create_test_data``. This will\ncreate a user with email address ``tester@example.com`` with the default new\nuser role and password ``testpw``, as well as several products, a test cycle,\ntest run, and a couple test cases.\n\nYou can optionally pass an argument to the ``create_test_data`` command, the\ninteger ID of the admin role created by ``create_company`` (above). If given an\nadmin role ID, ``create_test_data`` will also create an admin user\n``admin@example.com`` with that role and password ``testpw``.\n\n\nDeployment\n----------\n\nDjango's ``runserver`` is not suitable for a production deployment; use a\nWSGI-compatible webserver such as `Apache`_ with `mod_wsgi`_, or\n`gunicorn`_. You'll also need to serve the static assets; `Apache`_ or `nginx`_\ncan do this.\n\nFor deployment scenarios where pip-installing dependencies into a Python\nenvironment (as ``bin/install-reqs`` does) is not preferred, a pre-installed\nvendor library is also provided in ``requirements/vendor/lib/python``. The\n``site.addsitedir`` function should be used to add this directory to sys.path,\nto ensure that ``.pth`` files are processed. A WSGI entry-point script is\nprovided in ``deploy/vendor.wsgi`` that does all the necessary ``sys.path``\nadjustments.\n\nIn addition to the above configuration, in any production deployment this\nentire app should be served exclusively over HTTPS (since almost all use of the\nsite is authenticated, and serving authenticated pages over HTTP invites\nsession hijacking attacks). Ideally, the non-HTTP URLs should redirect to the\nHTTPS version. The ``SESSION_COOKIE_SECURE`` setting should be set to ``True``\nin ``ccui/settings/local.py`` when the app is being served over HTTPS. You can\nrun \"python manage.py checksecure\" on your production deployment to check that\nyour security settings are correct.\n\nCase Conductor UI stores user session information in the cache. For local\ndevelopment the default cache backend is the \"local memory\" backend. Since many\nproduction webservers are multi-process, this cache backend is unsuitable for\nproduction use. Preferably, `memcached`_ should be used as the production cache\nbackend. Alternately, to reduce infrastructure dependencies for very small\ninstallations, user sessions can be stored in a SQLite database. Examples of\nboth of these configurations can be found in the sample local-settings file at\n``ccui/settings/local.sample.py``.\n\nThis app also uses the new `staticfiles contrib app`_ in Django 1.3 for\ncollecting static assets from reusable components into a single directory\nfor production serving.  Run ``./manage.py collectstatic`` to collect all\nstatic assets into the ``collected-assets`` directory (or whatever\n``STATIC_ROOT`` is set to in ``settings/local.py``), and make those\ncollected assets available by HTTP at the ``STATIC_URL`` setting.\n\n.. _staticfiles contrib app: http://docs.djangoproject.com/en/dev/howto/static-files/\n.. _memcached: http://memcached.org\n.. _Apache: http://httpd.apache.org\n.. _nginx: http://nginx.org\n.. _gunicorn: http://gunicorn.org/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmozilla%2Fcaseconductor-ui","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmozilla%2Fcaseconductor-ui","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmozilla%2Fcaseconductor-ui/lists"}