Home Class Resources Textbooks Calculator

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.

12
JS Files
11
CSS Files
7
HTML Pages
3.2
Versions
v3.2.1 12-06-2026 - Theme Background Fix

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
v3.2 12-06-2026 - Bug Fixes & UX Improvements

Bug Fixes

  • Fixed Cookie Consent Change Button - Corrected typo in `cookie-consent.js` (DECLENSEDDECLINED) 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
v3.1.5 12-06-2026 - Folder Ordering Fix

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.

v3.1.4 12-06-2026 - Environment Variable Debug

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
v3.1.3 12-06-2026 - Query Parameter Fix

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
v3.1.2 12-06-2026 - Security & UI Fixes

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
v3.1.1 12-06-2026 - Code Quality Improvements

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
v3.1.0 12-06-2026 - Security & Privacy Features

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
v3.0 12-06-2026 - Major Release

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
v2.7 Improved Config & Error Handling

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
v2.6 Secure Environment Variables via API

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
v2.5 Privacy Policy Page

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
v2.4 Environment Variables Support

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
v2.2 Calculator Progress Bar UI & Template Cleanup

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
v2.1 Modern Department Cards UI

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
v2.0 Template Sync & Modern UI

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
v1.9 Clean Design & File Structure

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
v1.8 Latest - Smart Navigation & Auto-Refresh

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 DECLENSEDDECLINED 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
v1.7 Unified Navigation Across All Pages

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
v1.6.2 Clean Navigation Redesign

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
v1.6.1 Theme & Dynamic Color Fix

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

Files Changed (2)

  • index.html
  • css/home.css
v1.6 Starry Night Sky Background

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
v1.5 Comprehensive Mobile Responsive Design

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
v1.4 Dynamic ROOT_FOLDER_ID Fix

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

Files Changed (1)

  • js/drive-api.js
v1.3 Cache Separation Attempt

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
v1.2 Refresh Button

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
v1.1 Cookie Consent & Caching

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)
v1.0 Initial Release

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)
Files Complete File Structure

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
Config API Configuration

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