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 -d
The application will be available at http://localhost:8000
(or your configured port).
To stop the application:
docker compose down
The 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
latest
and 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 test
admin.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.