Thank you for your interest in contributing! This document provides guidelines for contributing to the project.
- Check existing GitHub Issues to avoid duplicates
- Create a new issue with:
- Clear, descriptive title
- Steps to reproduce the bug
- Expected vs actual behavior
- Browser version and OS
- Screenshots if applicable
- Open a GitHub Issue with the "feature request" label
- Describe the feature and its use case
- Explain why it would benefit users
- Fork the repository
- Create a feature branch (
git checkout -b feature/your-feature) - Make your changes
- Test thoroughly (see Testing section below)
- Commit with clear messages
- Push to your fork
- Open a Pull Request
- Google Chrome browser
- Text editor (VS Code recommended)
- Node.js 14+ (for build tools only)
-
Clone the repository:
git clone https://github.com/devacc8/coinpeek.git cd coinpeek -
Load the extension in Chrome:
- Navigate to
chrome://extensions/ - Enable "Developer mode"
- Click "Load unpacked"
- Select the project folder
- Navigate to
-
Make changes and reload:
- Edit files in your editor
- Click the reload button in
chrome://extensions/ - Test changes in the popup
Before submitting a PR, verify:
- Price display updates correctly
- Gas fees display (handle API failures gracefully)
- Currency converter works
- Badge shows Bitcoin price
- Refresh button functions
- No console errors
- Use vanilla JavaScript (ES6+)
- No external frameworks or libraries in popup
- Keep code simple and readable
- Configuration: Use
CONFIGconstants fromconfig/constants.js - Formatting: Use
Formattersutilities fromutils/formatters.js - DOM Access: Cache DOM elements in constructor (
this.elements) - API Calls: Only in
background-simple.js, popup uses messaging
- camelCase for variables and functions
- UPPER_CASE for constants
- Descriptive, meaningful names
// Good
const priceElement = this.elements.btcPrice;
const formattedPrice = Formatters.formatPrice(price);
// Avoid
const el = document.getElementById('btc-price');
const p = '$' + price.toFixed(2);coinpeek/
├── manifest.json # Extension configuration
├── background-simple.js # Service worker (API calls)
├── popup/ # UI components
│ ├── popup.html
│ ├── popup.js
│ └── popup.css
├── config/constants.js # Centralized configuration
└── utils/formatters.js # Shared utilities
Feel free to open an issue for any questions about contributing.
Thank you for helping improve CoinPeek!