Skip to content

Repository files navigation

Exam Countdown Extension

Exam Countdown Extension Logo

A browser extension that provides countdown timers for JEE and NEET exams, helping students track the time remaining until their important exams.

GitHub ReleaseLicenseIssuesPull RequestsHomepage

📋 Table of Contents

✨ Features

  • Countdown Timers: Real-time countdown for JEE and NEET exams
  • 🎛️ Customizable Preferences: Show/hide countdowns based on your interests
  • 🖥️ Popup Interface: Quick access to countdowns via extension icon
  • 🆕 New Tab View: Detailed countdown view in a new tab
  • 🎨 User-Friendly Design: Clean and intuitive interface
  • 📅 Personalized Exams: Add and track your own exam dates
  • 🎵 Background Music: Play Spotify playlists or YouTube videos as background music

🚀 Installation

Stable Release

Download from GitHubDownload from Chrome Web StoreDownload from Mozilla Add-ons

Beta Version

For Firefox:

  1. Download the .zip from Releases.
  2. Extract it to a folder.
  3. Open about:debugging#/runtime/this-firefox in Firefox.
  4. Click "Load Temporary Add-on..." and select the manifest.json file from the extracted folder.

For Chrome:

  1. Download the .zip from Releases.
  2. Extract it to a folder.
  3. Open chrome://extensions/.
  4. Enable Developer Mode (top right in Chrome).
  5. Click "Load unpacked" and select the extracted folder.

📖 Usage

  • Click on the extension icon to open the popup and view the countdowns.
  • Access the options page to set your preferences for displaying countdowns.
  • Use the countdown page for a detailed view, which can be opened in a new tab.
  • Add your own exam dates in the settings to personalize your countdown experience.

🤝 Contributing

We welcome contributions from everyone! Please see our Contributing Guide for details on how to get started.

🛠️ Local Development

Prerequisites

Before beginning, install pnpm globally (if not already installed):

npm install -g pnpm

Install Dependencies

Install the required dependencies for the project:

pnpm install

Development

To develop for Firefox, set the TARGET_BROWSER environment variable before running the dev server:

export TARGET_BROWSER=firefox # Linux/macOSset TARGET_BROWSER=firefox # Windows (Command Prompt)$env:TARGET_BROWSER="firefox"# Windows (PowerShell)

Then start the development server:

pnpm dev

This will launch Firefox with your extension loaded. The page will automatically reload whenever you make changes to your code.

Build for Production

This command builds your extension for production. It optimizes and bundles your extension, preparing it for deployment to the target browser's store.

pnpm build

Linting

After building, you can run the linter on the production files in the dist/ directory to check for issues:

pnpm lint dist/

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
GitHub - NovatraX/exam-countdown-extension · GitHub
Skip to content

Repository files navigation

Exam Countdown Extension

Exam Countdown Extension Logo

A browser extension that provides countdown timers for JEE and NEET exams, helping students track the time remaining until their important exams.

GitHub ReleaseLicenseIssuesPull RequestsHomepage

📋 Table of Contents

✨ Features

  • Countdown Timers: Real-time countdown for JEE and NEET exams
  • 🎛️ Customizable Preferences: Show/hide countdowns based on your interests
  • 🖥️ Popup Interface: Quick access to countdowns via extension icon
  • 🆕 New Tab View: Detailed countdown view in a new tab
  • 🎨 User-Friendly Design: Clean and intuitive interface
  • 📅 Personalized Exams: Add and track your own exam dates
  • 🎵 Background Music: Play Spotify playlists or YouTube videos as background music

🚀 Installation

Stable Release

Download from GitHubDownload from Chrome Web StoreDownload from Mozilla Add-ons

Beta Version

For Firefox:

  1. Download the .zip from Releases.
  2. Extract it to a folder.
  3. Open about:debugging#/runtime/this-firefox in Firefox.
  4. Click "Load Temporary Add-on..." and select the manifest.json file from the extracted folder.

For Chrome:

  1. Download the .zip from Releases.
  2. Extract it to a folder.
  3. Open chrome://extensions/.
  4. Enable Developer Mode (top right in Chrome).
  5. Click "Load unpacked" and select the extracted folder.

📖 Usage

  • Click on the extension icon to open the popup and view the countdowns.
  • Access the options page to set your preferences for displaying countdowns.
  • Use the countdown page for a detailed view, which can be opened in a new tab.
  • Add your own exam dates in the settings to personalize your countdown experience.

🤝 Contributing

We welcome contributions from everyone! Please see our Contributing Guide for details on how to get started.

🛠️ Local Development

Prerequisites

Before beginning, install pnpm globally (if not already installed):

npm install -g pnpm

Install Dependencies

Install the required dependencies for the project:

pnpm install

Development

To develop for Firefox, set the TARGET_BROWSER environment variable before running the dev server:

export TARGET_BROWSER=firefox # Linux/macOSset TARGET_BROWSER=firefox # Windows (Command Prompt)$env:TARGET_BROWSER="firefox"# Windows (PowerShell)

Then start the development server:

pnpm dev

This will launch Firefox with your extension loaded. The page will automatically reload whenever you make changes to your code.

Build for Production

This command builds your extension for production. It optimizes and bundles your extension, preparing it for deployment to the target browser's store.

pnpm build

Linting

After building, you can run the linter on the production files in the dist/ directory to check for issues:

pnpm lint dist/

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - NovatraX/exam-countdown-extension · GitHub
Skip to content

Repository files navigation

Exam Countdown Extension

Exam Countdown Extension Logo

A browser extension that provides countdown timers for JEE and NEET exams, helping students track the time remaining until their important exams.

GitHub ReleaseLicenseIssuesPull RequestsHomepage

📋 Table of Contents

✨ Features

  • Countdown Timers: Real-time countdown for JEE and NEET exams
  • 🎛️ Customizable Preferences: Show/hide countdowns based on your interests
  • 🖥️ Popup Interface: Quick access to countdowns via extension icon
  • 🆕 New Tab View: Detailed countdown view in a new tab
  • 🎨 User-Friendly Design: Clean and intuitive interface
  • 📅 Personalized Exams: Add and track your own exam dates
  • 🎵 Background Music: Play Spotify playlists or YouTube videos as background music

🚀 Installation

Stable Release

Download from GitHubDownload from Chrome Web StoreDownload from Mozilla Add-ons

Beta Version

For Firefox:

  1. Download the .zip from Releases.
  2. Extract it to a folder.
  3. Open about:debugging#/runtime/this-firefox in Firefox.
  4. Click "Load Temporary Add-on..." and select the manifest.json file from the extracted folder.

For Chrome:

  1. Download the .zip from Releases.
  2. Extract it to a folder.
  3. Open chrome://extensions/.
  4. Enable Developer Mode (top right in Chrome).
  5. Click "Load unpacked" and select the extracted folder.

📖 Usage

  • Click on the extension icon to open the popup and view the countdowns.
  • Access the options page to set your preferences for displaying countdowns.
  • Use the countdown page for a detailed view, which can be opened in a new tab.
  • Add your own exam dates in the settings to personalize your countdown experience.

🤝 Contributing

We welcome contributions from everyone! Please see our Contributing Guide for details on how to get started.

🛠️ Local Development

Prerequisites

Before beginning, install pnpm globally (if not already installed):

npm install -g pnpm

Install Dependencies

Install the required dependencies for the project:

pnpm install

Development

To develop for Firefox, set the TARGET_BROWSER environment variable before running the dev server:

export TARGET_BROWSER=firefox # Linux/macOSset TARGET_BROWSER=firefox # Windows (Command Prompt)$env:TARGET_BROWSER="firefox"# Windows (PowerShell)

Then start the development server:

pnpm dev

This will launch Firefox with your extension loaded. The page will automatically reload whenever you make changes to your code.

Build for Production

This command builds your extension for production. It optimizes and bundles your extension, preparing it for deployment to the target browser's store.

pnpm build

Linting

After building, you can run the linter on the production files in the dist/ directory to check for issues:

pnpm lint dist/

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - NovatraX/exam-countdown-extension · GitHub
Skip to content

Repository files navigation

Exam Countdown Extension

Exam Countdown Extension Logo

A browser extension that provides countdown timers for JEE and NEET exams, helping students track the time remaining until their important exams.

GitHub ReleaseLicenseIssuesPull RequestsHomepage

📋 Table of Contents

✨ Features

  • Countdown Timers: Real-time countdown for JEE and NEET exams
  • 🎛️ Customizable Preferences: Show/hide countdowns based on your interests
  • 🖥️ Popup Interface: Quick access to countdowns via extension icon
  • 🆕 New Tab View: Detailed countdown view in a new tab
  • 🎨 User-Friendly Design: Clean and intuitive interface
  • 📅 Personalized Exams: Add and track your own exam dates
  • 🎵 Background Music: Play Spotify playlists or YouTube videos as background music

🚀 Installation

Stable Release

Download from GitHubDownload from Chrome Web StoreDownload from Mozilla Add-ons

Beta Version

For Firefox:

  1. Download the .zip from Releases.
  2. Extract it to a folder.
  3. Open about:debugging#/runtime/this-firefox in Firefox.
  4. Click "Load Temporary Add-on..." and select the manifest.json file from the extracted folder.

For Chrome:

  1. Download the .zip from Releases.
  2. Extract it to a folder.
  3. Open chrome://extensions/.
  4. Enable Developer Mode (top right in Chrome).
  5. Click "Load unpacked" and select the extracted folder.

📖 Usage

  • Click on the extension icon to open the popup and view the countdowns.
  • Access the options page to set your preferences for displaying countdowns.
  • Use the countdown page for a detailed view, which can be opened in a new tab.
  • Add your own exam dates in the settings to personalize your countdown experience.

🤝 Contributing

We welcome contributions from everyone! Please see our Contributing Guide for details on how to get started.

🛠️ Local Development

Prerequisites

Before beginning, install pnpm globally (if not already installed):

npm install -g pnpm

Install Dependencies

Install the required dependencies for the project:

pnpm install

Development

To develop for Firefox, set the TARGET_BROWSER environment variable before running the dev server:

export TARGET_BROWSER=firefox # Linux/macOSset TARGET_BROWSER=firefox # Windows (Command Prompt)$env:TARGET_BROWSER="firefox"# Windows (PowerShell)

Then start the development server:

pnpm dev

This will launch Firefox with your extension loaded. The page will automatically reload whenever you make changes to your code.

Build for Production

This command builds your extension for production. It optimizes and bundles your extension, preparing it for deployment to the target browser's store.

pnpm build

Linting

After building, you can run the linter on the production files in the dist/ directory to check for issues:

pnpm lint dist/

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' GitHub - NovatraX/exam-countdown-extension · GitHub
Skip to content

Repository files navigation

Exam Countdown Extension

Exam Countdown Extension Logo

A browser extension that provides countdown timers for JEE and NEET exams, helping students track the time remaining until their important exams.

GitHub ReleaseLicenseIssuesPull RequestsHomepage

📋 Table of Contents

✨ Features

  • Countdown Timers: Real-time countdown for JEE and NEET exams
  • 🎛️ Customizable Preferences: Show/hide countdowns based on your interests
  • 🖥️ Popup Interface: Quick access to countdowns via extension icon
  • 🆕 New Tab View: Detailed countdown view in a new tab
  • 🎨 User-Friendly Design: Clean and intuitive interface
  • 📅 Personalized Exams: Add and track your own exam dates
  • 🎵 Background Music: Play Spotify playlists or YouTube videos as background music

🚀 Installation

Stable Release

Download from GitHubDownload from Chrome Web StoreDownload from Mozilla Add-ons

Beta Version

For Firefox:

  1. Download the .zip from Releases.
  2. Extract it to a folder.
  3. Open about:debugging#/runtime/this-firefox in Firefox.
  4. Click "Load Temporary Add-on..." and select the manifest.json file from the extracted folder.

For Chrome:

  1. Download the .zip from Releases.
  2. Extract it to a folder.
  3. Open chrome://extensions/.
  4. Enable Developer Mode (top right in Chrome).
  5. Click "Load unpacked" and select the extracted folder.

📖 Usage

  • Click on the extension icon to open the popup and view the countdowns.
  • Access the options page to set your preferences for displaying countdowns.
  • Use the countdown page for a detailed view, which can be opened in a new tab.
  • Add your own exam dates in the settings to personalize your countdown experience.

🤝 Contributing

We welcome contributions from everyone! Please see our Contributing Guide for details on how to get started.

🛠️ Local Development

Prerequisites

Before beginning, install pnpm globally (if not already installed):

npm install -g pnpm

Install Dependencies

Install the required dependencies for the project:

pnpm install

Development

To develop for Firefox, set the TARGET_BROWSER environment variable before running the dev server:

export TARGET_BROWSER=firefox # Linux/macOSset TARGET_BROWSER=firefox # Windows (Command Prompt)$env:TARGET_BROWSER="firefox"# Windows (PowerShell)

Then start the development server:

pnpm dev

This will launch Firefox with your extension loaded. The page will automatically reload whenever you make changes to your code.

Build for Production

This command builds your extension for production. It optimizes and bundles your extension, preparing it for deployment to the target browser's store.

pnpm build

Linting

After building, you can run the linter on the production files in the dist/ directory to check for issues:

pnpm lint dist/

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - NovatraX/exam-countdown-extension · GitHub
Skip to content

Repository files navigation

Exam Countdown Extension

Exam Countdown Extension Logo

A browser extension that provides countdown timers for JEE and NEET exams, helping students track the time remaining until their important exams.

GitHub ReleaseLicenseIssuesPull RequestsHomepage

📋 Table of Contents

✨ Features

  • Countdown Timers: Real-time countdown for JEE and NEET exams
  • 🎛️ Customizable Preferences: Show/hide countdowns based on your interests
  • 🖥️ Popup Interface: Quick access to countdowns via extension icon
  • 🆕 New Tab View: Detailed countdown view in a new tab
  • 🎨 User-Friendly Design: Clean and intuitive interface
  • 📅 Personalized Exams: Add and track your own exam dates
  • 🎵 Background Music: Play Spotify playlists or YouTube videos as background music

🚀 Installation

Stable Release

Download from GitHubDownload from Chrome Web StoreDownload from Mozilla Add-ons

Beta Version

For Firefox:

  1. Download the .zip from Releases.
  2. Extract it to a folder.
  3. Open about:debugging#/runtime/this-firefox in Firefox.
  4. Click "Load Temporary Add-on..." and select the manifest.json file from the extracted folder.

For Chrome:

  1. Download the .zip from Releases.
  2. Extract it to a folder.
  3. Open chrome://extensions/.
  4. Enable Developer Mode (top right in Chrome).
  5. Click "Load unpacked" and select the extracted folder.

📖 Usage

  • Click on the extension icon to open the popup and view the countdowns.
  • Access the options page to set your preferences for displaying countdowns.
  • Use the countdown page for a detailed view, which can be opened in a new tab.
  • Add your own exam dates in the settings to personalize your countdown experience.

🤝 Contributing

We welcome contributions from everyone! Please see our Contributing Guide for details on how to get started.

🛠️ Local Development

Prerequisites

Before beginning, install pnpm globally (if not already installed):

npm install -g pnpm

Install Dependencies

Install the required dependencies for the project:

pnpm install

Development

To develop for Firefox, set the TARGET_BROWSER environment variable before running the dev server:

export TARGET_BROWSER=firefox # Linux/macOSset TARGET_BROWSER=firefox # Windows (Command Prompt)$env:TARGET_BROWSER="firefox"# Windows (PowerShell)

Then start the development server:

pnpm dev

This will launch Firefox with your extension loaded. The page will automatically reload whenever you make changes to your code.

Build for Production

This command builds your extension for production. It optimizes and bundles your extension, preparing it for deployment to the target browser's store.

pnpm build

Linting

After building, you can run the linter on the production files in the dist/ directory to check for issues:

pnpm lint dist/

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - NovatraX/exam-countdown-extension · GitHub
Skip to content

Repository files navigation

Exam Countdown Extension

Exam Countdown Extension Logo

A browser extension that provides countdown timers for JEE and NEET exams, helping students track the time remaining until their important exams.

GitHub ReleaseLicenseIssuesPull RequestsHomepage

📋 Table of Contents

✨ Features

  • Countdown Timers: Real-time countdown for JEE and NEET exams
  • 🎛️ Customizable Preferences: Show/hide countdowns based on your interests
  • 🖥️ Popup Interface: Quick access to countdowns via extension icon
  • 🆕 New Tab View: Detailed countdown view in a new tab
  • 🎨 User-Friendly Design: Clean and intuitive interface
  • 📅 Personalized Exams: Add and track your own exam dates
  • 🎵 Background Music: Play Spotify playlists or YouTube videos as background music

🚀 Installation

Stable Release

Download from GitHubDownload from Chrome Web StoreDownload from Mozilla Add-ons

Beta Version

For Firefox:

  1. Download the .zip from Releases.
  2. Extract it to a folder.
  3. Open about:debugging#/runtime/this-firefox in Firefox.
  4. Click "Load Temporary Add-on..." and select the manifest.json file from the extracted folder.

For Chrome:

  1. Download the .zip from Releases.
  2. Extract it to a folder.
  3. Open chrome://extensions/.
  4. Enable Developer Mode (top right in Chrome).
  5. Click "Load unpacked" and select the extracted folder.

📖 Usage

  • Click on the extension icon to open the popup and view the countdowns.
  • Access the options page to set your preferences for displaying countdowns.
  • Use the countdown page for a detailed view, which can be opened in a new tab.
  • Add your own exam dates in the settings to personalize your countdown experience.

🤝 Contributing

We welcome contributions from everyone! Please see our Contributing Guide for details on how to get started.

🛠️ Local Development

Prerequisites

Before beginning, install pnpm globally (if not already installed):

npm install -g pnpm

Install Dependencies

Install the required dependencies for the project:

pnpm install

Development

To develop for Firefox, set the TARGET_BROWSER environment variable before running the dev server:

export TARGET_BROWSER=firefox # Linux/macOSset TARGET_BROWSER=firefox # Windows (Command Prompt)$env:TARGET_BROWSER="firefox"# Windows (PowerShell)

Then start the development server:

pnpm dev

This will launch Firefox with your extension loaded. The page will automatically reload whenever you make changes to your code.

Build for Production

This command builds your extension for production. It optimizes and bundles your extension, preparing it for deployment to the target browser's store.

pnpm build

Linting

After building, you can run the linter on the production files in the dist/ directory to check for issues:

pnpm lint dist/

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); GitHub - NovatraX/exam-countdown-extension · GitHub
Skip to content

Repository files navigation

Exam Countdown Extension

Exam Countdown Extension Logo

A browser extension that provides countdown timers for JEE and NEET exams, helping students track the time remaining until their important exams.

GitHub ReleaseLicenseIssuesPull RequestsHomepage

📋 Table of Contents

✨ Features

  • Countdown Timers: Real-time countdown for JEE and NEET exams
  • 🎛️ Customizable Preferences: Show/hide countdowns based on your interests
  • 🖥️ Popup Interface: Quick access to countdowns via extension icon
  • 🆕 New Tab View: Detailed countdown view in a new tab
  • 🎨 User-Friendly Design: Clean and intuitive interface
  • 📅 Personalized Exams: Add and track your own exam dates
  • 🎵 Background Music: Play Spotify playlists or YouTube videos as background music

🚀 Installation

Stable Release

Download from GitHubDownload from Chrome Web StoreDownload from Mozilla Add-ons

Beta Version

For Firefox:

  1. Download the .zip from Releases.
  2. Extract it to a folder.
  3. Open about:debugging#/runtime/this-firefox in Firefox.
  4. Click "Load Temporary Add-on..." and select the manifest.json file from the extracted folder.

For Chrome:

  1. Download the .zip from Releases.
  2. Extract it to a folder.
  3. Open chrome://extensions/.
  4. Enable Developer Mode (top right in Chrome).
  5. Click "Load unpacked" and select the extracted folder.

📖 Usage

  • Click on the extension icon to open the popup and view the countdowns.
  • Access the options page to set your preferences for displaying countdowns.
  • Use the countdown page for a detailed view, which can be opened in a new tab.
  • Add your own exam dates in the settings to personalize your countdown experience.

🤝 Contributing

We welcome contributions from everyone! Please see our Contributing Guide for details on how to get started.

🛠️ Local Development

Prerequisites

Before beginning, install pnpm globally (if not already installed):

npm install -g pnpm

Install Dependencies

Install the required dependencies for the project:

pnpm install

Development

To develop for Firefox, set the TARGET_BROWSER environment variable before running the dev server:

export TARGET_BROWSER=firefox # Linux/macOSset TARGET_BROWSER=firefox # Windows (Command Prompt)$env:TARGET_BROWSER="firefox"# Windows (PowerShell)

Then start the development server:

pnpm dev

This will launch Firefox with your extension loaded. The page will automatically reload whenever you make changes to your code.

Build for Production

This command builds your extension for production. It optimizes and bundles your extension, preparing it for deployment to the target browser's store.

pnpm build

Linting

After building, you can run the linter on the production files in the dist/ directory to check for issues:

pnpm lint dist/

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.