Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 22 additions & 2 deletions frontend/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,32 @@
<html lang="en">
<head>
<meta charset="UTF-8" />
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />

<!-- Favicon -->
<link rel="icon" type="image/png" href="/favicon.png" />

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Read-only verification: locate social metadata and Apple touch icon declarations.
# Expected: at least one definition for apple-touch-icon and core OG/Twitter tags.

rg -n --iglob '*.{html,jsx,tsx}' 'apple-touch-icon|og:title|og:description|og:image|twitter:card|twitter:title|twitter:description|twitter:image'

# Also confirm favicon declarations and formats used.
rg -n --iglob '*.{html,jsx,tsx}' '<link[^>]+rel=["'\'']icon["'\'']|favicon\.(png|svg|ico)'

Repository: kunalverma2512/CodeLens

Length of output: 320


Apple Touch Icon and social preview metadata tags are missing.

The favicon update on line 5 is correct, but the codebase lacks Apple Touch Icon (apple-touch-icon) and social metadata tags (Open Graph, Twitter Card). If these are PR objectives, they remain unimplemented.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@frontend/index.html` at line 5, The favicon link on line 5 of the index.html
head section has been correctly added, but the implementation is incomplete. Add
the missing Apple Touch Icon link tag (with rel="apple-touch-icon") and social
preview metadata tags including Open Graph tags (og:title, og:description,
og:image, og:url) and Twitter Card tags (twitter:card, twitter:title,
twitter:description, twitter:image) to the head section. These tags should be
added in the head element alongside the existing favicon link to provide proper
social media previews and Apple device support.


<!-- Apple Touch Icon -->
<link rel="apple-touch-icon" href="/logo-192.png" />

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Read-only verification for Apple touch icon asset existence and image properties.
# Expected:
# - frontend/public/logo-192.png exists (or whichever path is referenced in index.html)
# - dimensions and alpha channel are inspected to validate iOS suitability.

set -euo pipefail

echo "== Locate referenced apple-touch-icon =="
rg -n --iglob '*.html' 'apple-touch-icon|logo-192\.png|favicon\.png'

echo
echo "== Locate candidate PNG assets in frontend/public =="
fd -i '\.png$' frontend/public || true

echo
echo "== Inspect logo-192.png (size + mode + alpha usage) =="
python - <<'PY'
from pathlib import Path
from PIL import Image

p = Path("frontend/public/logo-192.png")
if not p.exists():
    print("MISSING:", p)
    raise SystemExit(0)

img = Image.open(p)
print("path:", p)
print("size:", img.size)
print("mode:", img.mode)

if "A" in img.getbands():
    alpha = img.getchannel("A")
    extrema = alpha.getextrema()
    print("alpha_extrema:", extrema, "(255,255 means fully opaque)")
else:
    print("alpha_extrema: none (no alpha channel)")
PY

Repository: kunalverma2512/CodeLens

Length of output: 625


🏁 Script executed:

#!/bin/bash
# Inspect logo-192.png without PIL

echo "== Check if identify (ImageMagick) is available =="
which identify || echo "identify not available"

echo
echo "== Use file command on logo-192.png =="
file frontend/public/logo-192.png

echo
echo "== Try to use Python without PIL - inspect binary header =="
python3 - <<'PY'
from pathlib import Path
import struct

p = Path("frontend/public/logo-192.png")
if not p.exists():
    print("MISSING:", p)
else:
    # Read PNG header to extract dimensions
    with open(p, 'rb') as f:
        # PNG signature
        sig = f.read(8)
        if sig[:4] == b'\x89PNG':
            print("✓ Valid PNG signature")
            # Read IHDR chunk
            # Format: 4 bytes length + 4 bytes "IHDR" + 4 bytes width + 4 bytes height + ...
            f.read(4)  # skip length (should be 13 for IHDR)
            chunk_type = f.read(4)
            if chunk_type == b'IHDR':
                width = struct.unpack('>I', f.read(4))[0]
                height = struct.unpack('>I', f.read(4))[0]
                bit_depth = struct.unpack('B', f.read(1))[0]
                color_type = struct.unpack('B', f.read(1))[0]
                
                print(f"dimensions: {width}×{height}")
                print(f"bit_depth: {bit_depth}")
                
                color_types = {
                    0: "Grayscale",
                    2: "RGB",
                    3: "Indexed (Palette)",
                    4: "Grayscale + Alpha",
                    6: "RGB + Alpha (RGBA)"
                }
                color_name = color_types.get(color_type, f"Unknown ({color_type})")
                print(f"color_type: {color_name} (code: {color_type})")
                
                has_alpha = color_type in [4, 6]
                print(f"has_alpha_channel: {has_alpha}")
        else:
            print("✗ Not a valid PNG file")
PY

Repository: kunalverma2512/CodeLens

Length of output: 455


Resize Apple touch icon to meet iOS standards.

The logo-192.png asset is 1254×1254 pixels—significantly larger than the recommended 180×180 for Apple touch icons. While the file is properly opaque (no alpha channel), consider creating or resizing a dedicated icon to the standard 180×180 dimension to optimize performance and follow iOS specifications.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@frontend/index.html` at line 10, The apple-touch-icon link element in the
HTML head is referencing logo-192.png which is 1254×1254 pixels, exceeding the
iOS standard of 180×180 pixels. Create or resize the logo-192.png asset to
180×180 dimensions, ensuring it remains opaque without an alpha channel, then
update the href attribute in the apple-touch-icon link to point to this properly
sized icon file to optimize performance and comply with iOS specifications.


<meta name="viewport" content="width=device-width, initial-scale=1.0" />

<title>CodeLens</title>

<!-- Open Graph -->
<meta property="og:title" content="CodeLens" />
<meta
property="og:description"
content="Developer intelligence platform"
/>
<meta property="og:image" content="/og-logo.png" />

<!-- Twitter -->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:image" content="/og-logo.png" />
</head>

<body>
<div id="root"></div>
<script type="module" src="/src/main.jsx"></script>
</body>
</html>
</html>
Binary file added frontend/public/favicon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 0 additions & 1 deletion frontend/public/favicon.svg

This file was deleted.

Binary file added frontend/public/logo-192.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added frontend/public/logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added frontend/public/og-logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
8 changes: 8 additions & 0 deletions frontend/src/components/auth/ForgotPassword.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,14 @@ export default function ForgotPassword() {
return (
<div className="w-full flex-1 flex flex-col items-center justify-center px-4 sm:px-6 md:px-8 py-12 sm:py-20 bg-white">
<div className="w-full max-w-md border-4 border-black p-6 sm:p-8 md:p-12 bg-white shadow-[8px_8px_0_0_rgba(0,0,0,1)] md:shadow-[16px_16px_0_0_rgba(0,0,0,1)]">
{/* CodeLens Logo */}
<div className="flex justify-center mb-8">
<img
src="/logo.png"
alt="CodeLens"
className="h-12 sm:h-14 w-auto"
/>
</div>
<h2 className="text-3xl sm:text-4xl md:text-5xl font-black uppercase tracking-tighter text-black mb-8 sm:mb-12">
RESET PASSWORD
</h2>
Expand Down
23 changes: 13 additions & 10 deletions frontend/src/components/shared/Footer.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,13 @@ export default function Footer() {
<div className="md:col-span-2 xl:col-span-1 flex flex-col gap-6 border-b-4 border-black pb-10 md:border-b-0 md:pb-0 md:border-r-4 md:pr-10 xl:border-r-4 xl:pr-8">
<Link
to="/"
className="text-5xl font-black tracking-tighter uppercase text-black leading-none hover:opacity-70 transition-opacity"
className="hover:opacity-70 transition-opacity"
>
CODE<br />LENS
<img
src="/logo.png"
alt="CodeLens"
className="h-24 w-auto"
/>
</Link>
<p className="text-sm font-bold tracking-widest uppercase leading-relaxed text-black max-w-xs">
The developer intelligence platform. Unify your competitive programming journey across Codeforces, LeetCode &amp; GitHub — with AI-driven insights, zero noise.
Expand Down Expand Up @@ -196,14 +200,13 @@ export default function Footer() {
</div>

{/* ───── Large Brand Stamp ───── */}
<div className="border-t-4 border-black overflow-hidden select-none">
<p
className="text-black font-black tracking-tighter uppercase leading-none whitespace-nowrap px-6 sm:px-8 lg:px-12 py-6"
style={{ fontSize: "clamp(3rem, 10vw, 9rem)", opacity: 0.05 }}
aria-hidden="true"
>
CODELENS
</p>
<div className="border-t-4 border-black overflow-hidden select-none flex justify-center py-8">
<img
src="/logo.png"
alt=""
aria-hidden="true"
className="h-32 md:h-40 lg:h-48 w-auto opacity-5"
/>
</div>

{/* ───── Bottom Bar ───── */}
Expand Down
9 changes: 7 additions & 2 deletions frontend/src/components/shared/Navbar.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -370,12 +370,17 @@ export default function Navbar() {
<div className="max-w-[1400px] mx-auto flex items-center justify-between px-4 sm:px-6 lg:px-8 h-14 gap-4">

{/* ── Wordmark ──────────────────────────────────────────────────── */}
{/* ── Logo ─────────────────────────────────────────────────────── */}
<Link
to="/"
onClick={closeMenu}
className="text-lg font-black tracking-tighter uppercase text-black hover:opacity-60 transition-opacity flex-shrink-0"
className="flex items-center flex-shrink-0 hover:opacity-80 transition-opacity"
>
CODELENS
<img
src="/logo.png"
alt="CodeLens"
className="h-10 w-auto"
/>
</Link>

{/* ── Desktop Centre Nav ────────────────────────────────────────── */}
Expand Down
10 changes: 9 additions & 1 deletion frontend/src/components/shared/loaders/LoaderAlt.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,17 @@ const Spinner = () => {
<div
role="status"
aria-live="polite"
className="min-h-screen flex items-center justify-center bg-white"
className="min-h-screen flex flex-col items-center justify-center bg-white"
>
<span className="sr-only">Loading, please wait...</span>

{/* CodeLens Logo */}
<img
src="/favicon.png"
alt="CodeLens"
className="h-12 w-12 mb-8"
/>

<div className="grid grid-cols-2 gap-3">
{[...Array(4)].map((_, i) => (
<div
Expand Down
9 changes: 8 additions & 1 deletion frontend/src/components/shared/loaders/LoaderPrimary.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,16 @@ const Spinner = () => {
<div
role="status"
aria-live="polite"
className="min-h-screen flex items-center justify-center bg-white overflow-hidden"
className="min-h-screen flex flex-col items-center justify-center bg-white overflow-hidden"
>
<span className="sr-only">Loading, please wait...</span>

{/* CodeLens Logo */}
<img
src="/favicon.png"
alt="CodeLens"
className="w-12 h-12 mb-8"
/>
<div className="relative w-32 h-32 animate-rotate">
{/* Outer Square */}
<div className="absolute inset-0 border-[5px] border-black animate-scale-1" />
Expand Down
9 changes: 9 additions & 0 deletions frontend/src/pages/LoginPage.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,15 @@ export default function LoginPage() {
return (
<div className="w-full flex-1 flex flex-col items-center justify-center px-4 sm:px-6 md:px-8 py-12 sm:py-20 bg-white">
<div className="w-full max-w-md border-4 border-black p-6 sm:p-8 md:p-12 bg-white shadow-[8px_8px_0_0_rgba(0,0,0,1)] md:shadow-[16px_16px_0_0_rgba(0,0,0,1)]">
{/* Logo */}
<div className="flex justify-center mb-8">
<img
src="/logo.png"
alt="CodeLens"
className="h-12 sm:h-14 w-auto"
/>
</div>

<h2 className="text-3xl sm:text-4xl md:text-5xl font-black uppercase tracking-tighter text-black mb-8 sm:mb-12">
LOGIN
</h2>
Expand Down
8 changes: 7 additions & 1 deletion frontend/src/pages/NotFoundPage.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,14 @@ export default function NotFoundPage() {
<div className="relative z-10 flex h-full flex-col justify-between">
{/* Label */}
<div>
{/* CodeLens Logo */}
<img
src="/logo.png"
alt="CodeLens"
className="h-12 sm:h-14 w-auto mb-8"
/>
<p className="text-xs font-black uppercase tracking-[0.35em] text-black sm:text-sm">
Error / Route Unavailable
Error / Route Unavailable
</p>
</div>

Expand Down
9 changes: 9 additions & 0 deletions frontend/src/pages/SignupPage.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -128,6 +128,15 @@ export default function SignupPage() {
return (
<div className="w-full flex-1 flex flex-col items-center justify-center px-4 sm:px-6 md:px-8 py-12 sm:py-20 bg-white">
<div className="w-full max-w-md border-4 border-black p-6 sm:p-8 md:p-12 bg-white shadow-[8px_8px_0_0_rgba(0,0,0,1)] md:shadow-[16px_16px_0_0_rgba(0,0,0,1)]">
{/* CodeLens Logo */}
<div className="flex justify-center mb-8">
<img
src="/logo.png"
alt="CodeLens"
className="h-12 sm:h-14 w-auto"
/>
</div>

<h2 className="text-3xl sm:text-4xl md:text-5xl font-black uppercase tracking-tighter text-black mb-8 sm:mb-12">
{step === 1 ? "SIGN UP" : "VERIFY EMAIL"}
</h2>
Expand Down