Thank you for your interest in contributing to OrgExplorer—an AOSSIE project. This guide outlines how to report issues, suggest features, and submit code changes.
By participating in this project, you agree to abide by our community standards and communicate respectfully with maintainers and fellow contributors.
- Discord: AOSSIE Community — Join for discussions and announcements
- Issues: GitHub Issues — Report bugs and request features
- Discussions: Use Discord for architecture questions and early-stage ideas
Before opening an issue, search for existing ones to avoid duplicates. A good bug report includes:
- Clear title — Brief, descriptive summary
- Steps to reproduce — Exact steps to trigger the issue
- Expected vs actual behavior — What should happen vs what happens
- Screenshots/recordings — For UI-related bugs
- Environment — OS, browser, Node.js version if relevant
- Check existing issues to see if it's already suggested
- Describe the feature and the problem it solves
- Provide examples or mockups if helpful
- Discuss on Discord for early feedback before extensive work
- Claim an issue — Comment on the issue (or a discussion) before starting work
- Get alignment — Wait for maintainer confirmation on approach for significant changes
- Fork & branch — Create a feature branch from
main - Make changes — Keep commits focused and messages clear
- Test locally — Run lint and build before submitting
- Open a PR — Use the PR template and link related issues
- Engage on Discord — Share your PR link for visibility
OrgExplorer is a single-package frontend React application with the following tech stack:
| Component | Technology |
|---|---|
| UI Framework | React 18 with TypeScript |
| Styling | TailwindCSS |
| Build Tool | Vite |
| Linting | ESLint 9 |
| Data Fetching | GitHub REST & GraphQL APIs |
| Visualizations | D3.js & Recharts |
| Storage | IndexedDB (browser-based) |
OrgExplorer/
├── public/ # Static assets (logos, etc.)
├── src/
│ ├── App.tsx # Root component
│ ├── main.tsx # React entry point
│ ├── components/ # Reusable components
│ ├── pages/ # Page components
│ ├── utils/ # Helper functions
│ └── styles/ # Global & module styles
├── index.html # HTML entry point
├── vite.config.ts # Vite configuration
├── eslint.config.js # ESLint rules
├── tsconfig.json # TypeScript config
└── package.json # Dependencies & scripts
Note: No test script yet. Run npm run lint and npm run build before submitting PRs.
- Node.js: Current LTS version (20.x or 22.x). If commands fail, upgrade Node first.
- npm: Comes with Node; this repo uses
package-lock.jsonfor consistency.
-
Fork the repository on GitHub (if you don't have push access)
-
Clone your fork:
git clone https://github.com/YOUR_USERNAME/OrgExplorer.git cd OrgExplorer -
Add upstream remote:
git remote add upstream https://github.com/AOSSIE-Org/OrgExplorer.git
-
Install dependencies:
npm install
-
Start development server:
npm run dev
Opens on http://localhost:5173 (Vite default)
-
Verify build works:
npm run build npm run preview
If .env.example exists, copy it to .env and fill in values as documented. Otherwise, no environment files are required for local development.
git fetch upstream
git checkout upstream/main
git checkout -b feat/short-description
# or: fix/issue-number-short-description
# or: docs/your-change- Write focused, reviewable commits
- Use clear commit messages (see conventions below)
- Update documentation if behavior changes
- Remove console logs and debug code before committing
npm run lint # Check code style and TypeScript
npm run build # Ensure production build succeedsFix any errors reported before proceeding.
| Prefix | Purpose |
|---|---|
feat: |
New user-facing feature |
fix: |
Bug fix |
docs: |
Documentation only |
style: |
Formatting changes (no logic change) |
refactor: |
Code restructuring |
chore: |
Dependencies, config, tooling |
Example:
feat: add repository network graph visualization
docs: update CONTRIBUTING with setup steps
git push origin feat/short-descriptionOn GitHub:
- Open a PR against
upstream/main - Fill in the PR template
- Link related issues using
Fixes #123orRelated to #123 - Add screenshots for UI changes
- Share the PR link on Discord
git fetch upstream
git rebase upstream/main
git push --force-with-lease origin feat/short-descriptionBefore submitting your PR, ensure:
-
npm run lintpasses -
npm run buildsucceeds - Documentation is updated for behavior changes
- Commits are clear and well-described
- Branch is up to date with
upstream/main - Related issues are linked
- Use the PR template — Fill in all sections in
.github/PULL_REQUEST_TEMPLATE.md - Link issues — Use
Fixes #123orRelated to #456 - Add visuals — Screenshots/recordings for UI changes
- Explain trade-offs — Mention anything reviewers should know
- Disclose AI usage — If you used AI tools, mention it (required by template)
- Check back regularly for review feedback
- Push additional commits to the same branch (no need to force-push)
- Respond to comments promptly
- Share the PR on Discord for visibility
- Follow existing ESLint configuration (
eslint.config.js) - Use
constby default; only useletwhen reassignment is needed - Write meaningful names; keep components focused and reusable
- Match patterns in nearby files for consistency
- No unnecessary dependencies — Use browser APIs when possible
- No secrets or large artifacts — Don't commit API keys, build outputs, or node_modules
- Keep it simple — Avoid over-engineering; favor readability
- Type safety — Use TypeScript for new code; avoid
anywhen possible
- ESLint is configured and will catch most issues
- Run
npm run lintfrequently during development - Format imports and maintain consistent style with the codebase
- Be respectful — Treat all contributors with courtesy
- Communicate clearly — Use clear language in issues and PRs
- Ask for help — If stuck or can't finish, reach out on Discord
- Follow up — If a PR is inactive, ping on Discord rather than only commenting on GitHub
- One assignee per issue — Avoid duplicate efforts; check for existing PRs first
- 💬 Discord: Ask on AOSSIE server
- 🐛 Bug reports: Open an issue
- 💡 Ideas: Start a discussion
Thank you for contributing to OrgExplorer! 🎉