Coding Challenges Chrome Extension
A custom Chrome extension that replaces the new tab page with a beautiful, functional dashboard featuring real-time clock, date display, and live GitHub pull requests from the Coding Challenges community.
!Extension Preview !Manifest Version !JavaScript
Features
✅ Step 1: Custom Branding
✅ Step 2: Time & Date Display
✅ Step 3: Dynamic Content
Installation
Installing from Source (Developer Mode)
1. Clone or download this repository
git clone
cd 73-chrome-extension
2. Generate Icons (Optional)
If you have ImageMagick installed:
./generate-icons.sh
Or manually create three PNG files in the icons/ directory:
- icon16.png (16x16 pixels)
- icon48.png (48x48 pixels)
- icon128.png (128x128 pixels)
You can use any image editor or online tool to create these icons.
3. Open Chrome Extensions Page
- Navigate to chrome://extensions/ in Google Chrome
- Or go to Menu → More Tools → Extensions
4. Enable Developer Mode - Toggle the "Developer mode" switch in the top-right corner
5. Load the Extension
- Click "Load unpacked"
- Select the 73-chrome-extension directory
- The extension should now appear in your extensions list
6. Test the Extension - Open a new tab (Ctrl+T / Cmd+T) - You should see the custom new tab page with: - Coding Challenges branding - Current time and date - List of open pull requests
Project Structure
73-chrome-extension/
├── manifest.json # Extension configuration (Manifest V3)
├── newtab.html # New tab page HTML structure
├── styles.css # Styling and animations
├── script.js # JavaScript logic for time, date, and API calls
├── generate-icons.sh # Script to generate placeholder icons
├── icons/ # Extension icons directory
│ ├── icon16.png # 16x16 icon
│ ├── icon48.png # 48x48 icon
│ └── icon128.png # 128x128 icon
├── README.md # This file
├── challenge.md # Challenge requirements
└── docs/ # Detailed documentation
├── implementation.md # Architecture and design decisions
├── examples.md # Usage examples and customization
└── api.md # Chrome Extension API reference
Technical Details
Manifest V3
This extension uses Chrome's Manifest V3, which is the latest and required standard for Chrome extensions. Key features:
- chrome_url_overrides.newtab: Replaces the default new tab page
Permissions
- storage: For future features like user preferences
https://api.github.com/*: Required to fetch pull request dataAPI Usage
The extension uses the GitHub REST API to fetch pull requests:
https://api.github.com/repos/CodingChallegesFYI/SharedSolutions/pullsBrowser Compatibility
- ✅ Google Chrome (version 88+)
Usage
Basic Usage
Once installed, simply open a new tab and enjoy your custom dashboard!
Keyboard Shortcuts:
Ctrl+T (Windows/Linux) or Cmd+T (macOS): Open new tabCtrl+Shift+T (Windows/Linux) or Cmd+Shift+T (macOS): Reopen closed tabFeatures Walkthrough
1. Time Display: The large clock in the center updates every second
Refreshing Data
- Pull requests auto-refresh every 5 minutes
Customization
The extension can be easily customized by modifying the source files:
Changing Colors
Edit styles.css:
body {
background-color: #04295B; / Change this to your preferred color /
}
Changing Time Format
Edit script.js:
// For 12-hour format
const timeString = now.toLocaleTimeString('en-US', {
hour: '2-digit',
minute: '2-digit',
second: '2-digit',
hour12: true
});
Changing Refresh Interval
Edit script.js:
// Change 300000 (5 minutes) to your preferred interval in milliseconds
setInterval(fetchPullRequests, 300000);
Adding Different Data Sources
See docs/examples.md for examples of integrating other APIs like:
Development
Making Changes
1. Edit the source files (newtab.html, styles.css, script.js)
chrome://extensions/
3. Click the refresh icon on the extension card
4. Open a new tab to see your changesDebugging
1. Open a new tab with the extension 2. Right-click anywhere on the page 3. Select "Inspect" to open Chrome DevTools 4. Check the Console tab for any errors or logs
Common Development Commands
Generate icons (requires ImageMagick)
./generate-icons.shValidate manifest.json
Use online validator: https://jsonlint.com/
Check for errors
Open chrome://extensions/ and check for error badges
Troubleshooting
Extension Not Loading
Problem: Extension doesn't appear after loading unpacked
Solutions:
manifest.json)manifest.json is valid JSONIcons Not Showing
Problem: Extension icons are missing or show as placeholder
Solutions:
./generate-icons.sh if ImageMagick is installedPRs Not Loading
Problem: "Failed to load pull requests" error appears
Solutions:
Time Not Updating
Problem: Clock shows the same time and doesn't update
Solutions:
Styling Issues
Problem: Layout looks broken or overlapping
Solutions:
Performance
The extension is designed to be lightweight and efficient:
- Memory Usage: ~10-15 MB per tab
Security
- No data collection or tracking
Future Enhancements
Potential features to add:
- [ ] User preferences (custom colors, fonts)
Resources
Contributing
This is a coding challenge implementation. Feel free to:
License
This project is part of the Coding Challenges series and is intended for educational purposes.
Credits
- Challenge by CodingChallenges.fyi
Support
If you encounter issues:
docs/examples.md for detailed usage examples
3. Check docs/implementation.md for technical details
4. Open the browser console (F12) for error messages---
Happy Coding! 🚀
For more coding challenges, visit CodingChallenges.fyi