AI Review Center
Commit Review Workspace ?
Select a commit on the left to inspect quality, security, business value, findings, and suggested code changes.
Project AI Score
?
63%
Quality Avg
?
68%
Security Avg
?
45%
Reviews
?
56
Review Result ?
jattin01/avriti · c2a2ad40
The commit adds a checkout page with a user interface displaying billing details and order summary, enhancing business value by supporting order placement. The UI uses basic form inputs without validation or state management, which limits quality and increases bug risk. There is no visible backend integration or security measures for sensitive data, which lowers the security score.
Quality
?
75%
Security
?
30%
Business Value
?
80%
Maintainability
?
68%
Issues & Suggested Fixes
?
1AI detects the issue
2Shows file, line, or evidence
3Suggests the fix to apply
Missing Validation
Where
app/checkout/page.tsx:37
Issue / Evidence
Lack of input validation
Suggested Fix
add client-side validation to improve quality and reduce bug risk
No State Management For Input Fields
Where
app/checkout/page.tsx:23
Issue / Evidence
No state management for input fields
Suggested Fix
implement React state or form libraries to handle input data properly
Payment Method Inputs Lack Integration
Where
app/checkout/page.tsx:110
Issue / Evidence
Payment method inputs lack integration
Suggested Fix
connect inputs to backend or payment processing to add business value
The Place Order Button Lacks Click Handlin...
Where
app/checkout/page.tsx:121
Issue / Evidence
The Place Order button lacks click handling
Suggested Fix
add event handler to process orders and improve business value
Security Issue
Where
app/checkout/page.tsx:38-97
Issue / Evidence
Sensitive personal and payment input fields have no security controls
Suggested Fix
add secure handling and possibly encryption for submitted data
Lacks Descriptive Details
Where
commit message
Issue / Evidence
lacks descriptive details
Suggested Fix
write meaningful commit messages describing the changes to improve maintainability
Code Change Preview · app/cart/page.tsx
?
Removed / Before Commit
- import InnerBanner from "@/components/inner-banner"; - - import { ProductCard } from "@/components/product-card"; - <p className="text-[15px] text-[#7A7A7A]">₹190</p> - </div> - <div className="mt-5 flex flex-col gap-2 md:mt-9"> - <button - type="button" - className="inline-flex min-h-11 items-center justify-center gap-2 rounded-[10px] border border-[var(--color-primary-300)] bg-white px-5 py-2.5 text-sm font-semibold text-[var(--color-primary-700)] transition hover:bg-[var(--color-primary-100)]/35 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[var(--color-primary-600)] disabled:pointer-events-none disabled:opacity-50" - > - Proceed to Checkout - </button> - <button - type="button" - className="inline-flex min-h-11 items-center justify-center gap-2 rounded-[10px] border border-[var(--color-primary-300)] bg-[var(--color-primary-700)] px-5 py-2.5 text-sm font-semibold text-white transition hover:bg-[var(--color-primary-100)]/35 hover:text-[var(--color-primary-700)] focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[var(--color-primary-600)] disabled:pointer-events-none disabled:opacity-50" - > - Continue Shopping - </button>
Added / After Commit
+ import Link from "next/link"; + import InnerBanner from "@/components/inner-banner"; + + import { ProductCard } from "@/components/product-card"; + <p className="text-[15px] text-[#7A7A7A]">₹190</p> + </div> + <div className="mt-5 flex flex-col gap-2 md:mt-9"> + <Link + href="/checkout" + className="inline-flex min-h-11 items-center justify-center gap-2 rounded-[10px] border border-[var(--color-primary-300)] bg-white px-5 py-2.5 text-sm font-semibold text-[var(--color-primary-700)] transition hover:bg-[var(--color-primary-100)]/35 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[var(--color-primary-600)] disabled:pointer-events-none disabled:opacity-50" + > + Proceed to Checkout + </Link> + <Link + href="/shop" + className="inline-flex min-h-11 items-center justify-center gap-2 rounded-[10px] border border-[var(--color-primary-300)] bg-[var(--color-primary-700)] px-5 py-2.5 text-sm font-semibold text-white transition hover:bg-[var(--color-primary-100)]/35 hover:text-[var(--color-primary-700)] focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[var(--color-primary-600)] disabled:pointer-events-none disabled:opacity-50" + > + Continue Shopping
Removed / Before Commit
Added / After Commit
+ import InnerBanner from "@/components/inner-banner"; + import { ProductCard } from "@/components/product-card"; + + const checkoutItems = [ + { + name: "Avriti Shuddhi - Mopping Salt - 1kg", + quantity: 2, + price: 95, + }, + { + name: "Drishti Tarot Cards - Pack of 78 cards", + quantity: 1, + price: 299, + }, + ]; + + const subtotal = checkoutItems.reduce((sum, item) => sum + item.price * item.quantity, 0); + const tax = Math.round(subtotal * 0.05);
Removed / Before Commit
- border-radius: 50%; - right: 100%; - border: 1px solid #0B3DBA; - } - @media only screen and (max-width: 767px) { - li, p {
Added / After Commit
+ border-radius: 50%; + right: 100%; + border: 1px solid #0B3DBA; + } + .addtocartButton span.buttonArrow::before { + background: #fff; + } + .addtocartButton span.buttonArrow::after { + border-color: #fff; + } + .addtocartButton:hover span.buttonArrow::after { + border-color: #0B3DBA; + } + .addtocartButton:hover span.buttonArrow::before { + background: #0B3DBA; + } + @media only screen and (max-width: 767px) { + li, p {
Removed / Before Commit
- \ No newline at end of file
Added / After Commit
+ "use client"; + import { useEffect, useState } from "react"; + import Breadcrumb from "@/components/common/Breadcrumb"; + import ProductDetailSection from "@/components/ProductDetailSection"; + import ProductTabs from "@/components/product-tabs"; + import { ProductCard } from "@/components/product-card"; + type FeaturedProduct = { + slug: string; + name: string; + attrName: string; + price: string; + image: string; + tone: string; + category: string; + badge: string; + description: string; + }; + export default function ProductDetail() {
Removed / Before Commit
- \ No newline at end of file
Added / After Commit
+ "use client"; + + import Link from "next/link"; + import { usePathname } from "next/navigation"; + + export default function Breadcrumb() { + const pathname = usePathname(); + + const segments = pathname.split("/").filter(Boolean); + + const labelMap: Record<string, string> = { + "product-detail": "Product Detail", + "order-list": "Order List", + "my-order": "My Order", + "track-order": "Track Order", + "about": "About Us", + "consult": "Consult", + "services": "Services",
Removed / Before Commit
- \ No newline at end of file
Added / After Commit
+ "use client"; + + import { useState } from "react"; + + const tabs = ["Description", "Reviews", "Shipping"]; + + const tabContent: Record<string, React.ReactNode> = { + Description: ( + <p className="text-gray-600 text-sm leading-relaxed"> + The world is loud. Notifications, deadlines, demands. Everyone wants your attention, your time, your energy. Somewhere in that noise, you lose yourself.The world is loud. Notifications, deadlines, demands. Everyone wants your attention, your time, your energy. Somewhere in that noise, you lose yourself.The world is loud. Notifications, deadlines, demands. Everyone wants your attention, your time, your energy. Somewhere in that noise, you lose yourself. + </p> + ), + Reviews: ( + <p className="text-gray-600 text-sm leading-relaxed"> + No reviews yet. Be the first to review this product. + </p> + ), + Shipping: (
Removed / Before Commit
Added / After Commit
+ "use client"; + + import { useState } from "react"; + + const product = { + name: "Astrology of the Moon", + originalPrice: 142, + salePrice: 89, + onSale: true, + sku: "20", + categories: ["Astrology", "Zodiac"], + tags: ["Book", "Spiritual"], + description: + "Ut eos quia voluptatum doloremque deleniti vitae vel. Laboriosam iste iusto conse qua tur esse quas autem dolor dignisos molesti tione sint a voluptatum nemo. Recu sandae assum enda quaerat. Sed explicabo aut labore enim aliquam.", + image: "/1.jpeg", + }; + + export default function ProductDetailSection() {