Canvas is a Django-based web application for managing and analyzing chip samples, variants, and generating reports.
- Chip sample management and analysis
- Report generation and management
- Variant analysis and modal viewing
- CNV (Copy Number Variation) tracking
- Sample search functionality
- Interactive sidebar navigation
- Docker
- Docker Compose
- Clone the repository:
git clone [repository-url]
cd canvas- Start the application using Docker Compose:
docker compose up -dThe application will be available at http://localhost:8000 (or your configured port).
To stop the application:
docker compose downThe project uses GitHub Actions for continuous integration and deployment. On each push to the release branch, the following checks are performed:
- Black: Ensures consistent code formatting (excluding Django-generated files)
- isort: Maintains properly sorted imports (excluding Django-generated files)
- Runs the Django test suite using
python manage.py test - Tests are executed in a clean environment with each CI run
After all tests pass:
- Builds the Docker image
- Pushes to GitHub Container Registry (ghcr.io)
- Tags with both
latestand the commit SHA
To run tests locally:
# Install test dependencies
pip install black isort
# Run formatting checks
black . --check --exclude "migrations/|manage.py|wsgi.py|asgi.py"
isort . --check-only --profile black --skip migrations --skip manage.py --skip wsgi.py --skip asgi.py
# Run Django tests
python manage.py testadmin.py- Django admin configurationsmodels.py- Database modelsviews.py- View controllersurls.py- URL routingtemplates/- HTML templatescomponents/- Reusable UI componentspartials/- Partial template fragments
The project includes custom management commands:
associate_files- For file association management
- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
