CiteMed Evidence Cloud is a Django-based evidence review platform for medical literature workflows. It supports literature review setup, search protocol management, automated database searches, citation screening, duplicate handling, full-text extraction, adverse-event review, report generation, and client/admin portals.
The codebase demonstrates backend work on a large Django application with REST APIs, background processing, PostgreSQL-backed domain models, Redis/Celery task queues, S3-backed document workflows, and a mixed server-rendered/Vue-enhanced interface.
- Account, subscription, and client-user management.
- Literature review project setup with protocol configuration.
- Search terms, keywords, tags, exclusion reasons, and project-specific configuration.
- Automated and manual search-result imports across literature databases.
- Citation deduplication, abstract screening, full-text upload, and extraction workflows.
- Adverse event and clinical appraisal review flows.
- Report generation, document library, and client portal APIs.
- Celery workers for long-running search, PDF, email, import/export, and report tasks.
- Redis and PostgreSQL development stack through Docker Compose.
- User-facing documentation in
docs/.
- Python 3.10+
- Django 4.2
- Django REST Framework
- PostgreSQL
- Redis
- Celery
- Channels / Daphne
- Pandas, PyMuPDF, Biopython, Selenium, PubMed parsing tools
- AWS S3 / django-storages for file workflows
- Docker and Docker Compose
The application is split into several Django apps:
accounts/- users, profiles, client users, subscriptions, and account workflows.lit_reviews/- the main literature review domain: reviews, search protocols, citations, screening, extraction, reports, scrapers, tasks, and APIs.client_portal/- client-facing project, document library, and automated search APIs.admin_side/- internal monitoring and admin workflows.backend/- settings, URL routing, ASGI/WSGI, Celery, and logging.docs/- product/user documentation for review workflows.
See docs/architecture.md for a focused technical overview.
This repository contains business workflows that can include regulated or client-sensitive review data. Screenshots should be added only after sample data is scrubbed and no client information is visible.
Useful local demo entry points:
- Application:
http://127.0.0.1:8000/ - Admin:
http://127.0.0.1:8000/admin/ - Literature review APIs are mounted under the
literature_reviews/application routes.
- Python 3.10+
- PostgreSQL
- Redis
- System packages required by
psycopg2, PDF processing, and Selenium/Chrome workflows
Ubuntu packages:
sudo apt-get update
sudo apt-get install libpq-dev python3-dev gccpython -m venv venv
source venv/bin/activate
pip install -r requirements.txtcp .env.example .envSet at least:
SECRET_KEYENVDATABASE_URLCLOUDAMQP_URLorDEVELOP_CLOUDAMQP_URLCELERY_DEFAULT_QUEUECELERY_DEDUPLICATION_QUEUE
Optional integrations such as AWS S3, Mailgun, ActiveCampaign, proxy settings, Cochrane credentials, and AI extraction services can stay empty for local development paths that do not use them.
python manage.py migrate
python manage.py createsuperuserSome workflows require initial database rows such as literature databases, exclusion reasons, and project configuration. Use the Django admin or management commands documented in the codebase.
Terminal 1:
python manage.py runserverTerminal 2:
celery -A backend worker -l INFO -P threadscp .env.example .env
docker compose up --buildThe Compose stack starts:
- PostgreSQL
- Redis
- Django/Daphne web process
- Celery worker
- Dedicated Celery deduplication worker
The development web port is mapped to http://localhost:9090.
The repository contains Django tests for accounts, scrapers, helpers, and literature review workflows.
python manage.py testTargeted examples:
python manage.py test accounts.tests
python manage.py test lit_reviews.tests.test_scrapersSome tests and scraper flows depend on external services, browser tooling, or fixture data. Keep those dependencies explicit in pull requests.
Important API groups:
lit_reviews/api/- literature review, search terms, search dashboard, articles, tags, reports, extraction fields, actions, clinical appraisals, and living reviews.client_portal/api/- client projects, document library, and automated search flows.admin_side/api/- scraper monitoring APIs.
See docs/api.md.
This project expects a production environment with PostgreSQL, Redis or CloudAMQP-compatible broker configuration, file storage, domain-specific environment variables, and a Django ASGI server.
See docs/deployment.md.
- Maintaining a large Django monolith with clear domain app boundaries.
- Designing REST APIs around literature review, document, and reporting workflows.
- Running asynchronous imports, scraping, PDF processing, and report generation through Celery.
- Integrating external literature databases and storage providers.
- Working with complex domain models, migrations, and long-lived product workflows.
- Add a dedicated OpenAPI schema generation workflow.
- Split optional scraper/browser dependencies from the core API requirements.
- Add more service-layer tests for report generation and import/export workflows.
- Add sample anonymized screenshots and seeded demo data for public portfolio use.
- Add health checks for Celery queue routing and third-party integration configuration.
Do not commit .env, database dumps, client data, private documents, API keys, browser proxy credentials, S3 credentials, Mailgun keys, ActiveCampaign tokens, or proprietary exports.
See SECURITY.md.