Thank you for your interest in contributing to Digital Twin Counter! This document provides guidelines and instructions for contributing to this project.
Please be respectful and professional in all interactions. We welcome contributions from developers of all experience levels.
-
Fork and Clone
git clone https://github.com/YOUR-USERNAME/digital-twin.git cd digital-twin -
Install Dependencies
npm install
-
Set up Convex
npx convex dev
Follow the prompts to set up your Convex deployment.
-
Start Development Server
npm run dev
- Use TypeScript for all new code
- Follow the existing code patterns and architecture
- Use meaningful variable and function names
- Write clean, self-documenting code
When working on features that affect multiple users:
- Test with multiple browser tabs/windows
- Test rapid clicking/interactions
- Verify atomic operations work correctly
- Check for race conditions
- SOLID Principles: Follow Single Responsibility, Open/Closed, Liskov Substitution, Interface Segregation, and Dependency Inversion
- DRY: Don't Repeat Yourself
- Component Separation: Keep components focused and reusable
- Type Safety: Use TypeScript interfaces and types throughout
-
Create a Branch
git checkout -b feature/your-feature-name
-
Make Your Changes
- Write clean, well-documented code
- Test your changes thoroughly
- Ensure the build passes:
npm run build
-
Commit Your Changes
git commit -m "feat: add your feature description"Use conventional commit messages:
feat:for new featuresfix:for bug fixesdocs:for documentation changesrefactor:for code refactoringtest:for adding tests
-
Push and Create Pull Request
git push origin feature/your-feature-name
Then create a pull request through GitHub.
- Provide a clear description of the changes
- Include screenshots for UI changes
- Reference any related issues
- Ensure CI/CD pipeline passes
- Test concurrency scenarios if applicable
- UI/UX Improvements: Better design, animations, accessibility
- Performance Optimizations: Faster load times, reduced bundle size
- New Features: Additional counter operations, user management
- Testing: Unit tests, integration tests, E2E tests
- Documentation: Code comments, tutorials, examples
- Accessibility: Screen reader support, keyboard navigation
- Internationalization: Multi-language support
Feel free to open an issue for questions or discussions about potential contributions.
Thank you for contributing to Digital Twin Counter!