Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CiteMed Evidence Cloud

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.

Key Features

  • 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/.

Tech Stack

  • 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

Architecture Overview

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.

Screenshots And Demo

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.

Local Setup

Prerequisites

  • 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 gcc

Install

python -m venv venv
source venv/bin/activate
pip install -r requirements.txt

Configure Environment

cp .env.example .env

Set at least:

  • SECRET_KEY
  • ENV
  • DATABASE_URL
  • CLOUDAMQP_URL or DEVELOP_CLOUDAMQP_URL
  • CELERY_DEFAULT_QUEUE
  • CELERY_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.

Database

python manage.py migrate
python manage.py createsuperuser

Some 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.

Run Locally

Terminal 1:

python manage.py runserver

Terminal 2:

celery -A backend worker -l INFO -P threads

Docker Usage

cp .env.example .env
docker compose up --build

The 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.

Testing

The repository contains Django tests for accounts, scrapers, helpers, and literature review workflows.

python manage.py test

Targeted examples:

python manage.py test accounts.tests
python manage.py test lit_reviews.tests.test_scrapers

Some tests and scraper flows depend on external services, browser tooling, or fixture data. Keep those dependencies explicit in pull requests.

API Documentation

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.

Deployment Notes

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.

What This Project Demonstrates

  • 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.

Future Improvements

  • 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.

Security

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.

About

No description, website, or topics provided.

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages