Conversation
…d use `KEY=VALUE` syntax for environment variables, and add a type annotation in the scan API.
…e Prisma client generation during build.
Bugfix/onboarding
feat: add complete database seeding script and command for realistic …
…t pages, and refresh form styling.
feat: Implement statistics cards and scan location maps for managemen…
feat: Add pagination to manage pages and introduce tests for AI agent…
Co-authored-by: qodo-code-review[bot] <151058649+qodo-code-review[bot]@users.noreply.github.com>
fix: apply codeowner to prevent crash
feat: Add initial landing page with hero, features, and CTA sections.
* ci: Add develop branch to push triggers and introduce a deploy job for develop. * feat: separate deployment logic into a new workflow, update CI workflow triggers, and add CI/CD badges to README.
…d update public assets.
feat: introduce explorer and landing pages, enhance scan features, an…
Add chown option to COPY command for public directory.
…h Gemini image generation and Web3 integration.
…dpoint, UI component, and related assets.
Feature/collectible
…er a successful first-hand claim.
Feature/collectible
refactor: move `formatAddress` utility from `useWeb3` hook to `consta…
…, and condensed text for smaller screens.
Bugfix/landing
…ER` environment variable.
…se models, API endpoints, and dedicated UI for customer submission and brand management.
…w UI components and refactoring related API endpoints.
…improved navigation and branding.
Feature/ticket issues
… updated branding, and enhanced form styling with new icons.
feat: Redesign login and register pages with a new two-column layout,…
…ing, revoking, and detailed information display.
feat: Implement new UI components for tag management, including stamp…
…omponents, and add navigation link.
feat: implement new FAQ page with search, categories, and accordion c…
Bumps [next](https://github.com/vercel/next.js) from 16.0.6 to 16.0.7. - [Release notes](https://github.com/vercel/next.js/releases) - [Changelog](https://github.com/vercel/next.js/blob/canary/release.js) - [Commits](vercel/next.js@v16.0.6...v16.0.7) --- updated-dependencies: - dependency-name: next dependency-version: 16.0.7 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com>
Bumps [jws](https://github.com/brianloveswords/node-jws) from 4.0.0 to 4.0.1. - [Release notes](https://github.com/brianloveswords/node-jws/releases) - [Changelog](https://github.com/auth0/node-jws/blob/master/CHANGELOG.md) - [Commits](auth0/node-jws@v4.0.0...v4.0.1) --- updated-dependencies: - dependency-name: jws dependency-version: 4.0.1 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com>
chore(deps): bump jws from 4.0.0 to 4.0.1
chore(deps): bump next from 16.0.6 to 16.0.7
… section content and styling, and update route documentation.
Remove RocketJourney component and GSAP dependencies, refine Features…
feat: Refine UI animations, improve code structure, update documentat…
docs: guide for imphen 2025
…ion, and add Lighthouse CI configuration.
…S, and optimize image loading.
PR Compliance Guide 🔍Below is a summary of compliance checks for this PR:
Compliance status legend🟢 - Fully Compliant🟡 - Partial Compliant 🔴 - Not Compliant ⚪ - Requires Further Human Verification 🏷️ - Compliance label |
|||||||||||||||||||||||||||||||
PR Code Suggestions ✨Explore these optional code suggestions:
|
|||||||||||||||||||||||||
PR Type
Enhancement, Tests, Documentation
Description
NFT Collectible System: Complete implementation of ERC721 NFT minting for first-hand tag claimers, including smart contract (
ETagCollectible), Gemini-based art generation, R2 asset storage, and blockchain integrationSupport Ticket Management: New server actions and comprehensive test suite for customer support tickets with role-based access control, messaging, and statistics
Database Seeding: Complete seed script with 5 Indonesian brands, realistic products, fraud patterns, and legitimate scan distributions
NFT Explorer API: Public endpoint for NFT discovery with pagination and enriched product/brand information
Web3 Integration: React hook for MetaMask wallet connection with Base Sepolia chain support and utility functions
FAQ System: Multilingual FAQ database with 40+ items in Indonesian, categorization, and search functionality
Enhanced Testing: Comprehensive test suites for support tickets, NFTs, tags, brands, users, products, and dashboard with error handling validation
Dashboard Enhancement: NFT count support in dashboard statistics with graceful fallback for missing tables
Component Refactoring: Extracted tag form page and landing page into composable, maintainable sub-components with dedicated type files
Configuration Updates: R2 domain support for image optimization, npm legacy peer dependencies, Sourcify contract verification, and PWA icon generation script
Bug Fix: Improved logout error handling for Next.js redirect exceptions
Diagram Walkthrough
File Walkthrough
22 files
seed-complete.ts
Complete database seeding with brands, products, tags, and fraudpatternsscripts/seed-complete.ts
Indonesian brands with products)
generation
travel, high-volume scanning, bot behavior, etc.)
supports R2 asset upload
nft-collectible.ts
NFT collectible minting and metadata management librarysrc/lib/nft-collectible.ts
blockchain minting, and database storage
ERC721 standard format, and mint on-chain
with fallback mechanisms
management and contract calls
route.ts
Public NFT explorer API endpoint with paginationsrc/app/api/explorer/route.ts
nftsaction to explorer API endpoint for public NFT discoveryenrichment
PublicNFTinterface with token details, ownership info, andasset URLs
TagNFTtable with emptyresponse fallback
support-tickets.ts
Support ticket management system with role-based accesssrc/lib/actions/support-tickets.ts
CRUD operations
management for customers and brand/admin users
brand users or admins
access control
nfts.ts
NFT data retrieval and statistics server actionssrc/lib/actions/nfts.ts
pagination and filtering
NFTWithDetailsandNFTStatsfor type safetyretrieve recent NFTs
route.ts
NFT claim endpoint with rate limiting and validationsrc/app/api/scan/claim-nft/route.ts
methods
verification
minting
messages
useWeb3.ts
Web3 wallet integration hook for MetaMasksrc/hooks/useWeb3.ts
functionality
account/chain changes
explorer URLs
gemini-image.ts
Gemini API image generation for NFT collectiblessrc/lib/gemini-image.ts
API
generateNFTImagefunction with detailed prompt engineering forproduct-specific artwork
library
types.ts
Ticket management types and configurationsrc/app/manage/tickets/components/types.ts
objects
TicketMessage,TicketAttachment,TicketListItem, andTicketFullinterfacestags.ts
Tag scan location mapping and statisticssrc/lib/actions/tags.ts
getAllTagScanLocationsfunction for retrieving tag scanlocations with statistics
ScanLocationPointandTagScanMapStatstypes for map displayfunctionality
dashboard.ts
Dashboard stats with NFT count supportsrc/lib/actions/dashboard.ts
DashboardStatsinterface withnftsfield for type safetytable
counts
products.ts
Product statistics retrieval functionsrc/lib/actions/products.ts
getProductStatsfunction for retrieving product statisticscounts
constants.ts
Add NFT contract support and wallet utilitiessrc/lib/constants.ts
NFT_CONTRACT_ADDRESSenvironment variable to blockchainconfiguration
SUPPORTED_CHAINconstant with Base Sepolia network details forWeb3 wallet connections
getNFTExplorerUrl()helper function to generate NFT explorerURLs
formatAddress()utility function to format wallet addresses fordisplay
route.ts
Refactor location verification to use AI analysissrc/app/api/verify/route.ts
context better
brands.ts
Add brand statistics server actionsrc/lib/actions/brands.ts
getBrandStats()server action to fetch brand statisticswith/without products
users.ts
Add user statistics server actionsrc/lib/actions/users.ts
getUserStats()server action to fetch user statisticsindex.ts
Re-export NFT claim card componentsrc/app/scan/components/index.ts
NFTClaimCardfrom verify componentsindex.ts
Export NFT claim card componentsrc/app/verify/[code]/components/index.ts
NFTClaimCardcomponentETagCollectible.sol
Add ERC721 NFT collectible contractsmartcontracts/contracts/ETagCollectible.sol
globals.css
Add accessibility and performance CSSsrc/app/globals.css
will-changeandtransformpage.tsx
Refactor explorer with NFT support and componentssrc/app/explorer/page.tsx
components
ticket-list.tsx
Add ticket list component with filteringsrc/app/manage/tickets/ticket-list.tsx
14 files
support-tickets.test.ts
Support tickets action tests with authorization and workflowvalidationsrc/lib/actions/support-tickets.test.ts
groups covering 40+ test cases
and brand ticket management
aggregation
nfts.test.ts
NFT actions test suite with access control and paginationsrc/lib/actions/nfts.test.ts
groups
control
products
test-nft-full-flow.ts
Full NFT generation and minting flow test with Gemini integrationscripts/test-nft-full-flow.ts
R2 upload → blockchain minting
prompts
Sepolia blockchain
verification
tags.test.ts
Enhanced tag action tests with blockchain mockingsrc/lib/actions/tags.test.ts
updateTagChainStatus,revokeTagOnChain)deleteTag,toggleTagPublishStatus,updateChainStatus, andrevokeTagOnBlockchainfunctionsgetAllTagScanLocationsfunction withadmin and brand user scenarios
ETagCollectible.test.ts
ETagCollectible smart contract test suitesmartcontracts/test/ETagCollectible.test.ts
ETagCollectiblesmart contract with276 lines of test cases
functionality, and ERC721 standards
conditions
ai-agent.test.ts
AI agent actions test suitesrc/lib/actions/ai-agent.test.ts
getAIAgentContextfunction
getAgentStatsandgetAgentContextfunctions for admin and brandusers
test-gemini-image.ts
Gemini image generation test scriptscripts/test-gemini-image.ts
brands.test.ts
Enhanced brand action tests with error handlingsrc/lib/actions/brands.test.ts
createBrand,deleteBrand, andtoggleBrandStatusfunctionsgetBrandStatstest covering brand statistics retrievalmy-brand.test.ts
My-brand action error handling testssrc/lib/actions/my-brand.test.ts
updateMyBrand,uploadMyBrandLogo, andremoveMyBrandLogofunctionsprofile.test.ts
Profile action error handling testssrc/lib/actions/profile.test.ts
updateProfile,uploadAvatar, andremoveAvatarfunctionsspy verification
dashboard.test.ts
Dashboard stats tests with NFT count supportsrc/lib/actions/dashboard.test.ts
tagNFT.countmock calls to all dashboard stats testsexist
nftsfield in all test assertionsproducts.test.ts
Product action tests with statisticssrc/lib/actions/products.test.ts
deleteProductfunction with databaseerrors
getProductStatstests for both admin and brand usersusers.test.ts
User action tests with statisticssrc/lib/actions/users.test.ts
uploadUserAvatarfunction with databaseerrors
getUserStatstest covering user statistics retrievalcounts
index.ts
Mock implementations for ticket and NFT modelssrc/tests/mocks/index.ts
tagNFT,supportTicket,ticketMessage,and
ticketAttachmentPrisma models$transactionmock for handling transactional operationscreateMockSessionto support optionalbrandIdparameter1 files
faq-data.ts
Multilingual FAQ database with search and categorizationsrc/lib/faq-data.ts
Brands, For Consumers, Blockchain & NFT, Security, Troubleshooting)
claiming, wallet setup, and fraud detection
and answers
common troubleshooting scenarios
5 files
next.config.ts
R2 domain configuration for NFT image optimizationnext.config.ts
*.r2.devand*.cloudflarestorage.comhostnames for NFT imageserving
.npmrc
NPM configuration for dependency management.npmrc
deploy-nft.ts
ETagCollectible smart contract deployment scriptsmartcontracts/scripts/deploy-nft.ts
ETagCollectiblesmart contract on BaseSepolia
variables
contract verification
hardhat.config.ts
Enable Sourcify contract verificationsmartcontracts/hardhat.config.ts
sourcifyconfiguration with enabled flag to hardhat configgenerate-icons.sh
Add PWA icon generation scriptscripts/generate-icons.sh
(192x192, 512x512)
2 files
route.ts
TypeScript type safety improvements in scan endpointsrc/app/api/scan/route.ts
TypeScript type safety
approach
TagScantype alias for better code readabilityinteract.ts
Add linting directive for error handlingsmartcontracts/scripts/interact.ts
1 files
auth.ts
Logout error handling for Next.js redirectssrc/lib/actions/auth.ts
logoutfunction with error handling for Next.js redirectexceptions
NEXT_REDIRECTerror message and digest to properlyhandle redirect behavior
propagated
7 files
types.ts
Extract tag component types to dedicated filesrc/app/manage/tags/_components/types.ts
Product,Tag,TagUrls,StampResult, andStatusUpdateResulttypes
TagMetadata,ProductMetadata,PreviewStampingResult, andTagScansResulttypesindex.ts
Create tag components barrel exportsrc/app/manage/tags/_components/index.ts
module
index.ts
Create ticket components barrel exportsrc/app/manage/tickets/components/index.ts
index.ts
Create support components barrel exportsrc/app/support/components/index.ts
management components
index.ts
Create FAQ components barrel exportsrc/components/faq/index.ts
tag-form-page.tsx
Refactor tag form page into composable componentssrc/app/manage/tags/_components/tag-form-page.tsx
TagResourcesCard, etc.)
page.tsx
Refactor landing page into composable sectionssrc/app/page.tsx
separate modules
98 files