Everything that changed
426 updates across 38 dates with recorded changes. Newest first — search or filter by category, text, or commit hash.
- Latest
Add About Us and Official navigation links
Added About Us and Official destinations to the app launcher and feature menu, registered the About route, and updated homepage content and links.
Upgrade forum threads
Reworked the authenticated forum route and added a database migration for thread enhancements, including changes to the thread experience and its supporting schema.
Redesign the app launcher and feature menu
Reworked the app launcher and feature menu, including navigation for Engineering, About, Official, and other site sections.
Fix mobile drawer dark background
Adjusted the feature drawer and added styles for its dark appearance on mobile.
Refine article dark theme
Expanded article-section styles to improve its presentation under the dark theme.
Increase the logo splash visibility
Adjusted the logo splash presentation and visibility.
Polish motion and touch feedback
Adjusted cross-route motion, splash behavior, button and sheet interactions, and theme handling to refine animation and touch feedback.
Fix mobile feature drawer dark mode
Updated the feature drawer layout and styles to address its mobile dark-mode presentation.
Remove the duplicate quiz-page footer
Removed the duplicate footer from the quiz index page.
Fix mobile admin layout and TypeScript errors
Adjusted admin navigation and app-shell layout and corrected related quiz and certificate route typing/layout issues; removed substantial content from the audit route.
Improve responsive admin workspace and tooling
Added admin navigation and saved views, and substantially revised admin workspaces for appeals, audit, contact, moderation, security, system, and user management.
Refresh certificates page with glass UI
Reworked the authenticated certificates page with a liquid-glass visual treatment and revised page structure.
Expand configurable certificate system
Added a certificate catalog, configurable issuance/admin functions, verification and follow-channel updates, and a database migration supporting the expanded certificate system.
Render ornate Unicode-safe certificates
Reworked certificate PDF generation and added a Devanagari font asset; updated certificate display and verification routes to support the revised rendering.
Add premium certificate system
Introduced premium certificate generation, administration, display, and verification flows, with supporting database schema and signature artwork.
Widen arena cards on mobile
Adjusted the quiz arena card width for mobile screens.
Align unread direct-message badge
Adjusted the direct-message shortcut badge positioning and added supporting styles.
Hide the global header on the engineering page
Updated root-layout header handling for the engineering route.
Hide the global header on sign-in
Updated root-layout header handling so the sign-in page does not render the global header.
Add live quiz battles and friend challenges
Added multiplayer quiz arena panels and battle routes, with quiz-arena helpers and updates to quiz landing/navigation flows.
Redesign squad group information
Reworked the squad group route layout and information presentation.
Wrap dashboard planner previews
Adjusted classic dashboard planner previews so their content wraps within the available layout.
Add squad conversation read state
Added conversation read-state support across messaging and squad views, backed by a database migration.
Show the workspace section in classic layouts
Added the workspace section to the customizable classic dashboard layout.
Harden dashboard watch-party preview
Reworked the classic dashboard watch-party preview handling and layout.
Show discoverable watch-party rooms
Updated the watch-room listing query and presentation so the page can display the full set of discoverable rooms.
Add workspace previews to classic dashboard
Added full workspace preview sections to the classic dashboard and connected them to the dashboard route.
Redesign focus zone for mobile
Reworked the focus landing and index routes with a mobile-oriented focus-zone layout.
Hide the global header on immersive mobile screens
Updated route/layout handling to suppress the global header on selected immersive mobile screens.
Repair community feed interactions and persistence
Updated feed components and data helpers to repair feed interactions and persistence behavior.
Make pulse subject tabs scroll on mobile
Adjusted the subject-tab row so it can scroll on mobile screens.
Improve mobile live-room chat and menu
Reworked live-room chat and menu controls for the mobile layout.
Restore the shared header outside immersive views
Adjusted root and Watch Party route handling so the global header remains available outside the community and party-room views.
Make watch-party room responsive
Adjusted the watch-party room layout for mobile-sized screens.
Scope the shared header to articles and Watch Party lobby
Adjusted route matching so the shared header is limited to the intended article and lobby views.
Hide the shared header on the live community screen
Adjusted root-layout header rules for the immersive live-community view.
Add a default shared header to routes
Introduced shared-header fallback behavior for routes without a route-specific header.
Normalize article content rendering
Added shared article-content normalization and updated markdown rendering and styles to handle article content consistently.
Highlight high-priority inbox alerts
Added visual highlighting for high-priority notifications in the notification bell inbox.
Add high-priority JEE alert controls
Added JEE alert preference handling, a listener, settings and admin controls, and supporting database fields/migration.
Widen the notification inbox popover
Adjusted the notification inbox popover width.
Fit appearance settings on mobile
Added mobile-specific appearance-settings styles and revised the settings component layout for smaller screens.
Add Scholar Desk typography controls
Added typography preference utilities and settings controls for the Scholar Desk mode, with corresponding global styles.
Redesign legacy skin as Scholar Desk
Renamed and restyled the legacy appearance mode as Scholar Desk in settings and global styles.
Expand theme presets and widget colors
Added theme presets and widget color controls to the customizable dashboard and settings, with supporting color styles.
Add customizable drag-and-drop dashboard
Introduced a customizable dashboard layout with drag-and-drop widget arrangement and dashboard/settings integration.
Add page background color controls
Added background-color settings and shared color handling so users can customize page backgrounds.
Expand site-wide theme customization
Added more appearance controls and palette/motion options, with global styles and settings support.
Export user-owned account data
Added account data export functions and integrated the export controls into settings.
Redesign the settings dashboard
Added the shared public header and a refreshed settings-dashboard layout with a broader control-center presentation.
Add study and appearance controls
Added study and appearance controls to the settings page.
Improve settings navigation and activity controls
Reworked settings navigation and added or refined account-activity controls.
Add account activity and data controls
Added account activity and data-management controls to settings, with supporting account functions.
Keep watch-party controls accessible on mobile
Reworked watch-room controls and layout so key controls remain accessible on mobile.
Add live quiz arena
Added a live-arena quiz component and connected it to the quiz route/player with supporting styling and roadmap updates.
Add live quiz-battle matchmaking and rooms
Added the live-arena component with matchmaking, room creation/joining, invitations, and battle-state handling through quiz-battle RPCs.
Enable quiz challenges with friends
Added a friend-challenge dialog and integrated challenge actions into quiz and direct-message flows.
Redesign watch-party lobby for mobile
Reworked the watch-party lobby route to match a mobile-oriented reference and added a study-hero image asset.
Improve dark-mode contrast across the app
Adjusted shared and feature-specific theme styles to improve contrast in dark mode.
Redesign Watch Party for light and dark themes
Reworked the watch-party lobby, room, and party-start surfaces for both color themes.
Add spacing above article entry cards
Adjusted spacing above the homepage article-entry cards.
Align article entry cards with the homepage glass UI
Updated article entry-card styling to match the homepage glass-card treatment.
Keep the mobile dashboard fix focused
Narrowed the dashboard workspace change to the mobile view-selector fix, removing unrelated workspace edits from the preceding revision.
Fix mobile dashboard view-selector overflow
Reworked dashboard workspace layout and selector sizing to prevent overflow on mobile.
Add a spaced-recall sprint
Added a recall-sprint activity to the Quiz Arena.
Keep the quiz overlay above page content
Adjusted quiz-play overlay layering so the active challenge stays above surrounding site UI.
Make the quiz arena theme-aware
Updated arena and quiz-play surfaces to use the site’s active theme.
Redesign quiz challenges and the battle player
Added the arena home and quiz-play interfaces and connected them to the quiz route.
Restore mobile menu and button interactions
Reworked feature-menu interactions and reduced motion-component behavior to restore mobile controls.
Keep the community promo from blocking the menu
Adjusted the promotional popup behavior so it does not obstruct menu interaction.
Animate button and menu interactions
Added animation support for button and menu interactions.
Show the logo splash only on website entry
Changed logo-splash behavior so it appears on website entry rather than every in-app navigation.
Prevent unwanted reloads and repeated welcome popups
Adjusted consent and membership-welcome handling to prevent unnecessary reloads and repeated popup displays.
Speed up study-library search
Updated materials and notes search behavior to reduce unnecessary work while filtering.
Improve feature-menu interaction performance
Refined feature-menu styling and interaction behavior to make menu transitions more responsive.
Add an accessible global motion system
Added a shared motion component and updated the button system to support the site’s motion behavior.
Smooth mobile community scrolling
Adjusted feed and community-chat rendering behavior for smoother mobile scrolling.
Lazy-load math rendering and test calculator
Adds lazy-loaded math rendering and a calculator panel, then integrates them into AI chat, SahAI, and test-taking interfaces to defer those components until needed.
Batch feed assets and tune query caching
Updates feed data handling to batch asset retrieval and adjusts router query-cache configuration.
Reduce mobile startup and article-loading cost
Updates app startup and authentication handling and changes article loading behavior to reduce work on mobile. Also adjusts shared styles and the maintenance guard.
Route article permalinks correctly
Adds an article index route and updates article routing and route-tree registration to resolve article permalinks correctly.
Open articles in place
Changes article selection in the hub to open articles in the current page rather than navigating away to a separate browsing context.
Fix article author profile links
Adds shared author-link handling and updates article cards and user-profile routing to link authors to their profile pages.
Resolve article authors from profiles
Updates the article editor and hub to resolve author information through profile records rather than relying solely on existing article data.
Restore Articles light-mode contrast
Adjusts the engineering-themed article stylesheet to improve text and interface contrast in light mode.
Add social discovery to articles hub
Updates the article hub and app navigation for social discovery and adds an engineering-themed article presentation stylesheet. The change also updates article styling and public-header navigation.
Restore Quiz Arena lock icon import
Restores the lock-icon import used by the Quiz Arena route.
Redesign Quiz Arena battle experience
Adds a new battle-arena component and stylesheet and integrates them into the quiz route, replacing the prior battle presentation with a redesigned competitive experience.
Integrate articles into homepage and sign-in flow
Adds an articles section to the homepage and a post-login destination chooser, with supporting sign-in success overlay and route changes. Also updates public navigation and article-hub behavior.
Add articles hub and post-login chooser
Introduces article listing and detail routes, author dashboard and editor components, supporting styles, database migration, seed content, and setup documentation. Adds a start route and authentication-flow integration for the post-sign-in destination chooser.
Fix Quiz Arena online indicator
Corrects the Quiz Arena avatar's online-status indicator in the quiz route.
Polish Quiz Arena light and dark themes
Adjusted the Quiz Arena route styling for the light and dark themes.
Redesign the competitive Quiz Arena
Reworked the quiz route’s competitive battle presentation and integrated the refreshed arena flow.
Replace mobile test-player interface
Adds reusable test-player components and replaces the attempt page's mobile presentation with a redesigned player interface.
Add AI tools to feature slide menu
Updates the feature slide menu to expose additional AI features. The change is limited to the menu component.
Add centralized AI and system controls
Adds an administrator system-controls route and server functions, centralizes AI/system settings and secret handling, and updates AI, community, SahAI, and test-creation flows to use those controls. Includes setup documentation and a database migration for system secrets.
Add admin system-secrets schema
Adds a Supabase migration for administrator-managed system secrets, including schema and access-control policy changes. The migration also supports storing provider/configuration metadata for the secret records.
Add server-side system-secret retrieval
Adds a server-only helper that retrieves enabled system-secret configuration and returns provider-specific secret values. The helper supports OpenAI, Anthropic, Gemini, Groq, and custom providers.
Expand test-taking interface and question support
Reworks the test attempt page with support for image-rich questions and options, numeric/range questions, section-aware grouping, answer-state tracking, keyboard navigation, and save-state feedback. It also adds question navigation and related player controls.
Extend admin test and question editor
Adds test-series configuration fields and question metadata to the admin editor and its server-side validation, including sections, navigation and solution settings, question images, difficulty/topic, and marking options.
Add question media and answer-range editing
Adds image upload and editing support for questions and answer options, and introduces range-question inputs and validation in the admin test editor. The editor also saves additional question metadata, including topic, difficulty, section, unanswered marks, and solution content.
Add server-side test-series question fields
Extends question input validation with image references, topic/difficulty/category/section metadata, answer ranges, partial and unanswered marking, solution content and images, and archived state.
Validate expanded test-series settings
Adds validation for test sections, navigation and solution visibility settings, and default marking schemes. Question and option inputs are extended to accept image references and solution-related fields while allowing image-only question or option content.
Update Pro dashboard and focus widgets
Adds and revises dashboard widget components, including changes to ProWidgets.tsx and FocusPanel.tsx, and updates DashboardWorkspace and ProDashboard integration. The changes refine the Pro/Focus dashboard widget presentation and behavior.
Redesign the Focus dashboard workspace
Reworks DashboardWorkspace with a dashboard-mode switcher, greeting and study-focus layout, and weekly-target progress and remaining-time calculations. The dashboard styling shifts to shared theme tokens and card-based sections.
Add classic dashboard widgets and revise Pro focus panels
Introduces ClassicProWidgets.tsx and updates ProWidgets.tsx and FocusPanel.tsx. The code adds a separate set of dashboard widgets while changing existing Pro dashboard and focus-panel components.
Restyle Pro dashboard
Updates the Pro dashboard layout and styling, including its horizontal action navigation and learning-resume card, with the new theme tokens and progress presentation.
Restrict test-table access to admins
Adds database policies that lock test-related tables to admin access.
Use test engine in attempt grading and results
Refactors attempt grading to call the shared test engine and extends result retrieval with solution-visibility checks, archived-question filtering, and signed image URLs.
Add server-side test engine
Adds server-only test engine utilities for grading questions, validating question content, and collecting/signing image paths. Grading supports numeric ranges and partial-marking schemes for multi-select questions.
Add Test Series v2 schema
Introduces the Test Series v2 database schema migration and updates generated Supabase TypeScript types for the new schema.
Restrict unused schema tables to admins
Added an RLS migration limiting access to unused reference/schema tables to administrator roles.
Add migration locking unused reference tables
Adds a database migration that applies restrictive row-level security policies to reference tables not used by the application, locking down access through table policies.
Update verification state immediately on success event
Sets the gate’s verified state immediately when it receives the account-verified event, then starts the verification recheck. This avoids continuing to treat the user as unverified while that check completes.
Refresh verification gate after account verification
Dispatches an account-verified browser event after successful verification and has the authenticated route gate listen for it to recheck verification status. The listener is removed during cleanup.
Stabilize consent and account-verification gates
Keeps consent and verification checks from rerunning on every route change, uses cached state to redirect restricted or unverified users, and avoids re-showing a loading state for focus or user-update checks. The same commit removes an unused materials-list variable; no user-facing materials change is represented by that removal alone.
Show filtered study materials consistently
Uses the filtered material list for both grid and list views and for the empty-state check, rather than only the featured subset. Retains prior query data as placeholder data while fetching, reducing the abrupt data replacement during query changes.
Add admin control for verification mode
Adds an Account Verification Mode card to the admin verification page, reading and updating the app_settings flag and showing success or error feedback. The control lets admins switch the mode between required and automatic verification.
Add configurable account verification and restrict reference data
Adds an account_verification_required setting and a profile-trigger function that creates pending verifications when enabled or marks new accounts verified automatically when disabled. The migration also changes SELECT policies on student-festival, surrounding-services, and seat-pressure tables to admin-only access.
Validate test answers and surface save errors
Checks that a submitted question belongs to the attempt's test before upserting the response, using the admin client for that lookup. The attempt UI now reports answer-save failures instead of silently ignoring them.
Restrict reference-table reads to admins
Adds a SQL migration replacing authenticated-user SELECT policies with admin-only policies for governance structure history, laboratory inventory, and internet connectivity. Adds Drizzle configuration and dependencies to support the migration.
Retry answer saves before test submission
Retries each failed answer save once and waits for all save attempts to settle before submitting. If any answer still fails, submission is stopped and an error is shown rather than grading with potentially unsaved answers.
Report failures when saving test answers
Updates test answer-saving logic and the attempt screen so a save error is surfaced to the user instead of being silently swallowed.
Redesign the app launcher
Replaced the launcher implementation with a more compact interaction model and refreshed launcher presentation.
Update dashboard workspace
Changes the DashboardWorkspace component, affecting the dashboard workspace UI or behavior.
Add Pro dashboard and study widgets
Adds a Pro route that saves the user's dashboard mode as Pro and redirects to the dashboard, along with Pro dashboard widgets and supporting dashboard, party, watch-party, and certificate changes. The commit also updates the authenticated Pro route and related product components.
Adjust party start flow
Updates the StartPartySheet component, changing the watch-party creation flow presented to users.
Update party setup and Google Calendar sync
Changes the party-start sheet and updates the Google Calendar callback and sync functions. These files cover party setup and calendar integration behavior; the diff does not establish any deployment outcome.
Resolve Pro status from active subscriptions
Changed `useProStatus` to query the signed-in user's active `pro_subscriptions` records, honoring start and expiry times, and to refresh periodically and on subscription changes. This replaces checking whether the user leads the current week's leaderboard.
Correct Google Calendar byte-array types
Updated the `base64ToBytes` return annotation in both Google Calendar callback and sync functions to `Uint8Array<ArrayBuffer>`, addressing the declared crypto byte-array type mismatch. The same annotation remains in the later mainline state.
Refactor party creation sheet
Restructures StartPartySheet, substantially changing its implementation while retaining its role as the party-creation interface.
Improve party source parsing and URL handling
Refactors party source types and URL handling in shared party logic, changing how supported source inputs are represented and processed.
Redesign study materials interface
Reworks the authenticated study-materials page, replacing much of the existing UI and adding updated material presentation and filtering controls.
Redesign certificate PDFs
Further revises the certificate PDF generator with a new visual design and corresponding generation changes.
Revise certificate PDF generation
Substantially rewrites certificate PDF generation, changing its implementation and output composition.
Render Pro dashboard by mode
Updates DashboardWorkspace to render ProDashboard conditionally based on the selected mode.
Build Pro dashboard workspace
Adds the Pro dashboard workspace component, assembling the new dashboard interface.
Add Pro dashboard widgets
Introduces a collection of dashboard widgets for the Pro experience.
Add Pro focus panel
Adds a focus-panel component for the Pro dashboard, providing a dedicated focus-oriented interface.
Add Pro dashboard utilities
Adds shared library logic used by the Pro dashboard feature.
Add Pro dashboard route
Introduces an authenticated `/pro` route that serves the new Pro dashboard experience.
Update watch route
Replaces most of the existing authenticated watch route implementation with a smaller route component, changing how the watch feature is presented and connected.
Restrict admin-only routes
Adds a database migration and route-tree/type updates associated with admin-only route access; the migration introduces database policy changes. The watch route is also adjusted as part of the change.
Add watch-party lobby
Introduces the authenticated watch lobby route, which loads and periodically refreshes lobby rooms, groups them by category, and lets users open a room or start a party.
Add party creation sheet
Adds the StartPartySheet interface for creating a watch party.
Add synchronized party player
Introduces a party-player component for playback within a watch-party session.
Add watch-party utilities
Adds shared watch-party logic, including category definitions and source-related helper functionality used by the feature.
Add watch-party room experience
Adds the room route implementation for a watch-party session, including its room-specific interface and behavior.
Add watch route page
Introduces a watch route page implementation for the watch-party feature.
Reworked dashboard workspace
Substantially revised the dashboard workspace component, with extensive changes to its content and interface.
Added AI configuration settings page
Added an authenticated settings route with controls for AI configuration.
Added AI study assistance panel
Added `AIStudyPanel`, a new component for AI-assisted study support.
Refactored profile header structure
Reorganized the profile header component structure.
Updated glass profile header
Changed the profile-header component’s structure and presentation.
Updated profile header themes
Updated theme definitions used by the profile header.
Further refine the glass profile header
Further updated the profile-header component’s design and presentation.
Adjusted profile header themes
Updated profile-header theme definitions.
Updated profile page header
Integrated the glass profile header into the user profile route.
Added glass profile header
Introduced a profile header component with glass-style presentation.
Added profile header theme definitions
Added theme definitions in `src/lib/headerThemes.ts` for profile-header styling.
Refined glass surface effects
Updated glass-surface styles and visual effects.
Added liquid-glass UI styles
Added reusable liquid-glass CSS styles, including hover/active states and fallbacks for reduced motion and browsers without backdrop filtering.
Added dashboard view switch
Added a component for switching dashboard views.
Added restriction status handling
Added handling for restriction status in the consent page, including a distinct restricted-user screen and sign-out action.
Redesigned admin consent review interface
Substantially expanded the admin consents page with a verification-center interface, review state, approval interaction, and refreshed layout.
Refactored consent saving
Reworked consent-saving logic in the consent route for clearer handling.
Updated consent route behavior
Changed consent-page logic and presentation in `src/routes/_authenticated/consent.tsx`.
Added consent gate handling
Updated `ConsentGate` to handle additional consent-page states and user flow.
Created engineering information page
Added an engineering route page with content and layout; subsequent commits moved it into the route directory, and the page remained in the project.
Expanded the app ecosystem page
Expanded the `/app` page content and presentation in `src/routes/app.tsx`.
Updated feature slide menu
Changed the feature slide-menu component’s presentation and behavior.
Rendered nested predictor routes
Added `Outlet` and `useChildMatches` to the JEE Predictor page so child-route content can render within the parent page.
Added group search and UI refinements
Introduced search functionality and related interface enhancements in groups.
Updated watch-party message presentation
Refactored message display and styling in the watch-party interface.
Reworked squad group mobile layout
Adjusted the squad group page’s mobile layout styles in `squad.$groupId.tsx`, changing responsive presentation for the group view.
Updated watch-party handling and route metadata
Changed watch-party API, validation, player, sidebar, and page behavior, along with related route/menu and calendar updates; the commit also removed watch-party test files. The diffs include adjustments to input validation and YouTube iframe handling.
Removed obsolete watch-party tests
Deleted the watch-party test files while retaining a feature-menu syntax correction in the same commit; no product functionality change is evident.
Corrected lecture tracker route
Changed the lecture tracker route declaration to `/_authenticated/lecture-tracker`.
Handle unknown route errors and update squad chat composer
Updates route error displays to stringify non-Error values, and revises the squad composer to use a single-line input with updated file-upload/send handling. The commit also includes generated Supabase type and route metadata changes.
Refine concept-map and smart-revision flows
Adds topic selection and related UI logic to the concept map, and expands smart revision with additional revision-selection behavior. It also changes squad chat composition and removes the attachment preview interaction from the composer.
Add Google Calendar sync function
Adds a Supabase Edge Function for synchronizing Google Calendar data.
Harden Google Calendar integration security
Adds a follow-up migration explicitly named as a Google Calendar security fix, updating the integration's database security configuration.
Add Google Calendar security policies
Introduces a database migration with security-related configuration for Google Calendar integration.
Add Google Calendar OAuth callback
Adds a callback Edge Function for processing the Google Calendar authorization response.
Add Google Calendar authorization
Adds a Supabase Edge Function that initiates Google Calendar authorization and handles the OAuth flow. The function code is introduced in this commit.
Add Smart Calendar API
Adds API functions for the Smart Calendar feature, alongside its types and migration introduced in nearby commits.
Add Smart Calendar data model
Adds a database migration defining the Smart Calendar persistence layer.
Add YouTube Checklist route
Adds an authenticated route for the YouTube Checklist feature.
Add YouTube Checklist page
Adds the main YouTube Checklist page component.
Add YouTube playlist import function
Adds a Supabase Edge Function for importing YouTube playlists.
Add YouTube checklist player hook
Adds a hook supporting YouTube playback in the checklist feature.
Add floating YouTube player
Adds a floating player component for YouTube checklist playback.
Add YouTube checklist API
Adds API operations for YouTube checklist data.
Add YouTube checklist database schema
Adds a database migration for YouTube checklists.
Add Watch Party route
Adds an authenticated route for accessing Watch Party.
Add Watch Party interface
Introduces the Watch Party page component, with associated player, participant, chat, queue, room-details, and synchronization UI components added in separate commits.
Add Watch Party room presence hook
Adds a hook for managing presence in Watch Party rooms.
Add synchronized Watch Party playback hook
Adds a hook for coordinating Watch Party playback synchronization.
Add Watch Party API
Adds API operations for Watch Party functionality.
Add Watch Party security migration
Adds a database migration for Watch Party security configuration.
Expose Weekly Study Review in feature menu
Adds a Weekly Study Review option to the feature slide menu, linking users to the review tool.
Add Weekly Study Review
Adds an authenticated route for a weekly study review tool in the JEE Predictor area.
Add Daily Targets study tool
Adds an authenticated JEE Predictor route for daily study targets.
Add Question Review Queue
Adds an authenticated route for a question review queue in the JEE Predictor area.
Add exam countdown and milestones
Adds an authenticated JEE Predictor route for an exam countdown and milestones.
Add mock test comparison
Adds an authenticated route for comparing mock tests.
Add study goals and targets
Adds an authenticated JEE Predictor route for study goals and targets.
Add performance trends
Adds an authenticated JEE Predictor route for viewing study performance trends.
Add weak chapter detector
Adds an authenticated JEE Predictor route for identifying weak chapters.
Add mock test analysis
Adds an authenticated route for analyzing mock tests.
Add DPP tracker
Adds an authenticated route for tracking daily practice problems.
Add lecture tracker
Adds an authenticated route for tracking lectures.
Add JEE Predictor links to feature menu
Adds navigation entries for JEE prediction, admission, and preparation tools to the feature slide menu.
Add concept-map page
Adds a concept-map route to the JEE predictor.
Add heatmap page
Adds a heatmap route to the JEE predictor.
Add study-now page
Adds a JEE predictor page for immediate study actions.
Add smart-revision page
Adds a JEE predictor smart-revision route.
Add backlog-management page
Adds a JEE predictor route for backlog management.
Build the JEE Predictor study planner
Added the planner’s full interface and behavior, including loading/error states and study-plan content.
Add study-planner page
Adds a study-planner route to the JEE predictor.
Add revision page
Adds a JEE predictor revision route.
Add previous-year questions page
Adds a page for previous-year questions in the JEE predictor.
Add daily-practice page
Adds a JEE predictor daily-practice route.
Add mistake-book page
Adds a JEE predictor page for a mistake book.
Add syllabus page
Adds a JEE predictor syllabus route.
Add programs page
Adds a JEE predictor route for browsing programs.
Add scholarship eligibility checker
Adds a route for checking scholarship eligibility.
Add scholarship listings
Adds a JEE predictor page for scholarships.
Add 360-degree comparison page
Adds a JEE predictor page for broader college comparisons.
Add living-costs page
Adds a predictor page for exploring living costs.
Add campus information page
Adds a route for campus information in the JEE predictor.
Add return-on-investment page
Adds a JEE predictor page for return-on-investment comparisons.
Add placement information page
Adds a JEE predictor route for placement information.
Add fee information page
Adds a JEE predictor route for college fee information.
Add document checklist page
Adds a JEE predictor page for admission-document information.
Add counselling checklist page
Adds a JEE counselling checklist route.
Add preference optimizer page
Adds a JEE predictor preference-optimization interface.
Add college recommendations page
Adds a JEE predictor route for presenting college recommendations.
Add branch-demand page
Adds a JEE predictor page for branch-demand information.
Add rank-trends page
Adds a route for viewing JEE rank trends.
Add the admission-fit explorer
Added an admission-fit route for exploring institution options against a student’s profile.
Add admission-fit page
Adds a JEE predictor route for exploring admission fit.
Add institute directory
Adds an institute directory route to the JEE predictor.
Add seat-matrix page
Adds a JEE predictor page for exploring seat-matrix information.
Add choice-filling page
Adds a JEE predictor interface for choice filling.
Add JEE preference page
Adds a predictor page for configuring user preferences.
Add shortlist save control
Adds a reusable button component for saving a college to the shortlist.
Add college shortlist page
Adds a page for viewing shortlisted colleges in the JEE predictor.
Add rank-range explorer
Adds a JEE predictor page for exploring rank ranges.
Add marks-to-rank view
Adds a JEE predictor page for relating exam marks to rank.
Add marks-to-percentile view
Adds a JEE predictor page for relating exam marks to percentile.
Add cutoff tracker
Adds a cutoff-tracking route to the JEE predictor.
Add cutoff explorer
Adds a page for browsing JEE admission cutoffs.
Add college comparison tool
Adds a JEE predictor comparison page for comparing colleges.
Add NIT, IIIT and GFTI listings
Adds a predictor page for browsing NIT, IIIT and GFTI institutions.
Add branch exploration page
Adds a JEE predictor route for exploring branches.
Add advanced predictor page
Adds an advanced JEE predictor route and its interface.
Add college discovery page
Adds a college route for exploring institute information in the JEE predictor.
Add JEE predictor entry page
Adds an authenticated JEE predictor page with navigation to predictor tools.
Add NTA synchronization to admin navigation
Added an NTA Sync entry to the admin section of the feature menu.
Add NTA JEE Main to feature navigation
Added an NTA JEE Main entry to the study section of the feature menu.
Add NTA admin route
Adds the authenticated admin route for the NTA synchronization page.
Add NTA sync administration page
Adds an admin page component for NTA synchronization operations.
Add authenticated NTA route
Adds the authenticated route that exposes the NTA Hub page.
Add NTA Hub page
Adds the NTA Hub page component for presenting NTA-related content and actions.
Add NTA data helpers
Adds a library for NTA/JEE-related data access and helper operations.
Add NTA and JEE hub database schema
Adds a migration defining database structures for the NTA/JEE hub features.
Add achievement summaries to the dashboard
Added an Achievements section with cards for rank, study time, and learning milestones.
Add joined squads to the dashboard workspace
Added squad workspace data and group/unread-message summaries to the dashboard workspace.
Expand dashboard workspace
Adds dashboard workspace sections and interaction logic, substantially extending the dashboard component.
Build dashboard page around workspace
Adds dashboard workspace functionality to the dashboard route, with substantial new dashboard content and controls.
Add dashboard workspace
Adds a dashboard workspace component with panels and actions for the authenticated dashboard.
Refactor squad group information and member display
Reworks the squad group-information dialog and member display, adding a substantially revised group details and member-management interface.
Expand admin email operations
Updates the admin email interface with substantial changes to its controls and workflow for Gmail-backed email operations.
Add Gmail email-sending endpoint
Adds an API route for sending mail through the Gmail integration.
Add Gmail OAuth callback endpoint
Adds an API callback route to process Gmail authorization responses and connection state.
Add Gmail account connection endpoint
Adds an API endpoint to initiate a Gmail OAuth connection flow.
Add Gmail token encryption helpers
Adds cryptographic helper functions used to protect Gmail integration credentials.
Add Gmail integration storage
Adds a database migration for Gmail integration records and supporting persistence fields.
Add admin email workspace
Adds an admin email route and interface for managing email-related operations.
Link verification management in Admin Center
Adds account verification to the Admin Center navigation.
Add verification administration page
Adds an admin verification route and page for reviewing and managing account-verification information.
Add signup account-verification flow
Updates the auth route with account verification-related signup and sign-in handling, including verification messaging and related state transitions.
Add account verification page
Adds an authenticated verification page component with verification status and user-facing actions for completing or refreshing verification.
Gate authenticated routes on account verification
Adds an AccountVerificationGate in the authenticated route flow, querying verification status and rendering a verification-required state instead of protected route content when required.
Add resilient streak-popup loading
Introduces a useStreakPopup hook that requests popup data, retries failed calls with increasing delays, checks abort state before updating, and logs caught errors.
Add vulnerability-reporting security.txt
Adds .well-known/security.txt with the canonical URL, contact page, expiry date, and preferred language for vulnerability reporting.
Tighten production script policy
Changes script-src and script-src-elem to allow only self, inline scripts, and explicit Cloudflare Turnstile and YouTube origins in production; development keeps preview-specific origins and unsafe-eval.
Restrict production framing
Adds production-host detection and sets X-Frame-Options to SAMEORIGIN on production responses. The CSP frame-ancestors policy is also split so Lovable preview framing remains available outside production.
Fix consent-settings success toast placement
Moves the success toast invocation in the consent-settings route so it is placed with the save-success handling.
Expand consent administration settings
Substantially revised the admin consent-settings route with additional settings UI and workflow handling.
Integrate maintenance handling at the app root
Updates the root route to include the maintenance-mode handling used to gate the application.
Improve maintenance page messaging
Revises the maintenance page layout and copy, including its temporary-unavailability status and explanatory text.
Add maintenance access guard
Adds MaintenanceGuard to gate application access based on maintenance mode.
Add maintenance-mode state hook
Adds useMaintenanceMode to provide a hook for reading maintenance-mode state.
Add maintenance-mode page
Creates a dedicated MaintenancePage with an offline status, maintenance notice, and account/study-data reassurance.
Add admin control for skipped-consent banner
Adds show_consent_skipped_banner to consent settings state and presents an admin toggle for controlling whether the verification-skipped banner is shown.
Gate skipped-consent banner with a setting
Loads show_consent_skipped_banner alongside consent_enabled and hides the banner unless the new flag is true, consent is disabled, and a user is authenticated.
Complete leaderboard and Pro reward UI
Updates the leaderboard route with leaderboard functionality and adds corresponding RPC migrations and Supabase types; the route describes the weekly winner reward as seven days of Pro.
Add weekly leaderboard view
Adds the leaderboard route UI for displaying weekly study-time rankings.
Add weekly winner finalization and leaderboard context
Adds an authenticated server function that calls finalize_weekly_winners, and updates the leaderboard with the logged-in user's position, gap to the leader, India-time week labeling, and a week countdown.
Add leaderboard migration
Adds a migration file for the leaderboard database changes.
Add leaderboard database support
Adds database migration and generated Supabase types supporting the leaderboard data and RPC functionality.
Fix profile-page build errors
Adjusts profile and related study-content components and route code, alongside dependency and generated route/type updates, to address profile-page build errors.
Use decrypted-consent RPC in admin view
Replaces direct selection from user_consents with the admin_get_consents_decrypted RPC when loading consent records in the admin consents route.
Replace message inbox with combined Squad view
Reworks the inbox into a Squad view with tabs for all conversations, direct messages, groups, and requests. Loads joined groups, recent messages, sender details, unread counts, and DM profiles for the new conversation list.
Improve study-notes reader
Updates the NotesReader component used to open study resources; this is a separate reader change from the new markdown rendering component added in the next commit.
Add markdown rendering for study content
Adds StudyMarkdown.tsx to render study material written in Markdown, including formatted content for notes and other study resources.
Update pulse server function
Changes the pulse server function implementation. The commit modifies application pulse behavior in the server function rather than generated files.
Update dashboard streak experience
Changes the dashboard integration for the study-streak experience. The dashboard update is a separate step from the streak button component and the earlier dashboard commit.
Add study streak to dashboard
Updates the dashboard to present the study-streak feature, connecting the new streak UI to the dashboard.
Add study streak recording button
Adds a dashboard component that records a study day through the study-streak function, reports success or failure, and shows the current streak state.
Validate test question ownership before saving responses
Checks that the submitted question belongs to the test associated with the user's attempt before upserting a response, rejecting mismatched question IDs.
Shorten profile-post image URL lifetime
Reduces signed profile-post storage URLs from seven days to one hour, shortening the period during which a generated URL remains usable.
Fetch profile-post comments through RPC
Replaces direct comment and profile-table reads with the get_profile_post_comments RPC and maps the returned comment and profile fields for display.
Fetch profile-post like count and current-user state separately
Changes likes loading to request an exact count and the signed-in user's like separately, and includes the user ID in the query key.
Enforce permission for audit-log access
Adds a server-side users-permission check before the admin audit-log listing function returns audit data.
Require users permission for admin center
Adds a route guard that requires the users permission before loading the admin center.
Restrict video administration to full admins
Adds a full-admin route guard to the admin videos page.
Restrict test administration to full admins
Adds a full-admin route guard to the admin tests page.
Restrict test approvals to full admins
Adds a full-admin route guard to the test approvals page.
Restrict consent settings to full admins
Adds a full-admin route guard to the consent-settings page.
Require consents permission for consent administration
Adds a consents-permission route guard to the admin consents page.
Require contact permission for contact inbox
Adds a contact-permission route guard to the admin contact inbox.
Require appeals permission for appeals administration
Adds an appeals-permission route guard to the admin appeals page.
Persist quiz statistics in Supabase
Replaces browser-local quiz-stat persistence with user-scoped Supabase reads and writes for XP, level, streak, best scores, and quiz counters; daily streak dates are calculated in Asia/Kolkata.
Add shared user-state helpers
Adds a userState utility module for application user-state operations.
Expose study streak in feature menu
Adds the study-streak feature to the features slide menu.
Add daily streak popup
Adds a DailyStreakPopup component for the daily study-streak prompt.
Add admin study-notes management page
Adds an admin notes route with controls for managing study-note material.
Add study chapter reader route
Adds a chapter route that presents chapter resources, tracks viewed resource types, and lets users favourite or mark a chapter complete.
Add chapter listing and progress filters
Adds class-and-subject chapter listings with search and filters for favourites, pending, and completed chapters, alongside progress and resource availability indicators.
Add study-notes landing page
Adds the notes landing route for browsing study notes by class and subject.
Add study resource reader component
Adds the NotesReader component used to display study resources.
Add study-notes data and progress helpers
Adds notes utilities for retrieving chapters and study resources and handling chapter progress data.
Connect daily streak popup to authenticated route
Updates the authenticated route to include the DailyStreakPopup component.
Add daily streak popup component
Adds the DailyStreakPopup component at the app source path, providing the streak-popup UI.
Revise promotional popup
Reworks the PromoPopup component's content and presentation, changing its layout and behavior in the popup.
Adjust direct-message reply handling
Changes direct-message reply handling in the peer conversation route.
Update direct-message conversation view
Makes a separate one-line change to the direct-message peer route affecting its conversation view.
Adjust shared chat styling
Updates chat-related CSS styling in the shared stylesheet.
Fix chat layout and old replies
Changes the peer-message route to correct chat layout and handling of older replies.
Add direct-message reply redesign support
Adds a database migration and generated Supabase types for direct-message reply support.
Add linked replies and refresh private messaging UI
Messages can be stored with a reply_to_id and display the referenced message, sender and read status in the thread. The commit also restyles the inbox and thread with responsive glass-like surfaces, online status, updated typography and reduced-motion handling.
Add validated message-reply references
Adds nullable reply_to_id to direct_messages, an index, and a trigger that rejects reply targets outside the same conversation; generated Supabase types describe the new field and relationship.
Rework the test attempt interface
Replaced and expanded the attempt route UI with updated question navigation and answer-entry flows.
Add global palette styling and initialization
Adds forest and coral palette CSS variables and theme rules, and initializes the saved palette from local storage in the root document. The commit also documents keeping feed UI in `NewCommunityFeed` while data mutations remain shared.
Switch feed route to new community UI
Replaces the large feed-route implementation with `NewCommunityFeed` and adds `BackgroundSettings` plus a color-palette utility. The route also updates its canonical and Open Graph URL to the `.co.in` site.
Add redesigned community feed component
Introduces `NewCommunityFeed.tsx` with a replacement community-feed interface and its feed interaction elements. The component is subsequently wired into the feed route in a later commit.
Synchronize preview auth storage and Supabase types
Preview-auth storage now reconciles a successful broker response into localStorage only if the stored value still matches the value just written, removing the key for an empty response. Generated Supabase types add streak-popup and test-result-DM fields and declarations for related RPCs.
Change promo popup display timing
The promo popup now opens shortly after each page load, reappears at randomized intervals of three to eight minutes after dismissal, and opens on sign-in. This replaces the prior one-time local-storage dismissal behavior.
Show the streak popup on the dashboard
Imported `useStreakPopup` and `StreakPopup` into the authenticated dashboard, wiring streak-popup behavior into the dashboard route.
Rework the community feed around live posts
Replaced the `UltimateCommunityFeed` component with feed functionality in the `/feed` route, including live posts, stories, post creation, comments, votes, attachments, and feed search. The change also restores database-backed content in place of the prior component implementation.
Add Feedback Hub navigation links
Added Feedback Hub and Feedback Console entries to the feature menu, linking to `/feedback` and `/admin/feedback`. The roadmap marks the Feedback Hub integration complete; the commit diff itself contains the navigation and roadmap changes.
Build feedback hub and admin console
Adds a public hub with topper forms, community wall, feedback and material-request submissions, user status tracking, and basic hub analytics. Adds an admin console for reviewing and updating submissions, managing forms, and moderating wall posts.
Add validated feedback server actions
Adds authenticated server functions for submitting feedback and material requests, posting and liking wall messages, and admin moderation and form management. Inputs are Zod-validated; submission and wall posting use honeypot and rate-limit checks, while admin actions check the admin role.
Add feedback hub data schema
Adds Supabase tables for user feedback and material requests, community-wall posts and likes, and active feedback forms, with length/type constraints, indexes, triggers, and row-level access policies. Updates generated database types for the new tables.
Update feature slide menu
Updates the FeaturesSlideMenu component; the commit diff changes menu content and presentation for the feature slides.
Add trusted-user materials access controls
Adds server-side functions to list and grant or revoke trusted Study Materials access, plus an admin-users table toggle and indicator for that access.
Add trusted Study Materials access registry
Creates a material_trusted_users table with admin-only row-level security policies for viewing, granting, and revoking trusted access, and adds its generated Supabase types.
Add trigram search indexes for materials
Adds separate GIN trigram indexes on materials title, description, and topic, and updates the generated Supabase database types with the trusted_unlock_codes table.
Allow trusted permanent materials unlock codes
Materials unlock now checks the primary gate password first, then compares the submitted password against hashes in `trusted_unlock_codes`. The code comments describe these as continuing to work across primary-password rotations.
Add server-side materials filtering and pagination
Replaces filtering over the initially loaded materials with validated server-side subject, class, and search filters, exact counts, and bounded pages. The materials page uses infinite-query pages and offers a load-more control.
Move pg_trgm into the extensions schema
Adds a migration to set the `pg_trgm` extension schema to `extensions` and removes its two function declarations from generated Supabase types.
Add indexes for materials listing and search
Adds `pg_trgm` and indexes to support materials ordering, subject/class filtering, and trigram-based searches over title, description, and topic. Also updates generated Supabase function type declarations for the extension.
Add scoped read policies for certificates and media
Adds policies for certificate types, polls, toppers, avatars and chat media, including checks for account status, ownership, deletion state and whether referenced content remains in use.
Tighten access to social and community data
Adds row-level policies that condition reads across chat, posts, feed, forum, video, social graph, group settings and storage by author status, ownership, membership, or referencing rows. The merge also includes safeguards for AI chat requests and doubt answers.
Validate AI chat endpoints and conversation history
Restricts custom AI endpoints to public HTTPS hostnames and rejects credentials, ports, local names and IP literals. Limits forwarded history to 40 messages, accepts only user/assistant roles, and requires the last message to be from the user.
Limit Ask AI to accessible, active doubts
Adds per-user rate limiting and reads doubts through the caller's Supabase client so row policies apply. It rejects AI-generated or deleted doubts before answering.
Update homepage sharing metadata
Removes the year from the homepage title and Open Graph title, and adds an Open Graph site name for JEE Prep Hub.
Refresh site metadata and icon references
Updates the root document title and social metadata to use the JEE Prep Hub name, adds application and Apple web-app titles, and switches favicon references to PNG with an Apple touch icon.
Use an absolute sitemap URL
Adds the site host to robots.txt and changes its sitemap directive from a relative path to the full jeeprephub.co.in URL.
Show the community promo popup site-wide
Imports and renders `PromoPopup` from the root route component, making the promotional dialog available across nested routes.
Add WhatsApp community promo dialog
Adds a dismissible popup promoting the JEE Prep Hub WhatsApp community. It waits 800 ms before opening and stores dismissal in local storage.
Add JEE Advanced chemistry resource landing page
Adds a chemistry landing route and server-side data function that retrieves chemistry materials, classifies them by topic, and presents gated resources, PYQs, study guidance, FAQs, and links. Adds the route to the sitemap.
Use branded large-image social previews
Updates root-page metadata to use a large-image Twitter card and the JEE Prep Hub image for Open Graph and Twitter previews, including image dimensions.
Add social preview image asset
Adds `public/og-jeeprephub.png`, the image asset subsequently referenced for Open Graph and Twitter previews.
Restrict community AI settings reads to admins
Adds a database migration replacing the broad read policy with an authenticated-admin-only SELECT policy and revokes SELECT from the `anon` role.
Read AI chat settings through the server admin client
Changes the authenticated settings-read server function to use the server-side admin client and return only the AI doubt-answer flag and update timestamp, rather than reading through the user client.
Align site metadata and admin links with jeeprephub.co.in
Replaces the prior Lovable hostname with `jeeprephub.co.in` in canonical and Open Graph metadata, site URL constants, and the admin credential login link across routes.
Label the developer account separately from admins
The badge component now displays “Developer” for the specified account ID and “Admin” for other accounts, while retaining the existing visual-only badge suppression behavior.
Create a unified Pulse feed database view
Added the `pulse_feed_items` view to combine published video lectures and feed posts with author details and like/comment counts. Added an admin-role lookup function used to mark post authors who are admins, with execute privileges restricted from PUBLIC.
- v4.4
Policies hub, sign-up agreement & Pulse playback fix
- NewPolicies
Full Policies & Community Rules hub at /legal
11 documents — About, Terms of Use, Community Guidelines, Academic Integrity & AI, Study Material & Copyright, Privacy, Children & Minor Safety, Educational Disclaimer, Cookies, Accessibility and Contact & Legal Notices — each with its own contents list and version details.
- NewSign up
Terms of Use agreement on account creation
New members now confirm they accept the Terms of Use, Community Guidelines and Privacy Policy before the account is created, with the date of acceptance saved to their profile.
- FixedPulse
Lecture videos play again
The site's security rules were blocking the YouTube player script, so lectures never started. Fixed.
- ImprovedNavigation
About and every policy page listed separately in the side menu
A new 'About & Policies' section links each document directly, plus this Updates page.
- SecurityPrivacy
Tighter rules on chat messages, profile posts and profile uploads
- v4.3
JEE 360 + Progress Tracker
- NewJEE 360
JEE 360 workspace at /jee360
Today, Schedule, Backlog, Tests, Lab (focus, memory, rank simulator, AI coach), Plans, Reminders and Import — saved in your own browser.
- NewProgress
Analytics Progress Tracker
Rating ring, Bronze-to-Diamond tier, weekly change, accuracy chips, subject cards and achievements.
- NewTests
Branded PDF export of any test attempt
Score, accuracy, percentile and a question-by-question review with the website link.
- NewFocus Zone
Focus Zone: todos, habits, sessions and site blocking
- v4.2
Real community feed & material lock
- NewFeed
Redesigned community feed on real data
Stories, nested comments, upvotes, bookmarks, General / Doubt / Note posts and live search.
- SecurityMaterials
Study material locked behind a rotating password
Protects copyrighted notes; unlock lasts 12 hours and admins can change the password any time.
- ImprovedTheme
One unified light/dark setting across the whole site, including Pulse
- DesignTheme
Legacy UI option alongside Liquid Glass
- v4.1
Anti-abuse & message actions
- SecuritySecurity
Bot, spam and brute-force protection
Human check on sign-in/sign-up/forms, server-side rate limits and security headers.
- NewMessages
WhatsApp-style tap & long-press action menu everywhere
- ImprovedSEO
New JEE Advanced Physics and Mathematics problem pages
- v3.6
New home page + Updates timeline
- DesignHome
Completely redesigned home page
New liquid-glass hero, live countdown rail, quick-action grid, and a compact 'what shipped today' strip.
- NewUpdates
Updates & History tool at /updates
Every change to the site, grouped by day, with search and filters for new features, improvements, fixes, security and design.
- v3.5
Liquid glass polish
- ImprovedTheme
Clearer, higher-contrast glass cards
Transform-only sheen waves and drifting refraction highlights that hold 60fps on mobile.
- ImprovedTheme
Ripple shimmer on hover and focus
- FixedMobile
Lighter blur on small screens to stop frame drops
- v3.4
Open access + background controls
- NewAccess
Browse the whole site without an account
No sign-up, no email — every page opens in read-only mode.
- NewTheme
Background motion settings
Turn colour cycling on/off, tune visibility and speed. Saved on your device only.
- v3.3
Quiz Arena
- NewQuiz
Daily Challenge — 10 questions, same for everyone
- NewQuiz
Question Battle rapid-fire rounds from the full test bank
- NewCountdown
Engineering exam countdown widget
- v3.2
Profile & planner
- NewPlanner
Subject-grouped study planner with a date strip
- ImprovedProfile
XP shown on profile, live username availability check
- ImprovedTests
Reworked test review with single-question view and palette
- v3.1
Pulse feed
- NewPulse
Pulse combines admin videos and community posts
- NewPulse
Continue watching + watch history
- ImprovedCommunity
Threaded doubts, reactions, @mentions and seen receipts
- v3.0
Test Series / CBT
- NewTests
JEE-style CBT player with KaTeX maths rendering
- NewTests
AI-assisted PDF question import with admin approval
- SecurityTests
Answer keys moved server-side so they can never leak to the browser
- v2.5
Certificates, streaks & Pro
- NewCertificates
Verifiable certificates for streaks and study hours
- NewStreaks
Streak flame, history and recovery
- NewPro
Merit-based JEE Prep Hub Pro for leaderboard champions
- v2.0
Community & messaging
- NewCommunity
Live community chat, notice board and polls
- NewMessages
Direct messages, follows and online presence
- NewFeed
Social feed with likes and comments
- v1.0
JEE Prep Hub launch
- NewMaterials
Curated notes, modules, PYQs and tests
- NewTimer
Pomodoro focus timer with study tracking
- NewLeaderboard
Weekly leaderboard based on study hours
