EngNotes Changelog
Track all updates, bug fixes, and improvements
Summary
Latest Version: v3.2.1
A complete engineering notes and textbooks website with Google Drive API integration, Cloudflare Pages deployment, Cloudflare Worker for API proxying, and enhanced security features.
Bug Fixes
- Fixed Theme Background Not Changing - Fixed CSS selector in
home.css from body:not([data-theme="dark"]):not([data-theme="pure-black"]) to html:not([data-theme="dark"]):not([data-theme="pure-black"]) body to properly detect theme changes on HTML element
- Added Smooth Transition - Added
transition: background-color 0.3s ease to body background for smooth theme switching
- Fixed Minor Bugs - Fixed some minor bugs
Bug Fixes
- Fixed Cookie Consent Change Button - Corrected typo in `cookie-consent.js` (
DECLENSED → DECLINED) so "Change" button now works for both accepted and declined states
- Fixed Navigation State Management - Added
hideAllViews() call in restoreFromState() to properly hide all views when returning to home
- Fixed Department View Bug - Resolved issue where subjects appeared below departments when navigating back from department view
UX Improvements
- Hover Aura Gradient Effects - Added beautiful glow effects on interactive elements:
- Multi-layered glowing auras on feature cards (color-coded: green, blue, purple)
- Animated rotating gradient halos on contribute and interactive buttons
- Smooth underlines with glow effects on navigation links
- Pulsing background glow on footer links and interactive elements
- Icon glow effects with subtle rotations on hover
- Mobile menu links with gradient slide effects
Documentation
- Updated README.md - Added v3.1.6 version history and hover effects documentation
- Updated Privacy Policy - Added details about rate limiting, bot detection, CSP headers, and other security features
Performance
- Improved Browser Back Button - Better state management when using browser back navigation
- Smooth Transitions - Added 0.3s ease transitions to all hover effects for consistent animation
Bug Fixes
- Fixed Folder Ordering - Folders now display in correct alphabetical order (SEM-1, SEM-2, SEM-3, etc.)
- Fixed File Ordering - Files now sorted alphabetically within folders
- Added orderBy Parameter - Added
orderBy parameter support to Cloudflare Worker
- Default Sorting - Added default
orderBy='name' in worker when client doesn't specify
Important Note
After deploying this version, users must clear their browser cache for the fix to take effect. Users can click Cookie Preferences in footer, then Clear All Data, and refresh the page.
Bug Fixes
- Efficient API Key Access - Worker now uses cached
apiKey variable instead of accessing env.GOOGLE_DRIVE_API_KEY multiple times
- Debug Logging - Added comprehensive debug logging when API key is not found
- Improved Error Messages - Better error messages for easier debugging of environment variable issues
Added
- Console Logging - Console logging of environment variable keys when API key is missing
- Environment Object Logging - Console logging of environment object structure in Cloudflare logs
- Documentation - Added
ENV_VARIABLE_TROUBLESHOOTING.md, CLOUDFLARE_PAGES_SETUP.md, and QUICK_FIX_ENV_VAR.md
Bug Fixes
- Worker Query Handling - Fixed worker ignoring custom query (
q) parameters from client-side requests
- Client-Side Filtering - Fixed client-side folder/file filtering not working through API proxy
- Query Logic - Worker now uses client
q param if provided, falls back to default query
Added
- API Key Validation - Added API key validation in Cloudflare Worker
- Clear Error Messages - Added clear error message when
GOOGLE_DRIVE_API_KEY is not configured
- Documentation - Added
API_KEY_DEBUG.md with diagnostic guide and troubleshooting tips
Security Fixes
- Removed API Key - Removed hardcoded Google Drive API key from client-side code
- Removed API Key Property - Removed
GOOGLE_DRIVE_API_KEY property from config.js
- Updated Validation - Removed
hasApiKey check from config validation
- Cloudflare Secrets - Worker now only uses
env.GOOGLE_DRIVE_API_KEY (Cloudflare Secret)
UI Fixes
- Theme Switcher - Fixed theme switcher buttons now showing active state correctly
- JavaScript Class Mismatch - Fixed JavaScript class mismatch (
.theme-btn → .theme-switch-btn)
- Missing Styles - Fixed missing footer, home button, and department button styles
- Layout Styles - Added missing layout styles (footer, .home-btn, .dept-btn, .dept-links)
Bug Fixes
- Google API 403 Error - Fixed Google Drive API 403 error by adding Referer header to Cloudflare Worker
- Referer Header - Updated
_worker.js to send Referer header for Google API compatibility
- Config Validation - Updated
isConfigured() function to only check folder IDs
Code Quality
- Logger Cleanup - Cleaned up logger implementation and removed unused code
- Error Handling - Improved error handling throughout the application
- CSS Consistency - Updated CSS class names for consistency
Documentation
- Updated README - Updated README with current features
- Code Comments - Added code comments for better maintainability
New Features
- Cookie Consent System - Added cookie consent system
- Local Storage Caching - Added local storage caching with user consent
- CSP Headers - Added Content Security Policy headers
- Rate Limiting - Added rate limiting protection
- Bot Detection - Added bot detection
- Ad-Block Detection - Added ad-block detection
Improvements
- Performance - Improved performance with caching
- Security - Enhanced security with CSP headers
- User Experience - Better user experience with cookie preferences
New Features
- Notes Viewer - Notes viewer with Google Drive integration
- Textbooks Viewer - Textbooks viewer with Google Drive integration
- Subject Organization - Subject/semester organization
- PDF Viewer - PDF viewer support
- Responsive Design - Responsive design for all devices
- Theme Support - Dark/Light theme support
- Calculator Tool - Calculator tool
- Privacy Policy - Privacy policy page
Infrastructure
- Cloudflare Pages - Cloudflare Pages deployment
- Cloudflare Worker - Cloudflare Worker for API proxy
- Google Drive API - Google Drive API integration
- Local Storage Caching - Client-side caching with localStorage
Changed
- Improved config.js - Better error handling with HTML response detection
- Error Banner - Clear visual error when config fails to load
- API Function - Added CORS OPTIONS handler
Files Changed (2)
- functions/api/config.js
- js/config.js
Added
- /api/config Endpoint - Cloudflare Pages Function that returns env vars securely
- Runtime Config Loading - Frontend fetches config from API endpoint
- Config Ready Promise - CONFIG.ready() for async initialization
Changed
- config.js Refactored - Fetches from /api/config instead of hardcoded values
- Removed _worker.js - Using Pages Functions instead (fixes Error 1019)
- Improved Security - API keys stored in Cloudflare Environment Variables
Fixed
- Cloudflare Error 1019 - Switched to Pages Functions approach
Files Changed (4)
- functions/api/config.js (new)
- js/config.js (updated)
- _worker.js (removed)
- CHANGELOG.html
Added
- Privacy Policy Page - Comprehensive privacy policy page (privacy.html)
- Privacy-Focused Design - Documents that no personal data is collected
- Cookie Policy Details - Explains local storage usage and cookie consent
- Google Drive API Disclosure - Transparent about API usage
Changed
- Footer Links - Added Privacy Policy link to all page footers
- Cookie Banner - Updated "Learn more" link to point to privacy.html
Files Changed (6)
- privacy.html (new)
- index.html
- notes.html
- textbooks.html
- calculator.html
- CHANGELOG.html
Added
- config.js - Centralized configuration file with environment variable support
- _worker.js - Cloudflare Worker for secure env injection at runtime
- wrangler.toml - Cloudflare Pages configuration file
- .env / .env.example - Environment variables files
Changed
- Environment Variables - API keys and folder IDs now configurable via env vars
- Cloudflare Integration - Full support for Cloudflare Variables and Secrets
- drive-api.js - Updated to read from window.CONFIG object
- All HTML Files - Updated to load config.js before other scripts
Files Changed (8)
- js/config.js (new)
- js/drive-api.js
- _worker.js (new)
- wrangler.toml (new)
- .env (new)
- .env.example (new)
- notes.html
- textbooks.html
Changed
- What If Simulator UI - Replaced slider with progress bar for external exam score selection
- Progress Bar Design - Clean progress bar with pointer marker matching internal marks style
- Quick Select Buttons - Added preset value buttons (0, 25, 50, 60, 75, 100) for quick score selection
- Click-to-Set Interaction - Click anywhere on the progress bar to set the external score
- Visual Feedback - Purple gradient fill matching the simulator theme
Template Folder
- Sensitive Data Removed - All API keys, Drive IDs, and email addresses replaced with placeholders
- Setup Instructions - Added comprehensive setup guide in template README.md
- Placeholder Keys - Use YOUR_GOOGLE_DRIVE_API_KEY, YOUR_NOTES_FOLDER_ID, YOUR_TEXTBOOKS_FOLDER_ID
- Placeholder Email - Use your-email@example.com as placeholder
- Clean Links - All external links replaced with # or placeholder URLs
Files Changed (10+)
- calculator.html
- css/calculator.css
- js/calculator.js
- template/*.html (all)
- template/js/drive-api.js
- template/README.md
- template/CHANGELOG.html
Changed
- Modern Department Cards - Redesigned department selection with colored left accent bar
- Compact Card Layout - Streamlined horizontal layout with badge, name, count, and arrow
- SVG Arrow Icon - Replaced text arrow with clean SVG icon
- Hover Effects - Smooth animations on badge scale, arrow transform, accent bar width
- Section Header - Added "Select Your Department" title with subtitle
- Responsive Improvements - Better mobile styles for new card design
Color Scheme
- EIE - Red (#ef4444)
- ECE - Orange (#f97316)
- EEE - Yellow (#eab308)
- CSE - Green (#22c55e)
- ME - Cyan (#06b6d4)
- CE - Blue (#3b82f6)
- IT - Purple (#8b5cf6)
- AI/AIDS - Pink (#ec4899)
Files Changed (4)
- js/navigation.js
- css/notes.css
- css/textbooks.css
- CHANGELOG.html
Changed
- Template Folder Synced - Template folder now identical to deploy folder
- Modern Card-Based UI - Department cards with color-coded abbreviations (EIE, ECE, EEE, CSE, ME, CE, IT, AI)
- Subject Cards Grid - Modern grid layout for subjects with hover effects
- Unit Cards - Clean unit selection with numbered circles
- File List Styling - Modern file items with icons and action buttons
- Responsive Design - Fully responsive across all devices
Added
- Calculator Page - Added calculator.html to template folder
- Documentation - Added docs folder to template folder
- Color-Coded Departments - Each department has unique color (EIE=red, ECE=orange, EEE=yellow, CSE=green, ME=cyan, CE=blue, IT=purple, AI=pink)
Files Synced (All)
- All files now identical in deploy/ and template/
- deploy_v2.0.zip
- template_v2.0.zip
Changed
- Removed All Emojis - Replaced emojis with text-based icons for cleaner, professional look
- Brand Icon - Changed from book emoji to "EN" with gradient background
- Feature Card Icons - Notes (N), Textbooks (T), Calculator (C) with color-coded gradient boxes
- Theme Buttons - Changed from emoji icons to text: Light, Dark, Black
- File Structure - Moved notes.html and textbooks.html from pages/ folder to root deploy/ folder
- Calculator Page - Added calculator.html with internal marks, GPA, CGPA calculators
- Styling Updates - Updated CSS for text-based icons with gradient backgrounds
Removed
- Removed all emoji icons throughout the website
- Removed pages/ subfolder - all HTML files now at root level
Files Changed (10)
- index.html
- notes.html (moved from pages/)
- textbooks.html (moved from pages/)
- calculator.html (new)
- css/common.css
- css/home.css
- css/calculator.css
- js/navigation.js
- js/calculator.js
- CHANGELOG.html
Added
- Back Button - Added "← Back" button in header of all views (Department, Subject, Unit)
- Smart Back Navigation - Back button uses browser history (
history.back()) for intuitive navigation
- Silent Auto-Refresh - Cache automatically refreshes in background if older than 12 hours
Changed
- Removed Manual Refresh Button - No longer needed with silent auto-refresh
- Back Button Styling - Green accent for Notes, Blue accent for Textbooks
Fixed
- Cookie Consent Typo - Fixed
DECLENSED → DECLINED causing JavaScript errors
- updateBackButton Null Error - Added null check to prevent crashes when back button element doesn't exist
- Error Messages - Improved error messages with actual error details instead of generic "Error loading data"
Files Changed (5)
- pages/notes.html
- pages/textbooks.html
- css/notes.css
- css/textbooks.css
- js/drive-api.js
- js/navigation.js
- js/cookie-consent.js
- js/notes-app.js
- js/textbooks-app.js
Changed
- Unified Navigation Design - Notes and Textbooks pages now use the same clean, modern navbar as the home page
- Modern Navbar Component - Added reusable navbar styles in common.css with logo, breadcrumb, theme switcher, and mobile menu
- Improved Theme Switcher - Compact pill design with icon-only buttons (☀️ 🌙 ⬛) across all pages
- Mobile Menu Overlay - Added hamburger menu with slide-in overlay for mobile devices on all pages
- Page-Specific Accents - Notes page uses green accent, Textbooks page uses blue accent in navbar elements
- Simplified Breadcrumb - Compact breadcrumb in navbar with arrow separators
Fixed
- Navigation Consistency - All three pages (home, notes, textbooks) now have consistent navigation styling
- Theme Switching - Theme buttons now work correctly on notes and textbooks pages
Files Changed (5)
- css/common.css
- css/notes.css
- css/textbooks.css
- pages/notes.html
- pages/textbooks.html
- js/navigation.js
Changed
- Complete Navigation Redesign - Clean, minimal fixed navbar with blur effect
- Compact Theme Switcher - Icon-only buttons in a pill design (☀️ 🌙 ⬛)
- Mobile Menu - Hamburger menu with slide-in overlay for mobile devices
- Improved Hero Section - Better typography, spacing, and visual hierarchy
- Cleaner Feature Cards - Simpler design with accent color borders on hover
- Better Responsive Design - Navigation links hidden on mobile, accessible via menu
Removed
- Removed cluttered theme button labels (now icon-only)
- Removed old header layout with wrapping elements
Files Changed (3)
- index.html
- css/home.css
- js/home-app.js
Fixed
- Missing themes.css - index.html was not loading themes.css, causing theme buttons to not work at all
- Hardcoded Colors in home.css - Replaced all hardcoded black/white colors with CSS variables for dynamic theming
- Text Visibility - Text now uses
var(--text-primary) and adapts to all background colors and themes
- Theme Button Styling - Fixed theme toggle buttons styling for home page header
Changed
- index.html - Added
<link rel="stylesheet" href="css/themes.css"> as first CSS file
- home.css - Complete rewrite using CSS variables throughout:
var(--text-primary) for all text colors
var(--bg-secondary) for card backgrounds
var(--accent-color) for accent elements
var(--border-color) for borders
- Added theme-specific overrides for light, dark, and pure-black modes
- Stars/canvas opacity reduced in dark themes for better readability
Added
- Starry Night Sky Background - Beautiful animated space-themed background on home page
- Twinkling Stars - 100 stars with varying colors (white, blue-tinted, warm-tinted) that drift upward and twinkle
- Mouse Trail Effect - Glowing cyan/teal dots that follow cursor with connecting lines creating a magical trail
- Color-Changing Filter - Subtle red overlay that pulses every 30 seconds for ambient atmosphere
- Landscape Silhouette - Dark mountain silhouettes at the bottom for depth and visual interest
- Glassmorphism Cards - Feature cards now have frosted glass effect with neon glow on hover
Changed
- home.css - Complete redesign with dark gradient background, canvas-based animation, glassmorphism UI
- home-app.js - Replaced particle system with Star and Dot classes for interactive canvas animation
- index.html - Added canvas element, filter overlay, and landscape silhouette
- Removed old floating shapes/icons CSS animation (replaced with canvas-based stars)
- Mouse cursor remains visible (not hidden) for better usability
Technical Details
- Stars use
requestAnimationFrame for smooth 60fps animation
- Each star has randomized twinkle speed, phase, and color variation
- Mouse trail dots fade out naturally with connecting lines to previous dots
- Canvas automatically resizes on window resize
- All animations are CSS/Canvas based (no external libraries)
Files Changed (3)
- index.html
- css/home.css
- js/home-app.js
Added
- Mobile Card View for Home Page - Notes page now shows mobile-friendly card layout on small screens (was showing cramped table before)
- Comprehensive Responsive Breakpoints - Added 4 breakpoints: 768px (tablet), 480px (small phone), 360px (extra small phone)
- Touch-Optimized UI Elements - Larger touch targets, proper spacing for mobile interaction
- Home Page Contribute Section - Prominent "Have Notes to Share?" section on main landing page encouraging users to share their notes
- Contribute / Send Notes Feature - Floating action button + contribute sections on notes/textbooks pages
- Email Pre-filled Subject - Contribute links now pre-fill email subject line
Changed
- index.html - Added prominent "Have Notes to Share?" contribute section
- common.css - Complete mobile responsive overhaul with cleaner header layout + contribute button styles
- home.css - Responsive header, hero section, feature cards + contribute section for mobile
- notes.css - Mobile styles for hero, filter bar, unit cards, and info boxes
- textbooks.css - Same mobile improvements as notes.css with blue accent color
- notes.html - Added contribute section + floating "Send Notes" button
- textbooks.html - Added contribute section + floating "Send Books" button
- notes-app.js - Added mobile card view to
renderHome() function (was missing!)
- Tables automatically switch to card layouts on mobile devices
- Filter buttons scroll horizontally on mobile instead of wrapping
- Unit cards use 2-column grid on mobile instead of auto-fill
- Header reorganized: Logo centered, theme toggle inline, buttons compact
- "Filter:" label hidden on mobile to save space
- All fonts and padding reduced proportionally on smaller screens
Fixed
- Missing Mobile View in Notes - The
renderHome() in notes-app.js only had table view, now includes mobile cards
- Cluttery Mobile Layout - All pages now properly reflow content for small screens
- Header Overflow - Theme toggle, refresh button, and breadcrumb now stack properly on mobile
- Department Links Overflow - Horizontal scroll for department quick links on mobile
- Button Sizes - All buttons now have appropriate sizes for touch interaction on mobile
Files Changed (9)
- index.html
- js/notes-app.js
- css/common.css
- css/home.css
- css/notes.css
- css/textbooks.css
- pages/notes.html
- pages/textbooks.html
- CHANGELOG.html
Fixed
- Critical Bug: Cache still mixing Notes and Textbooks - Previous fix (v1.3) didn't work because ROOT_FOLDER_ID was captured once at script load
- ROOT_FOLDER_ID now uses dynamic getter - Changed from static variable to
getRootFolderId() function that always reads from window.ROOT_FOLDER_ID
- Each page now correctly maintains its own separate cache
- Notes page will never use Textbooks cache and vice versa
Changed
- Added
getRootFolderId() function that dynamically reads window.ROOT_FOLDER_ID
- Removed static
var ROOT_FOLDER_ID declaration (was capturing value once)
- All functions now call
getRootFolderId() instead of using static variable
- This ensures correct folder ID is used even when browser caches script execution
Changed
- Changed HTML pages to use
window.ROOT_FOLDER_ID instead of var ROOT_FOLDER_ID
- Changed drive-api.js to check
window.ROOT_FOLDER_ID before setting default
- Reorganized cache key generation with
getCachePrefix() function
- Added
clearCurrentCache() to clear only current page's cache
- Improved console logging to show which folder type is being loaded
- Note: This version had a bug - ROOT_FOLDER_ID was still captured once at script load, not dynamically
Added
- Refresh Folders Button - Manual refresh to update cached folder structure without page reload
- Cache Status Indicator - Shows how old the cached data is (e.g., "Cache: 2h 15m ago")
- Visual Button States - Loading spinner, success, and error states for refresh button
refreshStructure() function in drive-api.js
getCacheStatus() function in drive-api.js
handleRefreshFolders() function in navigation.js
Changed
- Updated notes.html and textbooks.html headers to include refresh button
- Added CSS styles for refresh button with animations
Added
- Cookie Consent Banner - GDPR-style banner on first visit
- Accept/Decline Buttons - User choice for cookie storage
- Smart LocalStorage Caching - 24-hour cache for folder structure (only if cookies accepted)
- Cache Manager - Safe caching that respects user consent
- Cookie Status in Footer - Shows current consent status with option to change
- Created
css/cookie-consent.css
- Created
js/cookie-consent.js
Changed
- Updated drive-api.js to use cacheManager for all caching operations
- Updated all HTML pages with cookie consent banner
- API calls reduced significantly for returning users (0 calls if cached)
Added
- Home Page - Landing page with animated particles background
- Class Resources Page - Notes, Question Papers, Lab Manuals
- Textbooks Page - Semester textbooks and reference books
- Google Drive API Integration - Dynamic content fetching from Google Drive
- Theme Support - Light, Dark, Pure Black/AMOLED themes
- Department Navigation - Browse by department (CSE, ECE, ME, etc.)
- Semester Filtering - Filter subjects by semester (1-8)
- Unit-wise Organization - Files organized by units/modules
- Subfolder Support - Navigate through nested folders
- PDF Viewer Modal - In-page PDF viewing with Google Drive preview
- Ad Spaces - 2-3 ads only on department pages (top and inline)
- Bot Protection - Basic security measures
Removed
- Adblock Detector - Removed due to errors (user requested)
HTML Files (8)
- index.html
- notes.html
- textbooks.html
- calculator.html
- privacy.html
- pages/notes.html
- pages/textbooks.html
- pages/calculator.html
CSS Files (11)
- css/base.css
- css/layout.css
- css/components.css
- css/utilities.css
- css/themes.css
- css/home.css
- css/notes.css
- css/textbooks.css
- css/calculator.css
- css/ads.css
- css/cookie-consent.css
JavaScript Files (12)
- js/config.js
- js/logger.js
- js/drive-api.js
- js/navigation.js
- js/cookie-consent.js
- js/theme-manager.js
- js/home-app.js
- js/notes-app.js
- js/textbooks-app.js
- js/calculator.js
- js/bot-protection.js
- js/adblock-detector.js
Google Drive API
- API Key - Required for Google Drive API access, set in drive-api.js
- Folder IDs - Separate ROOT_FOLDER_ID for Notes and Textbooks, set in each HTML page
- Drive Structure - Root folder contains department subfolders, which contain subject folders, which contain unit folders with files
- File Types Supported - PDFs, Word docs, PowerPoints (viewed via Google Drive preview)
- API Quota Management - Caching folder structure to minimize API calls and avoid hitting quota limits
Made with ❤️ for engineering students
GitHub ·
Website