Thank you for your interest in contributing to the OctoCAT Supply Chain Management demo! This demo is designed to showcase GitHub Platform capabilities including GitHub Copilot, GitHub Advanced Security (GHAS), GitHub Actions, and other enterprise features.
Important: This is a demonstration application, not a production system. The primary objective is to effectively showcase GitHub Platform capabilities to customers and prospects. All contributions should keep this goal in mind.
The main repository for this demo is: octodemo-framework/demo_octocat_supply
We welcome contributions in several areas:
Contributions to the actual application code (frontend and API) should:
- Be realistic and representative of typical enterprise applications
- Support existing or new demo scenarios
- Follow existing patterns and coding standards
- Include tests where appropriate
Demo narrative scripts live in the demo/walkthroughs/ directory:
- copilot.md - GitHub Copilot demonstrations
- ghas.md - GitHub Advanced Security demonstrations
- actions.md - GitHub Actions and CI/CD
- governance.md - Repository governance features
- issues-and-projects.md - Issues and project management
When contributing to demo scripts:
- Keep scenarios realistic and relevant to enterprise customers
- Ensure steps are clear and reproducible
- Update related documentation if you change application behavior
- Test your walkthrough end-to-end before submitting
The .octodemo/ directory contains configuration for the Octodemo Framework deployment system. Changes here should align with the Demo Creator Guide.
Documentation improvements are always welcome:
- Architecture documentation in
docs/ - Setup and configuration instructions
- Troubleshooting guides
- Demo best practices
- Node.js 18 or higher
- npm (comes with Node.js)
- Git
- (Optional) Docker for containerized development
- (Optional) GitHub Personal Access Token (PAT) for MCP server demos
-
Clone the repository (or your fork if you're an external contributor):
# For octodemo-framework organization members: git clone https://github.com/octodemo-framework/demo_octocat_supply.git cd demo_octocat_supply # For external contributors (fork first, then): git clone https://github.com/YOUR-USERNAME/demo_octocat_supply.git cd demo_octocat_supply
-
Install dependencies:
npm install
-
Build the projects:
npm run build
-
Initialize the database:
npm run db:seed
-
Start the development servers:
npm run dev
This starts both the API (port 3000) and frontend (port 5173).
-
Create a feature branch:
git checkout -b feature/your-feature-name
-
Make your changes following the guidelines below
-
Test your changes:
# Run all tests npm test # Run API tests only npm run test:api # Run frontend tests only npm run test:frontend # Lint frontend code npm run lint
-
Build to ensure no errors:
npm run build
-
Commit your changes with a clear, descriptive commit message:
git add . git commit -m "feat: Add shopping cart demo scenario"
-
Push to your fork and create a Pull Request:
git push origin feature/your-feature-name
- Use TypeScript for type safety (avoid
anyunless absolutely necessary) - Follow existing patterns in the codebase
- Use meaningful variable and function names
- Write tests for new features and bug fixes
- Run Prettier to format code:
npm run prettify
- Use functional components with hooks
- Follow existing component structure patterns
- Use Tailwind CSS for styling (avoid custom CSS when possible)
- Ensure responsive design (test at mobile, tablet, and desktop sizes)
- Follow accessibility best practices (semantic HTML, ARIA labels when needed)
- Follow RESTful conventions
- Use the repository pattern for data access
- Validate inputs and handle errors appropriately
- Update Swagger/OpenAPI documentation for new endpoints
- Use parameterized SQL queries (never build raw query strings with user input)
- Add migrations for schema changes in
api/sql/migrations/ - Never modify existing migration files - always create a new sequential file
- Update seed data in
api/sql/seed/if needed - Test migrations with:
npm run db:migrate --workspace=api
All code changes should include appropriate tests:
- Unit tests for business logic and utilities
- Integration tests for API endpoints
- Component tests for complex React components
- Ensure tests are deterministic and don't depend on external services
Run tests before submitting:
npm testUse conventional commit format:
feat:- New featuresfix:- Bug fixesdocs:- Documentation changestest:- Test additions or updatesrefactor:- Code refactoringchore:- Build process or auxiliary tool changes
Example:
feat: Add product filtering to catalog page
- Implement filter by category
- Add price range slider
- Update API endpoint to support filtering
If you have access to the octodemo-framework organization:
- Create a branch in the main repository
- Make your changes following the guidelines above
- Submit a pull request for review
We recognize that some deployments of this demo exist in environments where contributors may not have access to the octodemo-framework GitHub organization. If this applies to you:
- Fork the repository if you have access to this instance
- Document your changes thoroughly in your pull request description
- Include testing evidence (screenshots, test output, etc.)
- Contact demo maintainers if you need help submitting changes:
- Open an issue describing your proposed contribution
- Provide a detailed description and any code samples
- Maintainers can help integrate your contribution
If you're working in a closed environment:
- Make changes to your local instance following these guidelines
- Document your changes thoroughly
- Share your improvements with your organization's demo maintainers
- Consider whether the changes would benefit the broader demo community
All contributions go through a review process:
- Automated checks - Linting, tests, and builds must pass
- Code review - At least one maintainer will review your changes
- Demo validation - Changes that affect demo scenarios will be tested
- Documentation review - Ensure docs are updated for behavioral changes
- General questions: Open a GitHub Discussion
- Bug reports: Open an Issue with details
- Feature proposals: Open an Issue describing the demo scenario
- Main README - Project overview and setup
- Demo Walkthroughs - Complete demo scenarios
- Architecture Documentation - System design details
- Demo Creator Guide - Octodemo Framework documentation
- Custom Instructions - Copilot configuration for this repo
Your contributions help make this demo better for everyone using it to showcase GitHub's capabilities. We appreciate your time and effort!
Remember: This is a demo application designed to showcase GitHub Platform features. Keep the demo experience and effectiveness as your primary consideration when contributing.