Thank you for your interest in contributing to RingID! This document provides guidelines and instructions for contributing.
- Code of Conduct
- Getting Started
- Development Workflow
- Branch Naming Convention
- Commit Message Convention
- Pull Request Process
- Code Style Guidelines
- Testing Requirements
- Documentation
By participating in this project, you agree to abide by our code of conduct. Be respectful, inclusive, and professional.
- Fork the repository
- Clone your fork:
git clone https://github.com/YOUR_USERNAME/dump-data.git - Install dependencies:
pnpm install - Start development server:
pnpm start - Create a new branch for your feature/fix
We use a monorepo structure with pnpm workspaces:
dump-data/
├── apps/ # Applications
│ └── main-app/ # Main RingID app (AngularJS)
├── packages/ # Shared packages
│ ├── scripts/ # Shared JS modules
│ └── templates/ # Shared HTML templates
├── tests/ # Test files
└── dist/ # Build output
pnpm start- Start Vite dev server on port 8080pnpm build- Build for productionpnpm test- Run tests with Karmapnpm lint- Lint code with ESLintpnpm format- Format code with Prettierpnpm audit- Run security audit
Use the following format for branch names:
<type>/<description>
feat/- New featuresfix/- Bug fixesdocs/- Documentation changesstyle/- Code style/formatting (no logic changes)refactor/- Code refactoring (no feature/fix changes)test/- Adding or updating testschore/- Build process, tooling, dependenciesperf/- Performance improvements
feat/chat-message-reactionsfix/login-redirect-loopdocs/update-api-endpointsrefactor/feed-controller-consolidation
We follow the Conventional Commits specification:
<type>(<scope>): <subject>
<body>
<footer>
feat: New featurefix: Bug fixdocs: Documentation changesstyle: Code style/formattingrefactor: Code refactoringtest: Test changeschore: Build/tooling changesperf: Performance improvementsci: CI/CD changes
app- Main application codefeed- Feed modulechat- Chat moduleauth- Authenticationprofile- User profilebuild- Build systemdeps- Dependenciesci- CI/CD
feat(chat): add message reactions
- Add reaction picker component
- Store reactions in WebSocket message
- Update UI to display reactions
Closes #123fix(auth): redirect loop on login page
The OAuth callback was not properly handling the token exchange,
causing an infinite redirect loop.
Fixes #456- Create a PR against the
mainbranch - Fill out the PR template with all required information
- Link related issues using "Closes #123" or "Fixes #123"
- Add screenshots for UI changes
- Ensure CI passes - all checks must be green
- Request review from at least one maintainer
- Address feedback promptly and professionally
Follow the same convention as commit messages:
<type>(<scope>): <description>
- Code follows style guidelines
- Tests added/updated for changes
- Documentation updated (if needed)
- All CI checks pass
- No console errors/warnings
- Manual testing performed
- Use 2 spaces for indentation
- Use ES2020+ features (arrow functions, destructuring, etc.)
- Prefer
constoverlet, avoidvar - Use
$injectfor dependency injection (not implicit) - Use IIFE or strict mode to avoid global pollution
- Use
@templates/alias for template URLs - Keep templates clean and semantic
- Use AngularJS best practices for directives
- Use 2 spaces for indentation
- Prefer SCSS for new styles
- Follow BEM naming convention where applicable
- Avoid
!important
We use ESLint and Prettier. Configuration files:
.eslintrc.json- ESLint rules.prettierrc.json- Prettier formatting.editorconfig- Editor settings
Pre-commit hooks (Husky + lint-staged) will automatically format and lint your code.
- Located in
tests/directory - Use Jasmine framework with Karma runner
- File naming:
*.spec.jsor*.Spec.js - Target coverage: 60%+
pnpm test # Run tests once
pnpm test:watch # Run tests in watch mode- Use Playwright (preferred) or Cypress
- Test critical user flows
- Run in CI environment
- New features or API changes
- Breaking changes
- Architectural changes
- New development patterns
README.md- Project overview and setupCONTRIBUTING.md- This fileARCHITECTURE.md- System architecture (coming soon)MIGRATION.md- Migration guidesCHANGELOG.md- Version history
Feel free to open an issue for questions or reach out to the maintainers.
Thank you for contributing!